diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index ef4ea4c3e..b2bb1eb9c 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -2,14 +2,12 @@ name: Android CI on: push: - branches: [ develop ] + branches: [ develop, release ] pull_request: - branches: [ develop ] jobs: build: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - name: set up JDK 11 @@ -18,29 +16,17 @@ jobs: java-version: '11' distribution: 'adopt' cache: gradle + - name: Prepare + run: ./.github/actions/prepare-run + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action + - name: Run with Gradle + uses: gradle/gradle-build-action + with: + arguments: assembleProdDebug -PdisablePreDex - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: copy properties file - uses: canastro/copy-file-action@master - with: - source: "habitica.properties.example" - target: "habitica.properties" - - name: copy resources file - uses: canastro/copy-file-action@master - with: - source: "habitica.resources.example" - target: "habitica.resources" - - name: copy google services file - uses: canastro/copy-file-action@master - with: - source: "Habitica/google-services.json.example" - target: "Habitica/google-services.json" - - name: Build with Gradle - run: ./gradlew assembleProdDebug -PdisablePreDex - test: + unit-test: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - name: set up JDK 11 @@ -49,28 +35,36 @@ jobs: java-version: '11' distribution: 'adopt' cache: gradle - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: copy properties file - uses: canastro/copy-file-action@master + - name: Prepare + run: ./.github/actions/prepare-run + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action + - name: Run with Gradle + uses: gradle/gradle-build-action with: - source: "habitica.properties.example" - target: "habitica.properties" - - name: copy resources file - uses: canastro/copy-file-action@master + arguments: testProdDebugUnitTest + + ui-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: set up JDK 11 + uses: actions/setup-java@v2 with: - source: "habitica.resources.example" - target: "habitica.resources" - - name: copy google services file - uses: canastro/copy-file-action@master + java-version: '11' + distribution: 'adopt' + cache: gradle + - name: Prepare + run: ./.github/actions/prepare-run + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action + - name: Run with Gradle + uses: gradle/gradle-build-action with: - source: "Habitica/google-services.json.example" - target: "Habitica/google-services.json" - - name: Run Tests - run: ./gradlew testProdDebugUnitTest + arguments: testProdDebugUnitTest + lint: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - name: set up JDK 11 @@ -79,28 +73,17 @@ jobs: java-version: '11' distribution: 'adopt' cache: gradle - - name: copy properties file - uses: canastro/copy-file-action@master + - name: Prepare + run: ./.github/actions/prepare-run + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action + - name: Run with Gradle + uses: gradle/gradle-build-action with: - source: "habitica.properties.example" - target: "habitica.properties" - - name: copy resources file - uses: canastro/copy-file-action@master - with: - source: "habitica.resources.example" - target: "habitica.resources" - - name: copy google services file - uses: canastro/copy-file-action@master - with: - source: "Habitica/google-services.json.example" - target: "Habitica/google-services.json" - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Run Ktlint - run: ./gradlew ktlint + arguments: ktlint + detekt: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - name: set up JDK 11 @@ -109,25 +92,14 @@ jobs: java-version: '11' distribution: 'adopt' cache: gradle - - name: copy properties file - uses: canastro/copy-file-action@master + - name: Prepare + run: ./.github/actions/prepare-run + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action + - name: Run with Gradle + uses: gradle/gradle-build-action with: - source: "habitica.properties.example" - target: "habitica.properties" - - name: copy resources file - uses: canastro/copy-file-action@master - with: - source: "habitica.resources.example" - target: "habitica.resources" - - name: copy google services file - uses: canastro/copy-file-action@master - with: - source: "Habitica/google-services.json.example" - target: "Habitica/google-services.json" - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Run detekt - run: ./gradlew detekt + arguments: detekt - name: Upload SARIF to Github using the upload-sarif action uses: github/codeql-action/upload-sarif@v1 if: ${{ always() }} diff --git a/Habitica/build.gradle b/Habitica/build.gradle index 68d6e776c..fc35a4a2d 100644 --- a/Habitica/build.gradle +++ b/Habitica/build.gradle @@ -49,7 +49,6 @@ dependencies { implementation 'com.google.dagger:dagger:2.40.5' kapt 'com.google.dagger:dagger-compiler:2.40.5' compileOnly 'javax.annotation:javax.annotation-api:1.3.2' - compileOnly 'com.github.pengrad:jdk9-deps:1.0' //App Compatibility and Material Design implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.0' @@ -66,7 +65,7 @@ dependencies { // IAP Handling / Verification - implementation "com.android.billingclient:billing-ktx:4.0.0" + implementation "com.android.billingclient:billing-ktx:4.1.0" //Facebook implementation('com.facebook.android:facebook-android-sdk:12.2.0') { transitive = true @@ -96,17 +95,18 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' androidTestImplementation 'androidx.test:runner:1.4.0' androidTestImplementation 'androidx.test:rules:1.4.0' + debugImplementation 'androidx.fragment:fragment-testing:1.4.1' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation "io.mockk:mockk-android:1.12.2" + androidTestUtil("androidx.test:orchestrator:1.4.1") implementation 'androidx.activity:activity-compose:1.4.0' - implementation 'androidx.compose.material:material:1.0.5' - implementation 'androidx.compose.animation:animation:1.0.5' - implementation 'androidx.compose.ui:ui-tooling:1.0.5' + implementation 'androidx.compose.material:material:1.1.1' + implementation 'androidx.compose.animation:animation:1.1.1' + implementation 'androidx.compose.ui:ui-tooling:1.1.1' implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.4.1' implementation "com.google.accompanist:accompanist-appcompat-theme:0.16.0" - //Leak Detection debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.8' //Push Notifications @@ -125,9 +125,8 @@ dependencies { implementation "androidx.lifecycle:lifecycle-common-java8:2.4.1" implementation 'androidx.navigation:navigation-fragment-ktx:2.4.1' implementation 'androidx.navigation:navigation-ui-ktx:2.4.1' - implementation 'com.plattysoft.leonids:LeonidsLib:1.3.2' implementation "androidx.fragment:fragment-ktx:1.4.1" - implementation "androidx.paging:paging-runtime-ktx:3.1.0" + implementation "androidx.paging:paging-runtime-ktx:3.1.1" implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0' @@ -135,7 +134,7 @@ dependencies { implementation project(':shared') - ktlint("com.pinterest:ktlint:0.43.2") { + ktlint("com.pinterest:ktlint:0.45.0") { attributes { attribute(Bundling.BUNDLING_ATTRIBUTE, getObjects().named(Bundling, Bundling.EXTERNAL)) } @@ -165,6 +164,7 @@ android { targetSdkVersion 32 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + testInstrumentationRunnerArguments clearPackageData: 'true' } buildFeatures { @@ -198,7 +198,6 @@ android { // Disable fabric build ID generation for debug builds ext.enableCrashlytics = false ext.alwaysUpdateBuildId = false - testCoverageEnabled = true resValue "string", "content_provider", "com.habitrpg.android.habitica.fileprovider" resValue "string", "app_name", "Habitica Debug" } @@ -251,12 +250,6 @@ android { res.srcDirs = ['res'] assets.srcDirs = ['assets'] } - /*robolectric { - manifest.srcFile 'AndroidManifestTesting.xml' - java.srcDir file('src/test/java/') - res.srcDirs = ['res'] - }*/ - //instrumentTest.setRoot('tests') debugIAP { java.srcDirs = ['src/debug/java'] } release { java.srcDirs = ['src/release/java'] } } @@ -292,6 +285,9 @@ android.testOptions { useJUnitPlatform() unitTests.returnDefaultValues = true } + unitTests.returnDefaultValues = true + + execution 'ANDROIDX_TEST_ORCHESTRATOR' } Properties props = new Properties() @@ -315,7 +311,7 @@ if (propFile.canRead()) { } // Add Habitica Properties to buildConfigField -final File HRPG_PROPS_FILE = new File('habitica.properties') +final File HRPG_PROPS_FILE = new File(projectDir.absolutePath + '/../habitica.properties') if (HRPG_PROPS_FILE.canRead()) { Properties HRPG_PROPS = new Properties() HRPG_PROPS.load(new FileInputStream(HRPG_PROPS_FILE)) @@ -334,7 +330,7 @@ if (HRPG_PROPS_FILE.canRead()) { } // Add Habitica Resources to resources -final File HRPG_RES_FILE = new File('habitica.resources') +final File HRPG_RES_FILE = new File(projectDir.absolutePath + '/../habitica.resources') if (HRPG_RES_FILE.canRead()) { Properties HRPG_RES = new Properties() HRPG_RES.load(new FileInputStream(HRPG_RES_FILE)) @@ -404,6 +400,7 @@ task jacocoTestReport(type: JacocoReport, dependsOn: 'testProdDebugUnitTest') { task ktlint(type: JavaExec, group: "verification") { description = "Check Kotlin code style." classpath = configurations.ktlint + mainClass.set("com.pinterest.ktlint.Main") args "--disabled_rules=no-wildcard-imports", "--reporter=plain?group_by_file", "src/**/*.kt" // to generate report in checkstyle format prepend following args: // "--reporter=plain", "--reporter=checkstyle,output=${buildDir}/ktlint.xml" @@ -416,5 +413,6 @@ check.dependsOn ktlint task ktlintFormat(type: JavaExec, group: "formatting") { description = "Fix Kotlin code style deviations." classpath = configurations.ktlint - args "--disabled_rules=no-wildcard-imports", "-F", "src/**/*.kt" + mainClass.set("com.pinterest.ktlint.Main") + args "-F", "src/**/*.kt" } diff --git a/Habitica/libs/LeonidsLib-1.3.2.jar b/Habitica/libs/LeonidsLib-1.3.2.jar new file mode 100644 index 000000000..2713755b7 Binary files /dev/null and b/Habitica/libs/LeonidsLib-1.3.2.jar differ diff --git a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/activities/IntroActivityTest.kt b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/activities/IntroActivityTest.kt index fc546752b..6a621fabe 100644 --- a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/activities/IntroActivityTest.kt +++ b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/activities/IntroActivityTest.kt @@ -10,14 +10,14 @@ import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -class IntroActivityScreen: Screen() { +class IntroActivityScreen : Screen() { val skipButton = KButton { withId(R.id.skipButton) } - val finishButton = KButton { withId(R.id.finishButton )} + val finishButton = KButton { withId(R.id.finishButton) } } @LargeTest @RunWith(AndroidJUnit4::class) -class IntroActivityTest: TestCase() { +class IntroActivityTest : TestCase() { @Rule @JvmField diff --git a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/FragmentTestCase.kt b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/FragmentTestCase.kt index 3497b68f1..9784c3f2d 100644 --- a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/FragmentTestCase.kt +++ b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/FragmentTestCase.kt @@ -7,10 +7,8 @@ import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.data.TutorialRepository import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.helpers.AppConfigManager -import com.habitrpg.android.habitica.models.Skill import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.models.user.User -import com.habitrpg.android.habitica.ui.fragments.social.party.PartyDetailFragment import com.kaspersky.kaspresso.testcases.api.testcase.TestCase import io.github.kakaocup.kakao.screen.Screen import io.mockk.clearAllMocks @@ -21,7 +19,7 @@ import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.PublishSubject import org.junit.Before -abstract class FragmentTestCase, VB: ViewBinding, S: Screen>: TestCase() { +abstract class FragmentTestCase, VB : ViewBinding, S : Screen> : TestCase() { lateinit var scenario: FragmentScenario lateinit var fragment: F @@ -50,4 +48,4 @@ abstract class FragmentTestCase, VB: ViewBinding, S: Screen< every { userRepository.getUser() } returns userEvents makeFragment() } -} \ No newline at end of file +} diff --git a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/PartyDetailFragmentTest.kt b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/PartyDetailFragmentTest.kt index c4da4b5aa..53507edbe 100644 --- a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/PartyDetailFragmentTest.kt +++ b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/PartyDetailFragmentTest.kt @@ -20,7 +20,7 @@ import io.reactivex.rxjava3.core.Flowable import org.junit.Test import org.junit.runner.RunWith -class PartyDetailScreen: Screen() { +class PartyDetailScreen : Screen() { val titleView = KTextView { withId(R.id.title_view) } val newQuestButton = KButton { withId(R.id.new_quest_button) } val questDetailButton = KButton { withId(R.id.quest_detail_button) } @@ -30,7 +30,7 @@ class PartyDetailScreen: Screen() { @LargeTest @RunWith(AndroidJUnit4::class) -class PartyDetailFragmentTest: FragmentTestCase() { +class PartyDetailFragmentTest : FragmentTestCase() { private lateinit var viewModel: PartyViewModel override val screen = PartyDetailScreen() @@ -41,7 +41,7 @@ class PartyDetailFragmentTest: FragmentTestCase() { - val strengthStatsView = KView { withId(R.id.strengthStatsView)} +class StatsScreen : Screen() { + val strengthStatsView = KView { withId(R.id.strengthStatsView) } val strengthAllocateButton = KButton { withId(R.id.allocateButton) isDescendantOfA { withId(R.id.strengthStatsView) } } - val intelligenceStatsView = KView { withId(R.id.intelligenceStatsView)} + val intelligenceStatsView = KView { withId(R.id.intelligenceStatsView) } val intelligenceAllocateButton = KButton { withId(R.id.allocateButton) isDescendantOfA { withId(R.id.intelligenceStatsView) } } - val constitutionStatsView = KView { withId(R.id.constitutionStatsView)} + val constitutionStatsView = KView { withId(R.id.constitutionStatsView) } val constitutionAllocateButton = KButton { withId(R.id.allocateButton) isDescendantOfA { withId(R.id.constitutionStatsView) } } - val perceptionStatsView = KView { withId(R.id.perceptionStatsView)} + val perceptionStatsView = KView { withId(R.id.perceptionStatsView) } val perceptionAllocateButton = KButton { withId(R.id.allocateButton) isDescendantOfA { withId(R.id.perceptionStatsView) } @@ -41,8 +41,7 @@ class StatsScreen: Screen() { @LargeTest @RunWith(AndroidJUnit4::class) -class StatsFragmentTest: FragmentTestCase() { - +class StatsFragmentTest : FragmentTestCase() { override val screen = StatsScreen() @@ -92,13 +91,13 @@ class StatsFragmentTest: FragmentTestCase() { val gems4View = KView { withId(R.id.gems_4_view) } val gems4Button = KTextView { @@ -43,11 +22,6 @@ class GemPurchaseScreen: Screen() { withId(R.id.purchase_button) isDescendantOfA { withId(R.id.gems_84_view) } } - - val subscriptionPromo = KView { withId(R.id.subscription_promo) } - val subscriptionPromoButton = KView { withId(R.id.button) - isDescendantOfA { withId(R.id.subscription_promo) } - } } @LargeTest @@ -166,4 +140,4 @@ class GemsPurchaseFragmentTest : subscriptionPromo.isGone() } } -} \ No newline at end of file +}*/ diff --git a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragmentTest.kt b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragmentTest.kt index 361e0b516..6790afd44 100644 --- a/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragmentTest.kt +++ b/Habitica/src/androidTest/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragmentTest.kt @@ -1,25 +1,6 @@ package com.habitrpg.android.habitica.ui.fragments.purchases -import androidx.fragment.app.testing.launchFragmentInContainer -import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.filters.LargeTest -import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.databinding.FragmentGemPurchaseBinding -import com.habitrpg.android.habitica.databinding.FragmentSubscriptionBinding -import com.habitrpg.android.habitica.helpers.PurchaseHandler -import com.habitrpg.android.habitica.helpers.PurchaseTypes -import com.habitrpg.android.habitica.ui.fragments.FragmentTestCase -import io.github.kakaocup.kakao.common.views.KView -import io.github.kakaocup.kakao.screen.Screen -import io.mockk.MockKAdditionalAnswerScope -import io.mockk.coEvery -import io.mockk.every -import io.mockk.mockk -import io.mockk.spyk -import org.junit.Test -import org.junit.runner.RunWith -import org.solovyev.android.checkout.Inventory -import org.solovyev.android.checkout.Sku +/* class SubscriptionScreen: Screen() { val sub1MonthView = KView { withId(R.id.subscription1month) } @@ -100,4 +81,4 @@ class SubscriptionFragmentTest : sub12MonthView.hasDescendant { withText("12 Months") } } } -} \ No newline at end of file +}*/ diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt index 456990987..6df86c481 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.kt @@ -115,8 +115,8 @@ abstract class HabiticaBaseApplication : Application(), Application.ActivityLife val configuration: Configuration = resources.configuration val languageHelper = LanguageHelper(sharedPrefs.getString("language", "en")) if (if (SDK_INT >= Build.VERSION_CODES.N) { - configuration.locales.isEmpty || configuration.locales[0] != languageHelper.locale - } else { + configuration.locales.isEmpty || configuration.locales[0] != languageHelper.locale + } else { configuration.locale != languageHelper.locale } ) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt index b6fe2f858..565f7731c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt @@ -1,24 +1,52 @@ package com.habitrpg.android.habitica.api -import com.habitrpg.android.habitica.models.* +import com.habitrpg.android.habitica.models.Achievement +import com.habitrpg.android.habitica.models.ContentResult +import com.habitrpg.android.habitica.models.LeaveChallengeBody +import com.habitrpg.android.habitica.models.PurchaseValidationRequest +import com.habitrpg.android.habitica.models.PurchaseValidationResult +import com.habitrpg.android.habitica.models.SubscriptionValidationRequest import com.habitrpg.android.habitica.models.Tag +import com.habitrpg.android.habitica.models.TeamPlan +import com.habitrpg.android.habitica.models.WorldState import com.habitrpg.android.habitica.models.auth.UserAuth import com.habitrpg.android.habitica.models.auth.UserAuthResponse import com.habitrpg.android.habitica.models.auth.UserAuthSocial import com.habitrpg.android.habitica.models.inventory.Equipment import com.habitrpg.android.habitica.models.inventory.Quest import com.habitrpg.android.habitica.models.members.Member -import com.habitrpg.android.habitica.models.responses.* +import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData +import com.habitrpg.android.habitica.models.responses.BuyResponse +import com.habitrpg.android.habitica.models.responses.FeedResponse +import com.habitrpg.android.habitica.models.responses.HabitResponse +import com.habitrpg.android.habitica.models.responses.PostChatMessageResult +import com.habitrpg.android.habitica.models.responses.SkillResponse +import com.habitrpg.android.habitica.models.responses.Status +import com.habitrpg.android.habitica.models.responses.TaskDirectionData +import com.habitrpg.android.habitica.models.responses.UnlockResponse +import com.habitrpg.android.habitica.models.responses.VerifyUsernameResponse import com.habitrpg.android.habitica.models.shops.Shop import com.habitrpg.android.habitica.models.shops.ShopItem -import com.habitrpg.android.habitica.models.social.* +import com.habitrpg.android.habitica.models.social.Challenge +import com.habitrpg.android.habitica.models.social.ChatMessage +import com.habitrpg.android.habitica.models.social.FindUsernameResult +import com.habitrpg.android.habitica.models.social.Group +import com.habitrpg.android.habitica.models.social.InboxConversation import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskList import com.habitrpg.android.habitica.models.user.Items import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.core.Flowable -import retrofit2.http.* +import retrofit2.http.Body +import retrofit2.http.DELETE +import retrofit2.http.GET +import retrofit2.http.HTTP +import retrofit2.http.Header +import retrofit2.http.POST +import retrofit2.http.PUT +import retrofit2.http.Path +import retrofit2.http.Query @JvmSuppressWildcards interface ApiService { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/api/GSonFactoryCreator.java b/Habitica/src/main/java/com/habitrpg/android/habitica/api/GSonFactoryCreator.java index 8d7a7649a..b26df94c8 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/api/GSonFactoryCreator.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/api/GSonFactoryCreator.java @@ -1,4 +1,5 @@ package com.habitrpg.android.habitica.api; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; @@ -43,9 +44,9 @@ import com.habitrpg.android.habitica.utils.FeedResponseDeserializer; import com.habitrpg.android.habitica.utils.FindUsernameResultDeserializer; import com.habitrpg.android.habitica.utils.GroupSerialization; import com.habitrpg.android.habitica.utils.MemberSerialization; +import com.habitrpg.android.habitica.utils.NotificationDeserializer; import com.habitrpg.android.habitica.utils.OwnedItemListDeserializer; import com.habitrpg.android.habitica.utils.OwnedMountListDeserializer; -import com.habitrpg.android.habitica.utils.NotificationDeserializer; import com.habitrpg.android.habitica.utils.OwnedPetListDeserializer; import com.habitrpg.android.habitica.utils.PurchasedDeserializer; import com.habitrpg.android.habitica.utils.QuestCollectDeserializer; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java index 92f8124cc..a67649a8c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java @@ -5,10 +5,8 @@ import com.habitrpg.android.habitica.modules.ApiModule; import com.habitrpg.android.habitica.modules.AppModule; import com.habitrpg.android.habitica.modules.DeveloperModule; import com.habitrpg.android.habitica.modules.RepositoryModule; -import com.habitrpg.android.habitica.modules.UserRepositoryModule; import com.habitrpg.android.habitica.modules.UserModule; - -import org.jetbrains.annotations.NotNull; +import com.habitrpg.android.habitica.modules.UserRepositoryModule; import javax.inject.Singleton; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/components/UserComponent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/components/UserComponent.java index 230d47796..2d6351f7b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/components/UserComponent.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/components/UserComponent.java @@ -76,19 +76,19 @@ import com.habitrpg.android.habitica.ui.fragments.setup.WelcomeFragment; import com.habitrpg.android.habitica.ui.fragments.skills.SkillTasksRecyclerViewFragment; import com.habitrpg.android.habitica.ui.fragments.skills.SkillsFragment; import com.habitrpg.android.habitica.ui.fragments.social.ChatFragment; -import com.habitrpg.android.habitica.ui.fragments.social.guilds.GuildDetailFragment; -import com.habitrpg.android.habitica.ui.fragments.social.guilds.GuildFragment; import com.habitrpg.android.habitica.ui.fragments.social.InboxMessageListFragment; import com.habitrpg.android.habitica.ui.fragments.social.InboxOverviewFragment; -import com.habitrpg.android.habitica.ui.fragments.social.party.NoPartyFragmentFragment; -import com.habitrpg.android.habitica.ui.fragments.social.guilds.GuildListFragment; import com.habitrpg.android.habitica.ui.fragments.social.QuestDetailFragment; import com.habitrpg.android.habitica.ui.fragments.social.TavernDetailFragment; import com.habitrpg.android.habitica.ui.fragments.social.TavernFragment; import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengeDetailFragment; import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengeListFragment; import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengesOverviewFragment; +import com.habitrpg.android.habitica.ui.fragments.social.guilds.GuildDetailFragment; +import com.habitrpg.android.habitica.ui.fragments.social.guilds.GuildFragment; +import com.habitrpg.android.habitica.ui.fragments.social.guilds.GuildListFragment; import com.habitrpg.android.habitica.ui.fragments.social.guilds.GuildOverviewFragment; +import com.habitrpg.android.habitica.ui.fragments.social.party.NoPartyFragmentFragment; import com.habitrpg.android.habitica.ui.fragments.social.party.PartyDetailFragment; import com.habitrpg.android.habitica.ui.fragments.social.party.PartyFragment; import com.habitrpg.android.habitica.ui.fragments.social.party.PartyInviteFragment; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt index a36504e0b..d1023035a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt @@ -1,15 +1,37 @@ package com.habitrpg.android.habitica.data import com.habitrpg.android.habitica.api.HostConfig -import com.habitrpg.android.habitica.models.* +import com.habitrpg.android.habitica.models.Achievement +import com.habitrpg.android.habitica.models.ContentResult +import com.habitrpg.android.habitica.models.LeaveChallengeBody +import com.habitrpg.android.habitica.models.PurchaseValidationRequest +import com.habitrpg.android.habitica.models.PurchaseValidationResult +import com.habitrpg.android.habitica.models.SubscriptionValidationRequest +import com.habitrpg.android.habitica.models.Tag +import com.habitrpg.android.habitica.models.TeamPlan +import com.habitrpg.android.habitica.models.WorldState import com.habitrpg.android.habitica.models.auth.UserAuthResponse import com.habitrpg.android.habitica.models.inventory.Equipment import com.habitrpg.android.habitica.models.inventory.Quest import com.habitrpg.android.habitica.models.members.Member -import com.habitrpg.android.habitica.models.responses.* +import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData +import com.habitrpg.android.habitica.models.responses.BuyResponse +import com.habitrpg.android.habitica.models.responses.ErrorResponse +import com.habitrpg.android.habitica.models.responses.FeedResponse +import com.habitrpg.android.habitica.models.responses.HabitResponse +import com.habitrpg.android.habitica.models.responses.PostChatMessageResult +import com.habitrpg.android.habitica.models.responses.SkillResponse +import com.habitrpg.android.habitica.models.responses.Status +import com.habitrpg.android.habitica.models.responses.TaskDirectionData +import com.habitrpg.android.habitica.models.responses.UnlockResponse +import com.habitrpg.android.habitica.models.responses.VerifyUsernameResponse import com.habitrpg.android.habitica.models.shops.Shop import com.habitrpg.android.habitica.models.shops.ShopItem -import com.habitrpg.android.habitica.models.social.* +import com.habitrpg.android.habitica.models.social.Challenge +import com.habitrpg.android.habitica.models.social.ChatMessage +import com.habitrpg.android.habitica.models.social.FindUsernameResult +import com.habitrpg.android.habitica.models.social.Group +import com.habitrpg.android.habitica.models.social.InboxConversation import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskList import com.habitrpg.android.habitica.models.user.Items diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ContentRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ContentRepository.kt index 173357d9c..ff0f53e2d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ContentRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ContentRepository.kt @@ -4,7 +4,7 @@ import com.habitrpg.android.habitica.models.ContentResult import com.habitrpg.android.habitica.models.WorldState import io.reactivex.rxjava3.core.Flowable -interface ContentRepository: BaseRepository { +interface ContentRepository : BaseRepository { fun retrieveContent(forced: Boolean = false): Flowable fun retrieveWorldState(): Flowable diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/InventoryRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/InventoryRepository.kt index 4f290e9f0..66c83b869 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/InventoryRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/InventoryRepository.kt @@ -1,11 +1,23 @@ package com.habitrpg.android.habitica.data -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Equipment +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Item +import com.habitrpg.android.habitica.models.inventory.Mount +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.Quest +import com.habitrpg.android.habitica.models.inventory.QuestContent import com.habitrpg.android.habitica.models.responses.BuyResponse import com.habitrpg.android.habitica.models.responses.FeedResponse import com.habitrpg.android.habitica.models.shops.Shop import com.habitrpg.android.habitica.models.shops.ShopItem -import com.habitrpg.android.habitica.models.user.* +import com.habitrpg.android.habitica.models.user.Items +import com.habitrpg.android.habitica.models.user.OwnedItem +import com.habitrpg.android.habitica.models.user.OwnedMount +import com.habitrpg.android.habitica.models.user.OwnedPet +import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.core.Flowable interface InventoryRepository : BaseRepository { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/SocialRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/SocialRepository.kt index af3994412..bf4551fa7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/SocialRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/SocialRepository.kt @@ -4,11 +4,14 @@ import com.habitrpg.android.habitica.models.Achievement import com.habitrpg.android.habitica.models.inventory.Quest import com.habitrpg.android.habitica.models.members.Member import com.habitrpg.android.habitica.models.responses.PostChatMessageResult -import com.habitrpg.android.habitica.models.social.* +import com.habitrpg.android.habitica.models.social.ChatMessage +import com.habitrpg.android.habitica.models.social.FindUsernameResult +import com.habitrpg.android.habitica.models.social.Group +import com.habitrpg.android.habitica.models.social.GroupMembership +import com.habitrpg.android.habitica.models.social.InboxConversation import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Single -import java.util.* interface SocialRepository : BaseRepository { fun getPublicGuilds(): Flowable> diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/TaskRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/TaskRepository.kt index 601f0aa26..ac590f0ff 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/TaskRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/TaskRepository.kt @@ -11,7 +11,7 @@ import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Maybe import io.reactivex.rxjava3.core.Single -import java.util.* +import java.util.Date interface TaskRepository : BaseRepository { fun getTasks(taskType: TaskType, userID: String? = null): Flowable> diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt index cd06dd257..4763a71bc 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt @@ -13,7 +13,15 @@ import com.habitrpg.android.habitica.api.HostConfig import com.habitrpg.android.habitica.api.Server import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.helpers.NotificationsManager -import com.habitrpg.android.habitica.models.* +import com.habitrpg.android.habitica.models.Achievement +import com.habitrpg.android.habitica.models.ContentResult +import com.habitrpg.android.habitica.models.LeaveChallengeBody +import com.habitrpg.android.habitica.models.PurchaseValidationRequest +import com.habitrpg.android.habitica.models.PurchaseValidationResult +import com.habitrpg.android.habitica.models.SubscriptionValidationRequest +import com.habitrpg.android.habitica.models.Tag +import com.habitrpg.android.habitica.models.TeamPlan +import com.habitrpg.android.habitica.models.WorldState import com.habitrpg.android.habitica.models.auth.UserAuth import com.habitrpg.android.habitica.models.auth.UserAuthResponse import com.habitrpg.android.habitica.models.auth.UserAuthSocial @@ -21,10 +29,24 @@ import com.habitrpg.android.habitica.models.auth.UserAuthSocialTokens import com.habitrpg.android.habitica.models.inventory.Equipment import com.habitrpg.android.habitica.models.inventory.Quest import com.habitrpg.android.habitica.models.members.Member -import com.habitrpg.android.habitica.models.responses.* +import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData +import com.habitrpg.android.habitica.models.responses.BuyResponse +import com.habitrpg.android.habitica.models.responses.ErrorResponse +import com.habitrpg.android.habitica.models.responses.FeedResponse +import com.habitrpg.android.habitica.models.responses.HabitResponse +import com.habitrpg.android.habitica.models.responses.PostChatMessageResult +import com.habitrpg.android.habitica.models.responses.SkillResponse +import com.habitrpg.android.habitica.models.responses.Status +import com.habitrpg.android.habitica.models.responses.TaskDirectionData +import com.habitrpg.android.habitica.models.responses.UnlockResponse +import com.habitrpg.android.habitica.models.responses.VerifyUsernameResponse import com.habitrpg.android.habitica.models.shops.Shop import com.habitrpg.android.habitica.models.shops.ShopItem -import com.habitrpg.android.habitica.models.social.* +import com.habitrpg.android.habitica.models.social.Challenge +import com.habitrpg.android.habitica.models.social.ChatMessage +import com.habitrpg.android.habitica.models.social.FindUsernameResult +import com.habitrpg.android.habitica.models.social.Group +import com.habitrpg.android.habitica.models.social.InboxConversation import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskList import com.habitrpg.android.habitica.models.user.Items @@ -48,7 +70,7 @@ import java.io.IOException import java.net.SocketException import java.net.SocketTimeoutException import java.net.UnknownHostException -import java.util.* +import java.util.GregorianCalendar import java.util.concurrent.TimeUnit import javax.net.ssl.SSLException diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ContentRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ContentRepositoryImpl.kt index 94c363df5..64e1bfea0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ContentRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ContentRepositoryImpl.kt @@ -9,7 +9,7 @@ import com.habitrpg.android.habitica.models.ContentResult import com.habitrpg.android.habitica.models.WorldState import com.habitrpg.android.habitica.models.inventory.SpecialItem import io.reactivex.rxjava3.core.Flowable -import java.util.* +import java.util.Date class ContentRepositoryImpl(localRepository: T, apiClient: ApiClient, context: Context) : BaseRepositoryImpl(localRepository, apiClient), ContentRepository { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/InventoryRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/InventoryRepositoryImpl.kt index 246ebaaa5..7763ccab7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/InventoryRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/InventoryRepositoryImpl.kt @@ -4,12 +4,24 @@ import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.data.local.InventoryLocalRepository import com.habitrpg.android.habitica.helpers.AppConfigManager -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Equipment +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Item +import com.habitrpg.android.habitica.models.inventory.Mount +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.Quest +import com.habitrpg.android.habitica.models.inventory.QuestContent import com.habitrpg.android.habitica.models.responses.BuyResponse import com.habitrpg.android.habitica.models.responses.FeedResponse import com.habitrpg.android.habitica.models.shops.Shop import com.habitrpg.android.habitica.models.shops.ShopItem -import com.habitrpg.android.habitica.models.user.* +import com.habitrpg.android.habitica.models.user.Items +import com.habitrpg.android.habitica.models.user.OwnedItem +import com.habitrpg.android.habitica.models.user.OwnedMount +import com.habitrpg.android.habitica.models.user.OwnedPet +import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.core.Flowable class InventoryRepositoryImpl(localRepository: InventoryLocalRepository, apiClient: ApiClient, userID: String, var appConfigManager: AppConfigManager) : BaseRepositoryImpl(localRepository, apiClient, userID), InventoryRepository { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.kt index 954164dd4..80b4f9330 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.kt @@ -9,13 +9,16 @@ import com.habitrpg.android.habitica.models.Achievement import com.habitrpg.android.habitica.models.inventory.Quest import com.habitrpg.android.habitica.models.members.Member import com.habitrpg.android.habitica.models.responses.PostChatMessageResult -import com.habitrpg.android.habitica.models.social.* +import com.habitrpg.android.habitica.models.social.ChatMessage +import com.habitrpg.android.habitica.models.social.FindUsernameResult +import com.habitrpg.android.habitica.models.social.Group +import com.habitrpg.android.habitica.models.social.GroupMembership +import com.habitrpg.android.habitica.models.social.InboxConversation import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Single import retrofit2.HttpException -import java.util.* -import kotlin.collections.HashMap +import java.util.UUID class SocialRepositoryImpl(localRepository: SocialLocalRepository, apiClient: ApiClient, userID: String) : BaseRepositoryImpl(localRepository, apiClient, userID), SocialRepository { override fun transferGroupOwnership(groupID: String, userID: String): Flowable { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt index 74c8f489e..6d6c49df0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt @@ -12,7 +12,11 @@ import com.habitrpg.android.habitica.models.responses.BulkTaskScoringData import com.habitrpg.android.habitica.models.responses.TaskDirection import com.habitrpg.android.habitica.models.responses.TaskDirectionData import com.habitrpg.android.habitica.models.responses.TaskScoringResult -import com.habitrpg.android.habitica.models.tasks.* +import com.habitrpg.android.habitica.models.tasks.ChecklistItem +import com.habitrpg.android.habitica.models.tasks.Task +import com.habitrpg.android.habitica.models.tasks.TaskList +import com.habitrpg.android.habitica.models.tasks.TaskType +import com.habitrpg.android.habitica.models.tasks.TasksOrder import com.habitrpg.android.habitica.models.user.OwnedItem import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.proxy.AnalyticsManager @@ -20,7 +24,9 @@ import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Maybe import io.reactivex.rxjava3.core.Single import java.text.SimpleDateFormat -import java.util.* +import java.util.Date +import java.util.Locale +import java.util.UUID class TaskRepositoryImpl(localRepository: TaskLocalRepository, apiClient: ApiClient, userID: String, val appConfigManager: AppConfigManager, val analyticsManager: AnalyticsManager) : BaseRepositoryImpl(localRepository, apiClient, userID), TaskRepository { private var lastTaskAction: Long = 0 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt index 21cca8f75..18b14bb99 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt @@ -26,7 +26,8 @@ import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Maybe import io.reactivex.rxjava3.functions.BiFunction -import java.util.* +import java.util.Date +import java.util.GregorianCalendar import java.util.concurrent.TimeUnit class UserRepositoryImpl(localRepository: UserLocalRepository, apiClient: ApiClient, userID: String, private val taskRepository: TaskRepository, var appConfigManager: AppConfigManager) : BaseRepositoryImpl(localRepository, apiClient, userID), UserRepository { @@ -380,7 +381,8 @@ class UserRepositoryImpl(localRepository: UserLocalRepository, apiClient: ApiCli override fun retrieveTeamPlan(teamID: String): Flowable { return Flowable.zip( - apiClient.getGroup(teamID), apiClient.getTeamPlanTasks(teamID)) { team, tasks -> + apiClient.getGroup(teamID), apiClient.getTeamPlanTasks(teamID) + ) { team, tasks -> team.tasks = tasks team } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/InventoryLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/InventoryLocalRepository.kt index a17e87ab9..0bfa0b33d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/InventoryLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/InventoryLocalRepository.kt @@ -1,8 +1,16 @@ package com.habitrpg.android.habitica.data.local -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Equipment +import com.habitrpg.android.habitica.models.inventory.Item +import com.habitrpg.android.habitica.models.inventory.Mount +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.QuestContent import com.habitrpg.android.habitica.models.shops.ShopItem -import com.habitrpg.android.habitica.models.user.* +import com.habitrpg.android.habitica.models.user.Items +import com.habitrpg.android.habitica.models.user.OwnedItem +import com.habitrpg.android.habitica.models.user.OwnedMount +import com.habitrpg.android.habitica.models.user.OwnedPet +import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.core.Flowable interface InventoryLocalRepository : ContentLocalRepository { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/UserLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/UserLocalRepository.kt index 9842db322..9066b46cb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/UserLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/UserLocalRepository.kt @@ -1,6 +1,10 @@ package com.habitrpg.android.habitica.data.local -import com.habitrpg.android.habitica.models.* +import com.habitrpg.android.habitica.models.Achievement +import com.habitrpg.android.habitica.models.QuestAchievement +import com.habitrpg.android.habitica.models.Skill +import com.habitrpg.android.habitica.models.TeamPlan +import com.habitrpg.android.habitica.models.TutorialStep import com.habitrpg.android.habitica.models.social.ChatMessage import com.habitrpg.android.habitica.models.social.Group import com.habitrpg.android.habitica.models.user.User diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.kt index abdc7b191..52810fc64 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmChallengeLocalRepository.kt @@ -9,7 +9,6 @@ import hu.akarnokd.rxjava3.bridge.RxJavaBridge import io.reactivex.rxjava3.core.Flowable import io.realm.Realm import io.realm.Sort -import java.util.* class RealmChallengeLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm), ChallengeLocalRepository { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmCustomizationLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmCustomizationLocalRepository.kt index 6f603db28..502d81809 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmCustomizationLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmCustomizationLocalRepository.kt @@ -5,7 +5,7 @@ import com.habitrpg.android.habitica.models.inventory.Customization import hu.akarnokd.rxjava3.bridge.RxJavaBridge import io.reactivex.rxjava3.core.Flowable import io.realm.Realm -import java.util.* +import java.util.Date class RealmCustomizationLocalRepository(realm: Realm) : RealmContentLocalRepository(realm), CustomizationLocalRepository { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmInventoryLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmInventoryLocalRepository.kt index cd739e699..aabb9a542 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmInventoryLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmInventoryLocalRepository.kt @@ -2,18 +2,29 @@ package com.habitrpg.android.habitica.data.local.implementation import com.habitrpg.android.habitica.data.local.InventoryLocalRepository import com.habitrpg.android.habitica.helpers.RxErrorHandler -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Equipment +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Item +import com.habitrpg.android.habitica.models.inventory.Mount +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.QuestContent +import com.habitrpg.android.habitica.models.inventory.SpecialItem import com.habitrpg.android.habitica.models.shops.ShopItem -import com.habitrpg.android.habitica.models.user.* +import com.habitrpg.android.habitica.models.user.Items +import com.habitrpg.android.habitica.models.user.OwnedItem +import com.habitrpg.android.habitica.models.user.OwnedMount +import com.habitrpg.android.habitica.models.user.OwnedPet +import com.habitrpg.android.habitica.models.user.User import hu.akarnokd.rxjava3.bridge.RxJavaBridge import io.reactivex.rxjava3.core.Flowable import io.realm.Realm import io.realm.RealmObject import io.realm.Sort -import io.realm.kotlin.isManaged import java.text.SimpleDateFormat -import java.util.* -import kotlin.collections.HashMap +import java.util.Date +import java.util.Locale class RealmInventoryLocalRepository(realm: Realm) : RealmContentLocalRepository(realm), InventoryLocalRepository { override fun getQuestContent(keys: List): Flowable> { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt index 2bac1fc16..6569e9a72 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt @@ -3,13 +3,16 @@ package com.habitrpg.android.habitica.data.local.implementation import com.habitrpg.android.habitica.data.local.SocialLocalRepository import com.habitrpg.android.habitica.models.inventory.Quest import com.habitrpg.android.habitica.models.members.Member -import com.habitrpg.android.habitica.models.social.* +import com.habitrpg.android.habitica.models.social.ChatMessage +import com.habitrpg.android.habitica.models.social.ChatMessageLike +import com.habitrpg.android.habitica.models.social.Group +import com.habitrpg.android.habitica.models.social.GroupMembership +import com.habitrpg.android.habitica.models.social.InboxConversation import com.habitrpg.android.habitica.models.user.User import hu.akarnokd.rxjava3.bridge.RxJavaBridge import io.reactivex.rxjava3.core.Flowable import io.realm.Realm import io.realm.Sort -import java.util.* class RealmSocialLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm), SocialLocalRepository { @@ -58,9 +61,9 @@ class RealmSocialLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm) messages.forEach { it.userID = userID } for (message in messages) { val existingMessage = realm.where(ChatMessage::class.java) - .equalTo("id", message.id) - .findAll() - .firstOrNull() + .equalTo("id", message.id) + .findAll() + .firstOrNull() message.isSeen = existingMessage != null } save(messages) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt index 4558accc7..5e44c04f1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmTaskLocalRepository.kt @@ -1,7 +1,12 @@ package com.habitrpg.android.habitica.data.local.implementation import com.habitrpg.android.habitica.data.local.TaskLocalRepository -import com.habitrpg.android.habitica.models.tasks.* +import com.habitrpg.android.habitica.models.tasks.ChecklistItem +import com.habitrpg.android.habitica.models.tasks.RemindersItem +import com.habitrpg.android.habitica.models.tasks.Task +import com.habitrpg.android.habitica.models.tasks.TaskList +import com.habitrpg.android.habitica.models.tasks.TaskType +import com.habitrpg.android.habitica.models.tasks.TasksOrder import com.habitrpg.android.habitica.models.user.User import hu.akarnokd.rxjava3.bridge.RxJavaBridge import io.reactivex.rxjava3.core.Flowable diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmUserLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmUserLocalRepository.kt index ad7040b3a..7a195a5da 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmUserLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmUserLocalRepository.kt @@ -2,7 +2,12 @@ package com.habitrpg.android.habitica.data.local.implementation import com.habitrpg.android.habitica.data.local.UserLocalRepository import com.habitrpg.android.habitica.data.local.UserQuestStatus -import com.habitrpg.android.habitica.models.* +import com.habitrpg.android.habitica.models.Achievement +import com.habitrpg.android.habitica.models.QuestAchievement +import com.habitrpg.android.habitica.models.Skill +import com.habitrpg.android.habitica.models.Tag +import com.habitrpg.android.habitica.models.TeamPlan +import com.habitrpg.android.habitica.models.TutorialStep import com.habitrpg.android.habitica.models.social.ChatMessage import com.habitrpg.android.habitica.models.social.Group import com.habitrpg.android.habitica.models.user.User diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/executors/UIThread.java b/Habitica/src/main/java/com/habitrpg/android/habitica/executors/UIThread.java index 3a3419758..9617314a2 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/executors/UIThread.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/executors/UIThread.java @@ -3,8 +3,8 @@ package com.habitrpg.android.habitica.executors; import javax.inject.Inject; import javax.inject.Singleton; -import io.reactivex.rxjava3.core.Scheduler; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Scheduler; @Singleton public class UIThread implements PostExecutionThread { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Context-Extensions.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Context-Extensions.kt index f5b8e23bd..5dbc8e99d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Context-Extensions.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Context-Extensions.kt @@ -5,7 +5,7 @@ import android.content.Context import android.content.res.Configuration import android.util.TypedValue import android.view.LayoutInflater -import java.util.* +import java.util.Locale val Context.layoutInflater: LayoutInflater get() = this.getSystemService(Service.LAYOUT_INFLATER_SERVICE) as LayoutInflater diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Date-Extensions.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Date-Extensions.kt index 4ed6055f3..7582f866a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Date-Extensions.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/Date-Extensions.kt @@ -2,9 +2,13 @@ package com.habitrpg.android.habitica.extensions import android.content.res.Resources import com.habitrpg.android.habitica.R -import java.util.* +import java.util.Calendar +import java.util.Date import kotlin.math.round -import kotlin.time.* +import kotlin.time.Duration +import kotlin.time.DurationUnit +import kotlin.time.ExperimentalTime +import kotlin.time.milliseconds class DateUtils { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/PendingIntent-Extensions.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/PendingIntent-Extensions.kt index cbafc58fb..065d74934 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/PendingIntent-Extensions.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/PendingIntent-Extensions.kt @@ -1,7 +1,6 @@ package com.habitrpg.android.habitica.extensions import android.app.PendingIntent -import android.content.Context import android.os.Build fun withImmutableFlag(flags: Int): Int { @@ -18,4 +17,4 @@ fun withMutableFlag(flags: Int): Int { } else { flags } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AmplitudeManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AmplitudeManager.kt index f67e61dd9..2c8301753 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AmplitudeManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AmplitudeManager.kt @@ -4,7 +4,6 @@ import com.amplitude.api.Amplitude import com.habitrpg.android.habitica.BuildConfig import org.json.JSONException import org.json.JSONObject -import java.util.HashMap object AmplitudeManager { var EVENT_CATEGORY_BEHAVIOUR = "behaviour" diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt index 01d4296b8..bbf4a5b3c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt @@ -11,7 +11,6 @@ import com.habitrpg.android.habitica.models.WorldState import com.habitrpg.android.habitica.models.promotions.HabiticaPromotion import com.habitrpg.android.habitica.models.promotions.HabiticaWebPromotion import com.habitrpg.android.habitica.models.promotions.getHabiticaPromotionFromKey -import java.util.* class AppConfigManager(contentRepository: ContentRepository?) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AprilFoolsHandler.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AprilFoolsHandler.kt index 32fd3d2cc..43ade5029 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AprilFoolsHandler.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AprilFoolsHandler.kt @@ -1,6 +1,6 @@ package com.habitrpg.android.habitica.helpers -import java.util.* +import java.util.Date class AprilFoolsHandler { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/DeviceName.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/DeviceName.kt index 5b3fdabfe..3cf7a82bb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/DeviceName.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/DeviceName.kt @@ -19,7 +19,7 @@ import java.io.IOException import java.io.InputStreamReader import java.net.HttpURLConnection import java.net.URL -import java.util.* +import java.util.Locale /* * Copyright (C) 2017 Jared Rummler @@ -434,9 +434,9 @@ object DeviceName { val info = DeviceInfo(json) if (codename.equals(info.codename, ignoreCase = true) && model == null || codename.equals( - info.codename, - ignoreCase = true - ) && model.equals(info.model, ignoreCase = true) + info.codename, + ignoreCase = true + ) && model.equals(info.model, ignoreCase = true) ) { // Save to SharedPreferences so we don't need to make another request. val editor = prefs.edit() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/HealthFormatter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/HealthFormatter.kt index 48d3f73b5..c3652527e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/HealthFormatter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/HealthFormatter.kt @@ -2,7 +2,7 @@ package com.habitrpg.android.habitica.helpers import android.os.Build import java.text.NumberFormat -import java.util.* +import java.util.Locale import kotlin.math.ceil import kotlin.math.floor diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/KeyHelper.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/KeyHelper.kt index 05740288b..2bffd6866 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/KeyHelper.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/KeyHelper.kt @@ -13,11 +13,26 @@ import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream import java.io.IOException import java.io.UnsupportedEncodingException -import java.lang.IllegalStateException import java.math.BigInteger -import java.security.* -import java.util.* -import javax.crypto.* +import java.security.GeneralSecurityException +import java.security.InvalidAlgorithmParameterException +import java.security.Key +import java.security.KeyPairGenerator +import java.security.KeyStore +import java.security.KeyStoreException +import java.security.NoSuchAlgorithmException +import java.security.NoSuchProviderException +import java.security.SecureRandom +import java.security.UnrecoverableKeyException +import java.util.Calendar +import javax.crypto.BadPaddingException +import javax.crypto.Cipher +import javax.crypto.CipherInputStream +import javax.crypto.CipherOutputStream +import javax.crypto.IllegalBlockSizeException +import javax.crypto.KeyGenerator +import javax.crypto.NoSuchPaddingException +import javax.crypto.SecretKey import javax.crypto.spec.GCMParameterSpec import javax.crypto.spec.SecretKeySpec import javax.security.auth.x500.X500Principal diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.kt index 31c9e4f78..217eba3d3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.kt @@ -1,6 +1,6 @@ package com.habitrpg.android.habitica.helpers -import java.util.* +import java.util.Locale class LanguageHelper(languageSharedPref: String?) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt index c29d31b0b..775618cfd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt @@ -8,7 +8,7 @@ import androidx.navigation.NavController import androidx.navigation.NavDeepLinkRequest import androidx.navigation.NavDirections import java.lang.ref.WeakReference -import java.util.* +import java.util.Date import kotlin.math.abs object MainNavigationController { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/NotificationsManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/NotificationsManager.kt index 7cc800403..aad1c1870 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/NotificationsManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/NotificationsManager.kt @@ -7,7 +7,7 @@ import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.BehaviorSubject import io.reactivex.rxjava3.subjects.PublishSubject import java.lang.ref.WeakReference -import java.util.* +import java.util.Date class NotificationsManager { private val displayNotificationSubject = PublishSubject.create() @@ -19,9 +19,9 @@ class NotificationsManager { private var lastNotificationHandling: Date? = null val displayNotificationEvents: Flowable - get() { - return displayNotificationSubject.toFlowable(BackpressureStrategy.DROP) - } + get() { + return displayNotificationSubject.toFlowable(BackpressureStrategy.DROP) + } init { this.seenNotifications = HashMap() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt index bf7f83188..7ed8284c6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt @@ -1,21 +1,27 @@ package com.habitrpg.android.habitica.helpers import android.app.Activity -import android.app.Application import android.content.Context import android.content.SharedPreferences -import android.os.Bundle import androidx.core.content.edit import androidx.core.os.bundleOf -import com.android.billingclient.api.* -import com.android.billingclient.api.BillingClient.ConnectionState.DISCONNECTED -import com.google.api.Billing -import com.google.firebase.analytics.FirebaseAnalytics +import com.android.billingclient.api.AcknowledgePurchaseParams +import com.android.billingclient.api.BillingClient +import com.android.billingclient.api.BillingClientStateListener +import com.android.billingclient.api.BillingFlowParams +import com.android.billingclient.api.BillingResult +import com.android.billingclient.api.ConsumeParams +import com.android.billingclient.api.Purchase +import com.android.billingclient.api.PurchasesResponseListener +import com.android.billingclient.api.PurchasesUpdatedListener +import com.android.billingclient.api.SkuDetails +import com.android.billingclient.api.SkuDetailsParams +import com.android.billingclient.api.queryPurchasesAsync +import com.android.billingclient.api.querySkuDetails import com.google.firebase.crashlytics.FirebaseCrashlytics import com.habitrpg.android.habitica.HabiticaBaseApplication import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.ApiClient -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.extensions.addOkButton import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler import com.habitrpg.android.habitica.models.IAPGift @@ -28,12 +34,14 @@ import com.habitrpg.android.habitica.ui.activities.PurchaseActivity import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import io.reactivex.rxjava3.core.Flowable -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.json.JSONObject import retrofit2.HttpException - -import java.util.* - +import java.util.Date open class PurchaseHandler( private val context: Context, @@ -72,7 +80,6 @@ open class PurchaseHandler( } } - init { startListening() } @@ -86,9 +93,9 @@ open class PurchaseHandler( DISCONNECTED; val canMaybePurchase: Boolean - get() { - return this == UNITITIALIZED || this == READY - } + get() { + return this == UNITITIALIZED || this == READY + } } fun startListening() { @@ -169,7 +176,6 @@ open class PurchaseHandler( .setPurchaseToken(purchase.purchaseToken) .build() billingClient.consumeAsync(params) { result, message -> - } } @@ -209,7 +215,8 @@ open class PurchaseHandler( val plan = userViewModel.user.value?.purchased?.plan if (plan?.isActive == true) { if (plan.additionalData?.data?.orderId == purchase.orderId && - (plan.dateTerminated != null == purchase.isAutoRenewing)) { + (plan.dateTerminated != null == purchase.isAutoRenewing) + ) { return } } @@ -291,7 +298,6 @@ open class PurchaseHandler( .flatMap { userViewModel.userRepository.retrieveUser(false, true) } } - private fun durationString(sku: String): String { return when (sku) { PurchaseTypes.Subscription1MonthNoRenew, PurchaseTypes.Subscription1Month -> "1" @@ -383,7 +389,7 @@ open class PurchaseHandler( suspend fun retryUntil( times: Int = Int.MAX_VALUE, initialDelay: Long = 100, // 0.1 second - maxDelay: Long = 1000, // 1 second + maxDelay: Long = 1000, // 1 second factor: Double = 2.0, block: suspend () -> Boolean ) { @@ -393,4 +399,4 @@ suspend fun retryUntil( delay(currentDelay) currentDelay = (currentDelay * factor).toLong().coerceAtMost(maxDelay) } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/SignInWithAppleService.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/SignInWithAppleService.kt index 74dd4d937..fbf0ed11e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/SignInWithAppleService.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/SignInWithAppleService.kt @@ -5,7 +5,7 @@ import android.os.Parcel import android.os.Parcelable import androidx.fragment.app.FragmentManager import com.willowtreeapps.signinwithapplebutton.SignInWithAppleConfiguration -import java.util.* +import java.util.UUID class SignInWithAppleService( private val fragmentManager: FragmentManager, diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt index 23861569d..aa659542d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt @@ -17,7 +17,8 @@ import com.habitrpg.android.habitica.receivers.TaskReceiver import com.habitrpg.shared.habitica.HLogger import com.habitrpg.shared.habitica.LogLevel import io.reactivex.rxjava3.core.Flowable -import java.util.* +import java.util.Calendar +import java.util.Date class TaskAlarmManager(private var context: Context, private var taskRepository: TaskRepository, private var userId: String) { private val am: AlarmManager? = context.getSystemService(Context.ALARM_SERVICE) as? AlarmManager diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskFilterHelper.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskFilterHelper.kt index 33669781d..adb3a6c67 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskFilterHelper.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskFilterHelper.kt @@ -6,7 +6,6 @@ import io.realm.Case import io.realm.OrderedRealmCollection import io.realm.RealmQuery import io.realm.Sort -import java.util.* class TaskFilterHelper { var searchQuery: String? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/UserStatComputer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/UserStatComputer.kt index b6d586813..b15b2f1ad 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/UserStatComputer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/UserStatComputer.kt @@ -4,7 +4,6 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.models.Avatar import com.habitrpg.android.habitica.models.inventory.Equipment import com.habitrpg.android.habitica.models.user.Stats -import java.util.* class UserStatComputer { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/GroupActivityNotification.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/GroupActivityNotification.kt index e24bd26b0..ba553a28a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/GroupActivityNotification.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/GroupActivityNotification.kt @@ -11,12 +11,12 @@ import androidx.core.app.Person import androidx.core.app.RemoteInput import androidx.core.os.bundleOf import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.extensions.withImmutableFlag import com.habitrpg.android.habitica.extensions.withMutableFlag import com.habitrpg.android.habitica.receivers.LocalNotificationActionReceiver import com.habitrpg.android.habitica.ui.helpers.EmojiParser import java.text.SimpleDateFormat -import java.util.* +import java.util.Date +import java.util.Locale class GroupActivityNotification(context: Context, identifier: String?) : HabiticaLocalNotification(context, identifier) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt index 3724a31f2..405a4cb1b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt @@ -10,7 +10,7 @@ import androidx.core.app.NotificationManagerCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.extensions.withImmutableFlag import com.habitrpg.android.habitica.ui.activities.MainActivity -import java.util.* +import java.util.Date /** * Created by keithholliday on 6/28/16. diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.kt index 249355efb..ced3a42f9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.kt @@ -9,7 +9,6 @@ import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.helpers.AmplitudeManager import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.user.User -import java.util.* class PushNotificationManager(var apiClient: ApiClient, private val sharedPreferences: SharedPreferences, private val context: Context) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/FeedPetUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/FeedPetUseCase.kt index c51167637..6df8d86b5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/FeedPetUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/FeedPetUseCase.kt @@ -80,4 +80,4 @@ constructor( class RequestValues(val pet: Pet, val food: Food, val context: BaseActivity) : UseCase.RequestValues -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/HatchPetUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/HatchPetUseCase.kt index 4ecf9bcdf..00df0eb22 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/HatchPetUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/HatchPetUseCase.kt @@ -51,4 +51,4 @@ constructor(private val inventoryRepository: InventoryRepository, postExecutionT } class RequestValues(val potion: HatchingPotion, val egg: Egg, val context: BaseActivity) : UseCase.RequestValues -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.kt index baf859c31..ae22dcb34 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.kt @@ -9,7 +9,6 @@ import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView -import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.core.util.Pair import com.habitrpg.android.habitica.R diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ScoreTaskLocallyInteractor.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ScoreTaskLocallyInteractor.kt index 3250d5583..c5eaa9506 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ScoreTaskLocallyInteractor.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ScoreTaskLocallyInteractor.kt @@ -6,7 +6,6 @@ import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.models.user.User -import java.util.* import kotlin.math.min import kotlin.math.pow import kotlin.math.roundToLong diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentResult.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentResult.kt index 54182fedd..dae7f480f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentResult.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/ContentResult.kt @@ -1,6 +1,14 @@ package com.habitrpg.android.habitica.models -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Customization +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Equipment +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Mount +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.QuestContent +import com.habitrpg.android.habitica.models.inventory.SpecialItem import io.realm.RealmList /** diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/Notification.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/Notification.kt index 76f1e205f..3fcc82979 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/Notification.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/Notification.kt @@ -1,6 +1,19 @@ package com.habitrpg.android.habitica.models -import com.habitrpg.android.habitica.models.notifications.* +import com.habitrpg.android.habitica.models.notifications.AchievementData +import com.habitrpg.android.habitica.models.notifications.ChallengeWonData +import com.habitrpg.android.habitica.models.notifications.FirstDropData +import com.habitrpg.android.habitica.models.notifications.GroupTaskApprovedData +import com.habitrpg.android.habitica.models.notifications.GroupTaskNeedsWorkData +import com.habitrpg.android.habitica.models.notifications.GroupTaskRequiresApprovalData +import com.habitrpg.android.habitica.models.notifications.GuildInvitationData +import com.habitrpg.android.habitica.models.notifications.LoginIncentiveData +import com.habitrpg.android.habitica.models.notifications.NewChatMessageData +import com.habitrpg.android.habitica.models.notifications.NewStuffData +import com.habitrpg.android.habitica.models.notifications.NotificationData +import com.habitrpg.android.habitica.models.notifications.PartyInvitationData +import com.habitrpg.android.habitica.models.notifications.QuestInvitationData +import com.habitrpg.android.habitica.models.notifications.UnallocatedPointsData class Notification { enum class Type(val type: String) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/Tag.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/Tag.kt index 7c63ef2e2..0482f9ea2 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/Tag.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/Tag.kt @@ -1,7 +1,5 @@ package com.habitrpg.android.habitica.models -import com.habitrpg.android.habitica.models.tasks.Task -import io.realm.RealmList import io.realm.RealmObject import io.realm.annotations.PrimaryKey diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/TutorialStep.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/TutorialStep.kt index cf7480148..316234d45 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/TutorialStep.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/TutorialStep.kt @@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.models import io.realm.RealmModel import io.realm.RealmObject import io.realm.annotations.RealmClass -import java.util.* +import java.util.Date @RealmClass(embedded = true) open class TutorialStep : RealmObject(), BaseMainObject { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldState.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldState.kt index 570e2a6db..b3214dc10 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldState.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldState.kt @@ -6,7 +6,6 @@ import com.habitrpg.android.habitica.models.inventory.QuestRageStrike import io.realm.RealmList import io.realm.RealmObject import io.realm.annotations.PrimaryKey -import java.util.* open class WorldState : RealmObject(), BaseObject { @PrimaryKey diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldStateEvent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldStateEvent.kt index b5c2e6b57..35f06d6f4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldStateEvent.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldStateEvent.kt @@ -4,7 +4,7 @@ import com.google.gson.annotations.SerializedName import io.realm.RealmModel import io.realm.RealmObject import io.realm.annotations.RealmClass -import java.util.* +import java.util.Date @RealmClass(embedded = true) open class WorldStateEvent : RealmObject(), BaseMainObject { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Customization.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Customization.kt index af9025915..0067c44a3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Customization.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Customization.kt @@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.models.inventory import com.habitrpg.android.habitica.models.BaseObject import io.realm.RealmObject import io.realm.annotations.PrimaryKey -import java.util.* +import java.util.Date open class Customization : RealmObject(), BaseObject { @PrimaryKey diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Egg.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Egg.kt index efbe84606..11542e29c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Egg.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Egg.kt @@ -2,7 +2,6 @@ package com.habitrpg.android.habitica.models.inventory import io.realm.RealmObject import io.realm.annotations.PrimaryKey -import java.util.* open class Egg : RealmObject(), Item { @PrimaryKey diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.kt index d08b27427..0f918ea1e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.kt @@ -2,7 +2,6 @@ package com.habitrpg.android.habitica.models.inventory import com.google.gson.annotations.SerializedName import com.habitrpg.android.habitica.models.BaseMainObject -import com.habitrpg.android.habitica.models.BaseObject import io.realm.RealmModel import io.realm.RealmObject import io.realm.annotations.PrimaryKey diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Food.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Food.kt index a5810f493..ed9ced58f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Food.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Food.kt @@ -2,7 +2,6 @@ package com.habitrpg.android.habitica.models.inventory import io.realm.RealmObject import io.realm.annotations.PrimaryKey -import java.util.* open class Food : RealmObject(), Item { @PrimaryKey diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/HatchingPotion.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/HatchingPotion.kt index ef5c56047..53049c56e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/HatchingPotion.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/HatchingPotion.kt @@ -2,7 +2,6 @@ package com.habitrpg.android.habitica.models.inventory import io.realm.RealmObject import io.realm.annotations.PrimaryKey -import java.util.* open class HatchingPotion : RealmObject(), Item { @PrimaryKey diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Item.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Item.kt index 426bbbc94..31869439e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Item.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Item.kt @@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.models.inventory import com.habitrpg.android.habitica.models.BaseObject import io.realm.RealmModel import io.realm.RealmObject -import java.util.* +import java.util.Date open class ItemEvent : RealmObject(), BaseObject { var start: Date? = null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/Member.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/Member.kt index ff3394b40..d947b4c1a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/Member.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/members/Member.kt @@ -3,9 +3,15 @@ package com.habitrpg.android.habitica.models.members import com.google.gson.annotations.SerializedName import com.habitrpg.android.habitica.models.Avatar import com.habitrpg.android.habitica.models.BaseMainObject -import com.habitrpg.android.habitica.models.BaseObject import com.habitrpg.android.habitica.models.social.UserParty -import com.habitrpg.android.habitica.models.user.* +import com.habitrpg.android.habitica.models.user.Authentication +import com.habitrpg.android.habitica.models.user.Backer +import com.habitrpg.android.habitica.models.user.ContributorInfo +import com.habitrpg.android.habitica.models.user.Inbox +import com.habitrpg.android.habitica.models.user.Items +import com.habitrpg.android.habitica.models.user.Outfit +import com.habitrpg.android.habitica.models.user.Profile +import com.habitrpg.android.habitica.models.user.Stats import io.realm.RealmModel import io.realm.RealmObject import io.realm.annotations.PrimaryKey diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/FallExtraGemsHabiticaPromotion.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/FallExtraGemsHabiticaPromotion.kt index 7df6f9282..01fa95cc4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/FallExtraGemsHabiticaPromotion.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/FallExtraGemsHabiticaPromotion.kt @@ -2,7 +2,6 @@ package com.habitrpg.android.habitica.models.promotions import android.content.Context import android.graphics.Color -import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable import android.graphics.drawable.ShapeDrawable import android.view.View @@ -14,10 +13,10 @@ import com.habitrpg.android.habitica.databinding.PurchaseGemViewBinding import com.habitrpg.android.habitica.extensions.DateUtils import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.ui.fragments.PromoInfoFragment -import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import com.habitrpg.android.habitica.ui.views.promo.PromoMenuView import java.text.SimpleDateFormat -import java.util.* +import java.util.Date +import java.util.Locale class FallExtraGemsHabiticaPromotion(startDate: Date?, endDate: Date?) : HabiticaPromotion() { override val identifier: String diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/GiftOneGetOneHabiticaPromotion.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/GiftOneGetOneHabiticaPromotion.kt index 6ac2b16d2..c7380da48 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/GiftOneGetOneHabiticaPromotion.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/GiftOneGetOneHabiticaPromotion.kt @@ -16,7 +16,8 @@ import com.habitrpg.android.habitica.ui.fragments.PromoInfoFragment import com.habitrpg.android.habitica.ui.fragments.purchases.SubscriptionFragment import com.habitrpg.android.habitica.ui.views.promo.PromoMenuView import java.text.SimpleDateFormat -import java.util.* +import java.util.Date +import java.util.Locale class GiftOneGetOneHabiticaPromotion(startDate: Date?, endDate: Date?) : HabiticaPromotion() { override val identifier: String diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/HabiticaPromotion.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/HabiticaPromotion.kt index 149d4362c..c6673aa41 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/HabiticaPromotion.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/HabiticaPromotion.kt @@ -7,7 +7,7 @@ import com.habitrpg.android.habitica.databinding.FragmentSubscriptionBinding import com.habitrpg.android.habitica.databinding.PurchaseGemViewBinding import com.habitrpg.android.habitica.ui.fragments.PromoInfoFragment import com.habitrpg.android.habitica.ui.views.promo.PromoMenuView -import java.util.* +import java.util.Date enum class PromoType { GEMS_AMOUNT, @@ -18,10 +18,10 @@ enum class PromoType { abstract class HabiticaPromotion { val isActive: Boolean - get() { - val now = Date() - return startDate.before(now) && endDate.after(now) - } + get() { + val now = Date() + return startDate.before(now) && endDate.after(now) + } abstract val identifier: String abstract val promoType: PromoType diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/SpookyExtraGemsHabiticaPromotion.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/SpookyExtraGemsHabiticaPromotion.kt index b8a13e891..836614ade 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/SpookyExtraGemsHabiticaPromotion.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/SpookyExtraGemsHabiticaPromotion.kt @@ -2,7 +2,6 @@ package com.habitrpg.android.habitica.models.promotions import android.content.Context import android.graphics.Color -import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable import android.graphics.drawable.ShapeDrawable import android.view.View @@ -14,10 +13,10 @@ import com.habitrpg.android.habitica.databinding.PurchaseGemViewBinding import com.habitrpg.android.habitica.extensions.DateUtils import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.ui.fragments.PromoInfoFragment -import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import com.habitrpg.android.habitica.ui.views.promo.PromoMenuView import java.text.SimpleDateFormat -import java.util.* +import java.util.Date +import java.util.Locale class SpookyExtraGemsHabiticaPromotion(startDate: Date?, endDate: Date?) : HabiticaPromotion() { override val identifier: String diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/Survey2021Promotion.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/Survey2021Promotion.kt index 8cd972ff2..858c99b3e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/Survey2021Promotion.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/Survey2021Promotion.kt @@ -12,7 +12,7 @@ import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.ui.fragments.PromoInfoFragment import com.habitrpg.android.habitica.ui.fragments.PromoWebFragmentArgs import com.habitrpg.android.habitica.ui.views.promo.PromoMenuView -import java.util.* +import java.util.Date class Survey2021Promotion : HabiticaPromotion(), HabiticaWebPromotion { override val identifier: String diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Challenge.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Challenge.kt index da9e35a6c..95ce1b443 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Challenge.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Challenge.kt @@ -1,14 +1,13 @@ package com.habitrpg.android.habitica.models.social import com.habitrpg.android.habitica.models.BaseMainObject -import com.habitrpg.android.habitica.models.BaseObject import com.habitrpg.android.habitica.models.tasks.TasksOrder import com.habitrpg.android.habitica.models.user.User import io.realm.RealmModel import io.realm.RealmObject import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey -import java.util.* +import java.util.Date open class Challenge : RealmObject(), BaseMainObject { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/InboxConversation.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/InboxConversation.kt index 0277b0a23..4b82ce4de 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/InboxConversation.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/InboxConversation.kt @@ -4,7 +4,7 @@ import com.habitrpg.android.habitica.models.BaseObject import com.habitrpg.android.habitica.models.user.ContributorInfo import io.realm.RealmObject import io.realm.annotations.PrimaryKey -import java.util.* +import java.util.Date open class InboxConversation : RealmObject(), BaseObject { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Attribute.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Attribute.kt index d7aad22d2..91c213271 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Attribute.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Attribute.kt @@ -9,4 +9,4 @@ enum class Attribute constructor(val value: String) { companion object { fun from(type: String?): Attribute? = values().find { it.value == type } } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/ChecklistItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/ChecklistItem.kt index 43eb9e71f..7a8c538e6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/ChecklistItem.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/ChecklistItem.kt @@ -6,7 +6,7 @@ import com.habitrpg.android.habitica.models.BaseMainObject import io.realm.RealmModel import io.realm.RealmObject import io.realm.annotations.PrimaryKey -import java.util.* +import java.util.UUID open class ChecklistItem : RealmObject, BaseMainObject, Parcelable { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Frequency.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Frequency.kt index e785a5aad..1055af281 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Frequency.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Frequency.kt @@ -9,4 +9,4 @@ enum class Frequency constructor(val value: String) { companion object { fun from(type: String?): Frequency? = values().find { it.value == type } } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Task.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Task.kt index ebcfa2949..09db3334b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Task.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/Task.kt @@ -15,7 +15,6 @@ import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey import org.json.JSONArray import org.json.JSONException -import java.util.ArrayList import java.util.Calendar import java.util.Date import java.util.GregorianCalendar @@ -285,13 +284,10 @@ open class Task : RealmObject, BaseMainObject, Parcelable { streak != task.streak -> true else -> false } - } else if (type == TaskType.TODO) { - return dueDate != task.dueDate - + return dueDate != task.dueDate } else if (type == TaskType.REWARD) { - return value != task.value - + return value != task.value } else { return false } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskGroupPlan.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskGroupPlan.kt index 415c34ff6..94b841a33 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskGroupPlan.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskGroupPlan.kt @@ -5,7 +5,7 @@ import com.habitrpg.android.habitica.models.BaseObject import io.realm.RealmList import io.realm.RealmObject import io.realm.annotations.RealmClass -import java.util.* +import java.util.Date @RealmClass(embedded = true) open class TaskGroupPlan : RealmObject(), BaseObject { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskType.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskType.kt index 17be3ca31..6c23a0bd3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskType.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/tasks/TaskType.kt @@ -12,4 +12,4 @@ enum class TaskType constructor(val value: String) { companion object { fun from(type: String?): TaskType? = values().find { it.value == type } } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AdditionalSubscriptionInfo.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AdditionalSubscriptionInfo.kt index 392e85a8f..eba4a648b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AdditionalSubscriptionInfo.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AdditionalSubscriptionInfo.kt @@ -4,6 +4,6 @@ import io.realm.RealmObject import io.realm.annotations.RealmClass @RealmClass(embedded = true) -open class AdditionalSubscriptionInfo: RealmObject() { +open class AdditionalSubscriptionInfo : RealmObject() { var data: GoogleSubscriptionData? = null -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AuthenticationTimestamps.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AuthenticationTimestamps.kt index 376b3b49d..7a0529f37 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AuthenticationTimestamps.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/AuthenticationTimestamps.kt @@ -4,7 +4,7 @@ import com.google.gson.annotations.SerializedName import com.habitrpg.android.habitica.models.BaseObject import io.realm.RealmObject import io.realm.annotations.RealmClass -import java.util.* +import java.util.Date @RealmClass(embedded = true) open class AuthenticationTimestamps : RealmObject(), BaseObject { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Items.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Items.kt index d4d52ad47..b7561ed10 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Items.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Items.kt @@ -4,7 +4,7 @@ import com.habitrpg.android.habitica.models.BaseObject import io.realm.RealmList import io.realm.RealmObject import io.realm.annotations.RealmClass -import java.util.* +import java.util.Date @RealmClass(embedded = true) open class Items : RealmObject, BaseObject { @@ -64,10 +64,10 @@ open class Items : RealmObject, BaseObject { val hasTransformationItems: Boolean get() { return special?.any { transformationItem -> - transformationItem.key == ("seafoam") && transformationItem.numberOwned > 0|| - transformationItem.key == ("shinySeed") && transformationItem.numberOwned > 0|| - transformationItem.key == ("snowball") && transformationItem.numberOwned > 0|| - transformationItem.key == ("spookySparkles") && transformationItem.numberOwned > 0 + transformationItem.key == ("seafoam") && transformationItem.numberOwned > 0 || + transformationItem.key == ("shinySeed") && transformationItem.numberOwned > 0 || + transformationItem.key == ("snowball") && transformationItem.numberOwned > 0 || + transformationItem.key == ("spookySparkles") && transformationItem.numberOwned > 0 } ?: false } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Preferences.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Preferences.kt index fa2b155be..770c8dfd5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Preferences.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/Preferences.kt @@ -5,7 +5,6 @@ import com.habitrpg.android.habitica.models.AvatarPreferences import com.habitrpg.android.habitica.models.BaseObject import io.realm.RealmObject import io.realm.annotations.RealmClass -import java.util.* @RealmClass(embedded = true) open class Preferences : RealmObject(), AvatarPreferences, BaseObject { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlan.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlan.kt index 99719ccf7..9fd860ed1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlan.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/SubscriptionPlan.kt @@ -4,7 +4,7 @@ import com.google.gson.annotations.SerializedName import com.habitrpg.android.habitica.models.BaseObject import io.realm.RealmObject import io.realm.annotations.RealmClass -import java.util.* +import java.util.Date @RealmClass(embedded = true) open class SubscriptionPlan : RealmObject(), BaseObject { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/User.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/User.kt index 930949462..c0f5b74f6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/User.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/user/User.kt @@ -2,7 +2,12 @@ package com.habitrpg.android.habitica.models.user import com.google.gson.annotations.SerializedName import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.models.* +import com.habitrpg.android.habitica.models.Avatar +import com.habitrpg.android.habitica.models.BaseMainObject +import com.habitrpg.android.habitica.models.PushDevice +import com.habitrpg.android.habitica.models.QuestAchievement +import com.habitrpg.android.habitica.models.Tag +import com.habitrpg.android.habitica.models.VersionedObject import com.habitrpg.android.habitica.models.invitations.Invitations import com.habitrpg.android.habitica.models.social.ChallengeMembership import com.habitrpg.android.habitica.models.social.UserParty @@ -12,7 +17,7 @@ import io.realm.RealmList import io.realm.RealmObject import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey -import java.util.* +import java.util.Date open class User : RealmObject(), BaseMainObject, Avatar, VersionedObject { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.kt index c98cc4b0b..c99fc0152 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/ApiModule.kt @@ -1,20 +1,20 @@ package com.habitrpg.android.habitica.modules import android.content.Context -import com.habitrpg.android.habitica.data.implementation.ApiClientImpl.Companion.createGsonFactory import android.content.SharedPreferences -import com.habitrpg.android.habitica.helpers.KeyHelper import com.habitrpg.android.habitica.api.HostConfig -import retrofit2.converter.gson.GsonConverterFactory +import com.habitrpg.android.habitica.api.MaintenanceApiService +import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.implementation.ApiClientImpl +import com.habitrpg.android.habitica.data.implementation.ApiClientImpl.Companion.createGsonFactory +import com.habitrpg.android.habitica.helpers.KeyHelper import com.habitrpg.android.habitica.helpers.NotificationsManager import com.habitrpg.android.habitica.proxy.AnalyticsManager -import com.habitrpg.android.habitica.data.ApiClient -import com.habitrpg.android.habitica.api.MaintenanceApiService import dagger.Module import dagger.Provides import retrofit2.Retrofit import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory +import retrofit2.converter.gson.GsonConverterFactory import java.lang.ref.WeakReference import javax.inject.Singleton diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt index ddb99448a..bba74b3b5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt @@ -7,13 +7,15 @@ import android.content.res.Resources import androidx.preference.PreferenceManager import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.ContentRepository -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.executors.PostExecutionThread import com.habitrpg.android.habitica.executors.UIThread -import com.habitrpg.android.habitica.helpers.* +import com.habitrpg.android.habitica.helpers.AppConfigManager +import com.habitrpg.android.habitica.helpers.KeyHelper import com.habitrpg.android.habitica.helpers.KeyHelper.Companion.getInstance +import com.habitrpg.android.habitica.helpers.SoundFileLoader +import com.habitrpg.android.habitica.helpers.SoundManager +import com.habitrpg.android.habitica.helpers.TaskFilterHelper import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager -import com.habitrpg.android.habitica.proxy.AnalyticsManager import com.habitrpg.shared.habitica.HLogger import dagger.Module import dagger.Provides diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/RepositoryModule.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/RepositoryModule.kt index f7943388d..eba641a84 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/RepositoryModule.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/RepositoryModule.kt @@ -1,11 +1,11 @@ package com.habitrpg.android.habitica.modules import android.content.Context -import com.habitrpg.android.habitica.data.local.ContentLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmContentLocalRepository import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.ContentRepository import com.habitrpg.android.habitica.data.implementation.ContentRepositoryImpl +import com.habitrpg.android.habitica.data.local.ContentLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmContentLocalRepository import dagger.Module import dagger.Provides import io.realm.Realm @@ -34,4 +34,4 @@ open class RepositoryModule { context ) } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/UserRepositoryModule.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/UserRepositoryModule.kt index a23592e4f..c30c7d511 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/UserRepositoryModule.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/UserRepositoryModule.kt @@ -1,56 +1,54 @@ package com.habitrpg.android.habitica.modules import android.content.Context -import com.habitrpg.android.habitica.data.SetupCustomizationRepository -import com.habitrpg.android.habitica.data.implementation.SetupCustomizationRepositoryImpl -import com.habitrpg.android.habitica.data.local.TaskLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmTaskLocalRepository import com.habitrpg.android.habitica.data.ApiClient -import com.habitrpg.android.habitica.modules.AppModule -import com.habitrpg.android.habitica.helpers.AppConfigManager -import com.habitrpg.android.habitica.proxy.AnalyticsManager -import com.habitrpg.android.habitica.data.TaskRepository -import com.habitrpg.android.habitica.data.implementation.TaskRepositoryImpl -import com.habitrpg.android.habitica.data.local.TagLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmTagLocalRepository -import com.habitrpg.android.habitica.data.TagRepository -import com.habitrpg.android.habitica.data.implementation.TagRepositoryImpl -import com.habitrpg.android.habitica.data.local.ChallengeLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmChallengeLocalRepository import com.habitrpg.android.habitica.data.ChallengeRepository -import com.habitrpg.android.habitica.data.implementation.ChallengeRepositoryImpl -import com.habitrpg.android.habitica.data.local.UserLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmUserLocalRepository -import com.habitrpg.android.habitica.data.UserRepository -import com.habitrpg.android.habitica.data.implementation.UserRepositoryImpl -import com.habitrpg.android.habitica.data.local.SocialLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmSocialLocalRepository -import com.habitrpg.android.habitica.data.SocialRepository -import com.habitrpg.android.habitica.data.implementation.SocialRepositoryImpl -import com.habitrpg.android.habitica.data.local.InventoryLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmInventoryLocalRepository -import com.habitrpg.android.habitica.data.InventoryRepository -import com.habitrpg.android.habitica.data.implementation.InventoryRepositoryImpl -import com.habitrpg.android.habitica.data.local.FAQLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmFAQLocalRepository -import com.habitrpg.android.habitica.data.FAQRepository -import com.habitrpg.android.habitica.data.implementation.FAQRepositoryImpl -import com.habitrpg.android.habitica.data.local.TutorialLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmTutorialLocalRepository -import com.habitrpg.android.habitica.data.TutorialRepository -import com.habitrpg.android.habitica.data.implementation.TutorialRepositoryImpl -import com.habitrpg.android.habitica.data.local.CustomizationLocalRepository -import com.habitrpg.android.habitica.data.local.implementation.RealmCustomizationLocalRepository import com.habitrpg.android.habitica.data.CustomizationRepository +import com.habitrpg.android.habitica.data.FAQRepository +import com.habitrpg.android.habitica.data.InventoryRepository +import com.habitrpg.android.habitica.data.SetupCustomizationRepository +import com.habitrpg.android.habitica.data.SocialRepository +import com.habitrpg.android.habitica.data.TagRepository +import com.habitrpg.android.habitica.data.TaskRepository +import com.habitrpg.android.habitica.data.TutorialRepository +import com.habitrpg.android.habitica.data.UserRepository +import com.habitrpg.android.habitica.data.implementation.ChallengeRepositoryImpl import com.habitrpg.android.habitica.data.implementation.CustomizationRepositoryImpl +import com.habitrpg.android.habitica.data.implementation.FAQRepositoryImpl +import com.habitrpg.android.habitica.data.implementation.InventoryRepositoryImpl +import com.habitrpg.android.habitica.data.implementation.SetupCustomizationRepositoryImpl +import com.habitrpg.android.habitica.data.implementation.SocialRepositoryImpl +import com.habitrpg.android.habitica.data.implementation.TagRepositoryImpl +import com.habitrpg.android.habitica.data.implementation.TaskRepositoryImpl +import com.habitrpg.android.habitica.data.implementation.TutorialRepositoryImpl +import com.habitrpg.android.habitica.data.implementation.UserRepositoryImpl +import com.habitrpg.android.habitica.data.local.ChallengeLocalRepository +import com.habitrpg.android.habitica.data.local.CustomizationLocalRepository +import com.habitrpg.android.habitica.data.local.FAQLocalRepository +import com.habitrpg.android.habitica.data.local.InventoryLocalRepository +import com.habitrpg.android.habitica.data.local.SocialLocalRepository +import com.habitrpg.android.habitica.data.local.TagLocalRepository +import com.habitrpg.android.habitica.data.local.TaskLocalRepository +import com.habitrpg.android.habitica.data.local.TutorialLocalRepository +import com.habitrpg.android.habitica.data.local.UserLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmChallengeLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmCustomizationLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmFAQLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmInventoryLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmSocialLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmTagLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmTaskLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmTutorialLocalRepository +import com.habitrpg.android.habitica.data.local.implementation.RealmUserLocalRepository +import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.helpers.PurchaseHandler import com.habitrpg.android.habitica.helpers.UserScope +import com.habitrpg.android.habitica.proxy.AnalyticsManager import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel import dagger.Module import dagger.Provides import io.realm.Realm import javax.inject.Named -import javax.inject.Singleton @Module class UserRepositoryModule { @@ -210,4 +208,4 @@ class UserRepositoryModule { fun providesPurchaseHandler(context: Context, analyticsManager: AnalyticsManager, apiClient: ApiClient, userViewModel: MainUserViewModel): PurchaseHandler { return PurchaseHandler(context, analyticsManager, apiClient, userViewModel) } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/prefs/TimePreference.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/prefs/TimePreference.kt index fb2900833..4142fbd8e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/prefs/TimePreference.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/prefs/TimePreference.kt @@ -5,7 +5,8 @@ import android.content.res.TypedArray import android.util.AttributeSet import androidx.preference.DialogPreference import java.text.DateFormat -import java.util.* +import java.util.Calendar +import java.util.Locale class TimePreference(ctxt: Context, attrs: AttributeSet?) : DialogPreference(ctxt, attrs) { private var timeval: String? = null @@ -54,7 +55,6 @@ class TimePreference(ctxt: Context, attrs: AttributeSet?) : DialogPreference(ctx fun getMinute(timeval: String?): Int { return timeval?.split(":")?.get(1)?.toInt() ?: 0 - } } @@ -62,4 +62,4 @@ class TimePreference(ctxt: Context, attrs: AttributeSet?) : DialogPreference(ctx positiveButtonText = "Set" negativeButtonText = "Cancel" } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/LocalNotificationActionReceiver.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/LocalNotificationActionReceiver.kt index 5bd4483ff..5d0e87eb0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/LocalNotificationActionReceiver.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/LocalNotificationActionReceiver.kt @@ -5,7 +5,6 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.text.Spannable -import android.text.SpannableStringBuilder import android.widget.Toast import androidx.core.app.NotificationManagerCompat import androidx.core.app.RemoteInput diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.kt index 137ab03f2..27925ff0b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/NotificationPublisher.kt @@ -22,7 +22,9 @@ import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.activities.MainActivity import io.reactivex.rxjava3.functions.BiFunction -import java.util.* +import java.util.Calendar +import java.util.Date +import java.util.Random import javax.inject.Inject @Suppress("DEPRECATION") diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskReceiver.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskReceiver.kt index 13fee1df7..f8bf24d40 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskReceiver.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskReceiver.kt @@ -21,7 +21,6 @@ import com.habitrpg.android.habitica.ui.activities.MainActivity import com.habitrpg.shared.habitica.HLogger import com.habitrpg.shared.habitica.LogLevel import io.reactivex.rxjava3.functions.Consumer -import java.util.* import javax.inject.Inject class TaskReceiver : BroadcastReceiver() { @@ -69,8 +68,10 @@ class TaskReceiver : BroadcastReceiver() { var notificationBuilder = NotificationCompat.Builder(context, "default") .setSmallIcon(R.drawable.ic_gryphon_white) .setContentTitle(task.text) - .setStyle(NotificationCompat.BigTextStyle() - .bigText(task.notes)) + .setStyle( + NotificationCompat.BigTextStyle() + .bigText(task.notes) + ) .setPriority(NotificationCompat.PRIORITY_MAX) .setSound(soundUri) .setAutoCancel(true) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.kt index b3166efa8..4ed7e44d0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.kt @@ -1,7 +1,12 @@ package com.habitrpg.android.habitica.ui import android.content.Context -import android.graphics.* +import android.graphics.Bitmap +import android.graphics.Canvas +import android.graphics.Matrix +import android.graphics.PointF +import android.graphics.Rect +import android.graphics.RectF import android.graphics.drawable.Drawable import android.text.TextUtils import android.util.AttributeSet @@ -20,7 +25,8 @@ import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.models.Avatar import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils import io.reactivex.rxjava3.functions.Consumer -import java.util.* +import java.util.Date +import java.util.EnumMap import java.util.concurrent.atomic.AtomicInteger class AvatarView : FrameLayout { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt index e51369eb5..ba926b04b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt @@ -16,7 +16,7 @@ import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import io.reactivex.rxjava3.disposables.Disposable -import java.util.* +import java.util.Locale import kotlin.math.floor class AvatarWithBarsViewModel(private val context: Context, private val binding: AvatarWithBarsBinding, userRepository: UserRepository? = null) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AddTaskWidgetActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AddTaskWidgetActivity.kt index eff0dc4f5..dca84656c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AddTaskWidgetActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AddTaskWidgetActivity.kt @@ -8,7 +8,6 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.edit import androidx.preference.PreferenceManager import com.habitrpg.android.habitica.databinding.WidgetConfigureAddTaskBinding -import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.widget.AddTaskWidgetProvider diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AdventureGuideActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AdventureGuideActivity.kt index 631a95038..939e74e5b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AdventureGuideActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AdventureGuideActivity.kt @@ -11,7 +11,6 @@ import androidx.core.app.NavUtils import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivityAdventureGuideBinding import com.habitrpg.android.habitica.databinding.AdventureGuideItemBinding import com.habitrpg.android.habitica.extensions.fromHtml @@ -19,7 +18,6 @@ import com.habitrpg.android.habitica.helpers.AmplitudeManager import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils -import javax.inject.Inject class AdventureGuideActivity : BaseActivity() { private lateinit var binding: ActivityAdventureGuideBinding diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt index fc9221a88..d3ce786ea 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt @@ -39,7 +39,8 @@ import com.habitrpg.android.habitica.ui.helpers.ToolbarColorHelper import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.android.habitica.userpicture.BitmapUtils import io.reactivex.rxjava3.disposables.CompositeDisposable -import java.util.* +import java.util.Date +import java.util.Locale import javax.inject.Inject abstract class BaseActivity : AppCompatActivity() { @@ -94,14 +95,16 @@ abstract class BaseActivity : AppCompatActivity() { injectActivity(HabiticaBaseApplication.userComponent) setContentView(getContentView()) compositeSubscription = CompositeDisposable() - compositeSubscription.add(notificationsManager.displayNotificationEvents.subscribe( - { - if (ShowNotificationInteractor(this, lifecycleScope).handleNotification(it)) { - compositeSubscription.add(userRepository.retrieveUser(false, true).subscribeWithErrorHandler {}) - } - }, - RxErrorHandler.handleEmptyError() - )) + compositeSubscription.add( + notificationsManager.displayNotificationEvents.subscribe( + { + if (ShowNotificationInteractor(this, lifecycleScope).handleNotification(it)) { + compositeSubscription.add(userRepository.retrieveUser(false, true).subscribeWithErrorHandler {}) + } + }, + RxErrorHandler.handleEmptyError() + ) + ) } override fun onRestart() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt index 496dbd52d..aaaaac7f9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt @@ -5,7 +5,11 @@ import android.content.Context import android.content.Intent import android.graphics.drawable.ColorDrawable import android.os.Bundle -import android.view.* +import android.view.Menu +import android.view.MenuItem +import android.view.MotionEvent +import android.view.View +import android.view.ViewGroup import android.widget.AdapterView import android.widget.ArrayAdapter import android.widget.EditText @@ -18,7 +22,6 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.ChallengeRepository import com.habitrpg.android.habitica.data.SocialRepository -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivityCreateChallengeBinding import com.habitrpg.android.habitica.extensions.addCloseButton import com.habitrpg.android.habitica.extensions.getThemeColor @@ -40,8 +43,7 @@ import io.reactivex.rxjava3.core.Flowable import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch -import java.lang.NumberFormatException -import java.util.* +import java.util.UUID import javax.inject.Inject import javax.inject.Named diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt index 3ff4fc12b..687db0ddf 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt @@ -11,15 +11,17 @@ import androidx.core.content.ContextCompat import androidx.navigation.navArgs import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivityClassSelectionBinding import com.habitrpg.android.habitica.helpers.RxErrorHandler -import com.habitrpg.android.habitica.models.user.* +import com.habitrpg.android.habitica.models.user.Gear +import com.habitrpg.android.habitica.models.user.Items +import com.habitrpg.android.habitica.models.user.Outfit +import com.habitrpg.android.habitica.models.user.Preferences +import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaProgressDialog import io.reactivex.rxjava3.functions.Consumer -import javax.inject.Inject class ClassSelectionActivity : BaseActivity(), Consumer { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FixCharacterValuesActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FixCharacterValuesActivity.kt index 7647f434a..c0a4b8536 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FixCharacterValuesActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FixCharacterValuesActivity.kt @@ -107,81 +107,80 @@ class FixCharacterValuesActivity : BaseActivity() { .flatMap { repository.retrieveUser(false, true, true) } .subscribe( {}, RxErrorHandler.handleEmptyError(), - { - dialog?.dismiss() - finish() - } - ) + { + dialog?.dismiss() + finish() + } + ) + ) + return true + } + + return super.onOptionsItemSelected(item) + } + + private var user: User? = null + set(value) { + field = value + if (value != null) { + updateFields(value) + } + } + + private fun updateFields(user: User) { + val stats = user.stats ?: return + binding.healthEditText.setText(stats.hp.toString()) + binding.experienceEditText.setText(stats.exp.toString()) + binding.goldEditText.setText(stats.gp.toString()) + binding.manaEditText.setText(stats.mp.toString()) + binding.levelEditText.setText(stats.lvl.toString()) + binding.streakEditText.setText(user.streakCount.toString()) + + when (stats.habitClass) { + Stats.WARRIOR -> { + setIconBackground( + binding.levelIconBackgroundView, + ContextCompat.getColor(this, R.color.red_500) ) - return true + binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfWarriorLightBg()) } - - return super.onOptionsItemSelected(item) - } - - private var user: User? = null - set(value) { - field = value - if (value != null) { - updateFields(value) - } + Stats.MAGE -> { + setIconBackground( + binding.levelIconBackgroundView, + ContextCompat.getColor(this, R.color.blue_500) + ) + binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfMageLightBg()) } - - private fun updateFields(user: User) { - val stats = user.stats ?: return - binding.healthEditText.setText(stats.hp.toString()) - binding.experienceEditText.setText(stats.exp.toString()) - binding.goldEditText.setText(stats.gp.toString()) - binding.manaEditText.setText(stats.mp.toString()) - binding.levelEditText.setText(stats.lvl.toString()) - binding.streakEditText.setText(user.streakCount.toString()) - - when (stats.habitClass) { - Stats.WARRIOR -> { - setIconBackground( - binding.levelIconBackgroundView, - ContextCompat.getColor(this, R.color.red_500) - ) - binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfWarriorLightBg()) - } - Stats.MAGE -> { - setIconBackground( - binding.levelIconBackgroundView, - ContextCompat.getColor(this, R.color.blue_500) - ) - binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfMageLightBg()) - } - Stats.HEALER -> { - setIconBackground( - binding.levelIconBackgroundView, - ContextCompat.getColor(this, R.color.yellow_500) - ) - binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfHealerLightBg()) - } - Stats.ROGUE -> { - setIconBackground( - binding.levelIconBackgroundView, - ContextCompat.getColor(this, R.color.brand_500) - ) - binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfRogueLightBg()) - } + Stats.HEALER -> { + setIconBackground( + binding.levelIconBackgroundView, + ContextCompat.getColor(this, R.color.yellow_500) + ) + binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfHealerLightBg()) } - } - - private fun setIconBackground(view: View, color: Int) { - val backgroundDrawable = ContextCompat.getDrawable(this, R.drawable.layout_rounded_bg) - backgroundDrawable?.setTintWith(color, PorterDuff.Mode.MULTIPLY) - backgroundDrawable?.alpha = 50 - view.background = backgroundDrawable - } - - private fun EditText.getDoubleValue(): Double { - val stringValue = this.text.toString() - return try { - stringValue.toDouble() - } catch (_: NumberFormatException) { - 0.0 + Stats.ROGUE -> { + setIconBackground( + binding.levelIconBackgroundView, + ContextCompat.getColor(this, R.color.brand_500) + ) + binding.levelIconView.setImageBitmap(HabiticaIconsHelper.imageOfRogueLightBg()) } } } - \ No newline at end of file + + private fun setIconBackground(view: View, color: Int) { + val backgroundDrawable = ContextCompat.getDrawable(this, R.drawable.layout_rounded_bg) + backgroundDrawable?.setTintWith(color, PorterDuff.Mode.MULTIPLY) + backgroundDrawable?.alpha = 50 + view.background = backgroundDrawable + } + + private fun EditText.getDoubleValue(): Double { + val stringValue = this.text.toString() + return try { + stringValue.toDouble() + } catch (_: NumberFormatException) { + 0.0 + } + } +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt index 316608f86..450444f20 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt @@ -3,9 +3,14 @@ package com.habitrpg.android.habitica.ui.activities import android.content.Context import android.graphics.Typeface import android.os.Bundle -import android.text.method.LinkMovementMethod -import android.view.* -import android.widget.* +import android.view.Menu +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TableLayout +import android.widget.TableRow +import android.widget.TextView import androidx.core.content.ContextCompat import androidx.core.os.bundleOf import coil.load @@ -14,7 +19,6 @@ import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.data.SocialRepository -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivityFullProfileBinding import com.habitrpg.android.habitica.extensions.addCancelButton import com.habitrpg.android.habitica.extensions.getThemeColor @@ -40,7 +44,6 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.delay import kotlinx.coroutines.launch import java.text.SimpleDateFormat -import java.util.* import javax.inject.Inject import kotlin.math.floor import kotlin.math.min diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.kt index ab62ad892..76183fa63 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.kt @@ -1,17 +1,12 @@ package com.habitrpg.android.habitica.ui.activities import android.os.Bundle -import android.view.MenuItem import androidx.appcompat.widget.Toolbar import androidx.fragment.app.Fragment import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent -import com.habitrpg.android.habitica.data.UserRepository -import com.habitrpg.android.habitica.helpers.PurchaseHandler -import com.habitrpg.android.habitica.proxy.AnalyticsManager import com.habitrpg.android.habitica.ui.fragments.purchases.GemsPurchaseFragment import com.habitrpg.android.habitica.ui.fragments.purchases.SubscriptionFragment -import javax.inject.Inject class GemPurchaseActivity : PurchaseActivity() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftGemsActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftGemsActivity.kt index 1aba66ce1..5f8904a62 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftGemsActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftGemsActivity.kt @@ -9,13 +9,11 @@ import com.google.android.material.tabs.TabLayoutMediator import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.SocialRepository -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivityGiftGemsBinding import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.helpers.PurchaseHandler import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.members.Member -import com.habitrpg.android.habitica.proxy.AnalyticsManager import com.habitrpg.android.habitica.ui.fragments.purchases.GiftBalanceGemsFragment import com.habitrpg.android.habitica.ui.fragments.purchases.GiftPurchaseGemsFragment import com.habitrpg.android.habitica.ui.views.CurrencyView diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftSubscriptionActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftSubscriptionActivity.kt index e04e379de..6c7fa3e30 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftSubscriptionActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftSubscriptionActivity.kt @@ -9,13 +9,10 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.databinding.ActivityGiftSubscriptionBinding -import com.habitrpg.android.habitica.extensions.addOkButton import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.helpers.PurchaseHandler import com.habitrpg.android.habitica.helpers.PurchaseTypes import com.habitrpg.android.habitica.helpers.RxErrorHandler -import com.habitrpg.android.habitica.proxy.AnalyticsManager -import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.android.habitica.ui.views.subscriptions.SubscriptionOptionView import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -150,5 +147,4 @@ class GiftSubscriptionActivity : PurchaseActivity() { purchaseHandler.purchase(this, sku) } } - } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt index 582067e97..b75dedd99 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt @@ -12,7 +12,6 @@ import com.google.android.material.tabs.TabLayoutMediator import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.SocialRepository -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivityPartyInviteBinding import com.habitrpg.android.habitica.extensions.runDelayed import com.habitrpg.android.habitica.modules.AppModule diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GuidelinesActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GuidelinesActivity.kt index 8fcf7bf5c..ac1a8ea77 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GuidelinesActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GuidelinesActivity.kt @@ -7,7 +7,11 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.ui.helpers.setMarkdown -import okhttp3.* +import okhttp3.Call +import okhttp3.Callback +import okhttp3.OkHttpClient +import okhttp3.Request +import okhttp3.Response import java.io.BufferedReader import java.io.IOException import java.io.InputStreamReader diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.kt index 35a0b44f6..c3706bcfb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.kt @@ -1,7 +1,11 @@ package com.habitrpg.android.habitica.ui.activities import android.accounts.AccountManager -import android.animation.* +import android.animation.Animator +import android.animation.AnimatorListenerAdapter +import android.animation.AnimatorSet +import android.animation.ObjectAnimator +import android.animation.ValueAnimator import android.app.Activity import android.content.Intent import android.content.SharedPreferences @@ -21,17 +25,17 @@ import android.widget.LinearLayout import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat import androidx.preference.PreferenceManager -import com.google.android.gms.common.* import com.google.firebase.analytics.FirebaseAnalytics import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.ApiClient -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivityLoginBinding import com.habitrpg.android.habitica.extensions.addCancelButton import com.habitrpg.android.habitica.extensions.addOkButton import com.habitrpg.android.habitica.extensions.updateStatusBarColor -import com.habitrpg.android.habitica.helpers.* +import com.habitrpg.android.habitica.helpers.AmplitudeManager +import com.habitrpg.android.habitica.helpers.AppConfigManager +import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.auth.UserAuthResponse import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.helpers.dismissKeyboard @@ -54,7 +58,6 @@ class LoginActivity : BaseActivity() { private var isRegistering: Boolean = false private var isShowingForm: Boolean = false - private val loginClick = View.OnClickListener { binding.PBAsyncTask.visibility = View.VISIBLE if (isRegistering) { @@ -229,10 +232,11 @@ class LoginActivity : BaseActivity() { private fun handleAuthResponse(response: UserAuthResponse) { viewModel.handleAuthResponse(response) - compositeSubscription.add(userRepository.retrieveUser(true) - .subscribe({ - handleAuthResponse(it, response.newUser) - }, RxErrorHandler.handleEmptyError()) + compositeSubscription.add( + userRepository.retrieveUser(true) + .subscribe({ + handleAuthResponse(it, response.newUser) + }, RxErrorHandler.handleEmptyError()) ) } @@ -302,7 +306,8 @@ class LoginActivity : BaseActivity() { } private val recoverFromPlayServicesErrorResult = registerForActivityResult( - ActivityResultContracts.StartActivityForResult()) { + ActivityResultContracts.StartActivityForResult() + ) { if (it.resultCode != Activity.RESULT_CANCELED) { viewModel.handleGoogleLoginResult(this, null) { user, isNew -> handleAuthResponse(user, isNew) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt index dd692bc20..bb8224e9f 100755 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt @@ -7,13 +7,12 @@ import android.content.ComponentName import android.content.Intent import android.content.pm.PackageManager import android.content.res.Configuration -import android.graphics.Bitmap -import android.graphics.Canvas import android.os.Build import android.os.Bundle -import android.view.* -import android.widget.FrameLayout -import android.widget.ImageView +import android.view.KeyEvent +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.activity.viewModels import androidx.appcompat.app.ActionBarDrawerToggle import androidx.drawerlayout.widget.DrawerLayout @@ -23,20 +22,28 @@ import androidx.navigation.fragment.NavHostFragment import com.google.firebase.perf.FirebasePerformance import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent -import com.habitrpg.android.habitica.data.* +import com.habitrpg.android.habitica.data.ApiClient +import com.habitrpg.android.habitica.data.InventoryRepository +import com.habitrpg.android.habitica.data.TaskRepository import com.habitrpg.android.habitica.data.local.UserQuestStatus import com.habitrpg.android.habitica.databinding.ActivityMainBinding import com.habitrpg.android.habitica.databinding.DialogFaintBinding -import com.habitrpg.android.habitica.extensions.* -import com.habitrpg.android.habitica.helpers.* +import com.habitrpg.android.habitica.extensions.dpToPx +import com.habitrpg.android.habitica.extensions.getThemeColor +import com.habitrpg.android.habitica.extensions.hideKeyboard +import com.habitrpg.android.habitica.extensions.isUsingNightModeResources +import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler +import com.habitrpg.android.habitica.extensions.updateStatusBarColor +import com.habitrpg.android.habitica.helpers.AmplitudeManager +import com.habitrpg.android.habitica.helpers.AppConfigManager +import com.habitrpg.android.habitica.helpers.MainNavigationController +import com.habitrpg.android.habitica.helpers.NotificationOpenHandler +import com.habitrpg.android.habitica.helpers.RxErrorHandler +import com.habitrpg.android.habitica.helpers.SoundManager import com.habitrpg.android.habitica.interactors.CheckClassSelectionUseCase import com.habitrpg.android.habitica.interactors.DisplayItemDropUseCase import com.habitrpg.android.habitica.interactors.NotifyUserUseCase import com.habitrpg.android.habitica.models.TutorialStep -import com.habitrpg.android.habitica.models.inventory.Egg -import com.habitrpg.android.habitica.models.inventory.Food -import com.habitrpg.android.habitica.models.inventory.HatchingPotion -import com.habitrpg.android.habitica.models.inventory.Pet import com.habitrpg.android.habitica.models.responses.MaintenanceResponse import com.habitrpg.android.habitica.models.responses.TaskScoringResult import com.habitrpg.android.habitica.models.user.User @@ -44,12 +51,12 @@ import com.habitrpg.android.habitica.ui.AvatarView import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel import com.habitrpg.android.habitica.ui.TutorialView import com.habitrpg.android.habitica.ui.fragments.NavigationDrawerFragment -import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils import com.habitrpg.android.habitica.ui.viewmodels.MainActivityViewModel import com.habitrpg.android.habitica.ui.viewmodels.NotificationsViewModel -import com.habitrpg.android.habitica.ui.views.* -import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar.SnackbarDisplayType -import com.habitrpg.android.habitica.ui.views.dialogs.* +import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper +import com.habitrpg.android.habitica.ui.views.SnackbarActivity +import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog +import com.habitrpg.android.habitica.ui.views.dialogs.QuestCompletedDialog import com.habitrpg.android.habitica.ui.views.yesterdailies.YesterdailyDialog import com.habitrpg.android.habitica.widget.AvatarStatsWidgetProvider import com.habitrpg.android.habitica.widget.DailiesWidgetProvider @@ -57,7 +64,7 @@ import com.habitrpg.android.habitica.widget.HabitButtonWidgetProvider import com.habitrpg.android.habitica.widget.TodoListWidgetProvider import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Observable -import java.util.* +import java.util.Date import java.util.concurrent.TimeUnit import javax.inject.Inject @@ -494,7 +501,6 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction, Snack viewModel.logTutorialStatus(step, false) } - override fun onTutorialCompleted(step: TutorialStep) { viewModel.updateUser("flags.tutorial." + step.tutorialGroup + "." + step.identifier, true) binding.overlayFrameLayout.removeView(this.activeTutorialView) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt index f0f5ecdab..d4af430ef 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt @@ -6,7 +6,11 @@ import android.content.Intent import android.os.Bundle import android.view.LayoutInflater import android.view.View -import android.widget.* +import android.widget.Button +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.RatingBar +import android.widget.TextView import androidx.activity.viewModels import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R @@ -18,7 +22,15 @@ import com.habitrpg.android.habitica.extensions.fromHtml import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.Notification import com.habitrpg.android.habitica.models.inventory.QuestContent -import com.habitrpg.android.habitica.models.notifications.* +import com.habitrpg.android.habitica.models.notifications.GroupTaskApprovedData +import com.habitrpg.android.habitica.models.notifications.GroupTaskNeedsWorkData +import com.habitrpg.android.habitica.models.notifications.GroupTaskRequiresApprovalData +import com.habitrpg.android.habitica.models.notifications.GuildInvitationData +import com.habitrpg.android.habitica.models.notifications.NewChatMessageData +import com.habitrpg.android.habitica.models.notifications.NewStuffData +import com.habitrpg.android.habitica.models.notifications.PartyInvitationData +import com.habitrpg.android.habitica.models.notifications.QuestInvitationData +import com.habitrpg.android.habitica.models.notifications.UnallocatedPointsData import com.habitrpg.android.habitica.ui.viewmodels.NotificationsViewModel import javax.inject.Inject diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PrefsActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PrefsActivity.kt index bd670f5f9..6a4f312c5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PrefsActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PrefsActivity.kt @@ -6,7 +6,10 @@ import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceScreen import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent -import com.habitrpg.android.habitica.ui.fragments.preferences.* +import com.habitrpg.android.habitica.ui.fragments.preferences.AccountPreferenceFragment +import com.habitrpg.android.habitica.ui.fragments.preferences.EmailNotificationsPreferencesFragment +import com.habitrpg.android.habitica.ui.fragments.preferences.PreferencesFragment +import com.habitrpg.android.habitica.ui.fragments.preferences.PushNotificationsPreferencesFragment import com.habitrpg.android.habitica.ui.views.SnackbarActivity class PrefsActivity : BaseActivity(), PreferenceFragmentCompat.OnPreferenceStartScreenCallback, SnackbarActivity { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PurchaseActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PurchaseActivity.kt index ebb1bed5f..795a14dfa 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PurchaseActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PurchaseActivity.kt @@ -1,3 +1,3 @@ package com.habitrpg.android.habitica.ui.activities -abstract class PurchaseActivity : BaseActivity() \ No newline at end of file +abstract class PurchaseActivity : BaseActivity() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ReportMessageActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ReportMessageActivity.kt index 93ef60589..dc6579af9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ReportMessageActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ReportMessageActivity.kt @@ -16,7 +16,6 @@ import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.databinding.ActivityReportMessageBinding import com.habitrpg.android.habitica.extensions.getThemeColor import com.habitrpg.android.habitica.helpers.RxErrorHandler -import com.habitrpg.android.habitica.models.social.ChatMessage import com.habitrpg.android.habitica.ui.helpers.dismissKeyboard import com.habitrpg.android.habitica.ui.helpers.setMarkdown import javax.inject.Inject @@ -90,7 +89,7 @@ class ReportMessageActivity : BaseActivity() { } private fun reportMessage() { - if (isReporting ) { + if (isReporting) { return } isReporting = true diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt index 233b9fbe3..a8f6f00cb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt @@ -22,7 +22,6 @@ import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.data.TaskRepository -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivitySetupBinding import com.habitrpg.android.habitica.helpers.AmplitudeManager import com.habitrpg.android.habitica.helpers.RxErrorHandler @@ -32,7 +31,8 @@ import com.habitrpg.android.habitica.ui.fragments.setup.TaskSetupFragment import com.habitrpg.android.habitica.ui.fragments.setup.WelcomeFragment import com.viewpagerindicator.IconPagerAdapter import io.reactivex.rxjava3.core.BackpressureStrategy -import java.util.* +import java.util.Calendar +import java.util.Locale import javax.inject.Inject class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.kt index 25efc6a62..43689efcf 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.kt @@ -8,7 +8,6 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.SocialRepository -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivitySkillMembersBinding import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.ui.adapter.social.PartyMemberRecyclerViewAdapter diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt index f681e4e7f..06efa4d08 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt @@ -9,7 +9,11 @@ import android.graphics.Typeface import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.os.Handler -import android.view.* +import android.view.Menu +import android.view.MenuItem +import android.view.MotionEvent +import android.view.View +import android.view.WindowManager import android.widget.CheckBox import android.widget.TextView import androidx.appcompat.widget.AppCompatCheckBox @@ -40,7 +44,7 @@ import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.ui.helpers.dismissKeyboard import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import io.realm.RealmList -import java.util.* +import java.util.Date import javax.inject.Inject class TaskFormActivity : BaseActivity() { @@ -242,7 +246,6 @@ class TaskFormActivity : BaseActivity() { ) initialTaskInstance = configureTask(Task()) } - } configureForm() } @@ -274,9 +277,11 @@ class TaskFormActivity : BaseActivity() { isDiscardCancelled = true alert.dismiss() } - alert.setOnDismissListener(DialogInterface.OnDismissListener { - isDiscardCancelled = true - }) + alert.setOnDismissListener( + DialogInterface.OnDismissListener { + isDiscardCancelled = true + } + ) alert.show() } else { super.onBackPressed() @@ -541,13 +546,12 @@ class TaskFormActivity : BaseActivity() { resultIntent.putExtra(TASK_TYPE_KEY, taskType) if (!isChallengeTask) { if (isCreating) { - if (isDiscardCancelled){ + if (isDiscardCancelled) { analyticsManager.logEvent("back_to_task", bundleOf(Pair("is_creating", isCreating))) } taskRepository.createTaskInBackground(thisTask) - } else { - if (isDiscardCancelled){ + if (isDiscardCancelled) { analyticsManager.logEvent("back_to_task", bundleOf(Pair("is_creating", isCreating))) } taskRepository.updateTaskInBackground(thisTask) @@ -650,21 +654,21 @@ class TaskFormActivity : BaseActivity() { taskRepository.unlinkAllTasks(task.challengeID, "keep-all") .flatMap { userRepository.retrieveUser(true, true) } .subscribe( - { - finish() - }, - RxErrorHandler.handleEmptyError() - ) + { + finish() + }, + RxErrorHandler.handleEmptyError() + ) } dialog.addButton(this.getString(R.string.delete_x_tasks, taskCount), false, true) { _, _ -> taskRepository.unlinkAllTasks(task.challengeID, "remove-all") .flatMap { userRepository.retrieveUser(true, true) } .subscribe( - { - finish() - }, - RxErrorHandler.handleEmptyError() - ) + { + finish() + }, + RxErrorHandler.handleEmptyError() + ) } dialog.setExtraCloseButtonVisibility(View.VISIBLE) dialog.show() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt index 8b805712d..a3120cc93 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt @@ -8,7 +8,6 @@ import android.view.View import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent -import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.ActivityVerifyUsernameBinding import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher import com.habitrpg.android.habitica.extensions.runDelayed @@ -19,7 +18,6 @@ import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.PublishSubject import java.util.concurrent.TimeUnit -import javax.inject.Inject class VerifyUsernameActivity : BaseActivity() { private lateinit var binding: ActivityVerifyUsernameBinding diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/BaseRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/BaseRecyclerViewAdapter.kt index 28eaf291b..8106b4ab0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/BaseRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/BaseRecyclerViewAdapter.kt @@ -1,12 +1,10 @@ package com.habitrpg.android.habitica.ui.adapter -import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.RecyclerView import com.habitrpg.android.habitica.models.BaseMainObject -import com.habitrpg.android.habitica.models.BaseObject - -open class DiffCallback(protected val oldList: List, protected val newList: List) : +open class DiffCallback(protected val oldList: List, protected val newList: List) : DiffUtil.Callback() { override fun getOldListSize(): Int { @@ -28,7 +26,7 @@ open class DiffCallback(protected val oldList: List : RecyclerView.Adapter() { +abstract class BaseRecyclerViewAdapter : RecyclerView.Adapter() { open fun getDiffCallback(oldList: List, newList: List): DiffCallback? { return null diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationEquipmentRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationEquipmentRecyclerViewAdapter.kt index 2b32bfde8..f1b61fcc1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationEquipmentRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationEquipmentRecyclerViewAdapter.kt @@ -19,7 +19,6 @@ import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.PublishSubject -import java.util.* class CustomizationEquipmentRecyclerViewAdapter : androidx.recyclerview.widget.RecyclerView.Adapter() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt index 6dd1ebf58..4dc6f5960 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt @@ -23,7 +23,7 @@ import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.PublishSubject -import java.util.* +import java.util.Date class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.RecyclerView.Adapter() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillTasksRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillTasksRecyclerViewAdapter.kt index 8ee7302ea..e519a18fd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillTasksRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillTasksRecyclerViewAdapter.kt @@ -11,7 +11,7 @@ import com.habitrpg.android.habitica.models.tasks.Task import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.PublishSubject -import java.util.* +import java.util.UUID class SkillTasksRecyclerViewAdapter : BaseRecyclerViewAdapter() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.kt index 6b64fa8b0..82639526c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.kt @@ -135,7 +135,7 @@ class SkillsRecyclerViewAdapter : RecyclerView.Adapter() { @@ -124,7 +131,6 @@ class ItemRecyclerAdapter(val context: Context, val user: User?) : BaseRecyclerV } else { imageName = "shop_" + ownedItem.key } - } else { val type = when (ownedItem.itemType) { "eggs" -> "Egg" @@ -171,10 +177,9 @@ class ItemRecyclerAdapter(val context: Context, val user: User?) : BaseRecyclerV val specialItem = item as SpecialItem if (specialItem.isMysteryItem && ownedItem?.numberOwned ?: 0 > 0) { menu.addMenuItem(BottomSheetMenuItem(resources.getString(R.string.open))) - } else if (ownedItem?.numberOwned ?: 0 > 0){ + } else if (ownedItem?.numberOwned ?: 0 > 0) { menu.addMenuItem(BottomSheetMenuItem(resources.getString(R.string.use_item))) } - } menu.setSelectionRunnable { index -> item?.let { selectedItem -> diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt index 69e9bcbda..a3977b699 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt @@ -4,7 +4,6 @@ import android.view.ViewGroup import com.habitrpg.android.habitica.models.inventory.Mount import com.habitrpg.android.habitica.models.inventory.StableSection import com.habitrpg.android.habitica.models.user.OwnedMount -import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.viewHolders.MountViewHolder import com.habitrpg.android.habitica.ui.viewHolders.SectionViewHolder import io.reactivex.rxjava3.core.BackpressureStrategy @@ -16,10 +15,10 @@ class MountDetailRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Ada private val equipEvents = PublishSubject.create() var currentMount: String? = null - set(value) { - field = value - notifyDataSetChanged() - } + set(value) { + field = value + notifyDataSetChanged() + } private var itemList: List = ArrayList() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt index cfb6b1279..a95bdde6f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt @@ -1,11 +1,16 @@ package com.habitrpg.android.habitica.ui.adapter.inventory import android.view.ViewGroup -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Animal +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Mount +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.StableSection import com.habitrpg.android.habitica.models.user.OwnedItem import com.habitrpg.android.habitica.models.user.OwnedMount import com.habitrpg.android.habitica.models.user.OwnedPet -import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.viewHolders.PetViewHolder import com.habitrpg.android.habitica.ui.viewHolders.SectionViewHolder import io.reactivex.rxjava3.core.BackpressureStrategy @@ -18,10 +23,10 @@ class PetDetailRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapt private var ownedMounts: Map? = null private var ownedItems: Map? = null var currentPet: String? = null - set(value) { - field = value - notifyDataSetChanged() - } + set(value) { + field = value + notifyDataSetChanged() + } private val equipEvents = PublishSubject.create() private val feedEvents = PublishSubject.create>() private var ownsSaddles: Boolean = false @@ -107,7 +112,7 @@ class PetDetailRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapt fun setOwnedItems(ownedItems: Map) { this.ownedItems = ownedItems - ownsSaddles = if (ownedItems.containsKey("Saddle-food")) (ownedItems["Saddle-food"]?.numberOwned ?: 0)> 0 else false + ownsSaddles = if (ownedItems.containsKey("Saddle-food")) (ownedItems["Saddle-food"]?.numberOwned ?: 0) > 0 else false notifyDataSetChanged() } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt index ea2d6fb92..caf1cacbd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt @@ -11,10 +11,15 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.ShopHeaderBinding import com.habitrpg.android.habitica.extensions.inflate import com.habitrpg.android.habitica.helpers.MainNavigationController -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Animal +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Mount +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.StableSection import com.habitrpg.android.habitica.models.user.OwnedItem import com.habitrpg.android.habitica.models.user.OwnedMount -import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.fragments.inventory.stable.StableFragmentDirections import com.habitrpg.android.habitica.ui.helpers.loadImage import com.habitrpg.android.habitica.ui.viewHolders.MountViewHolder @@ -77,7 +82,7 @@ class StableRecyclerAdapter : RecyclerView.Adapter() { fun setOwnedItems(ownedItems: Map) { this.ownedItems = ownedItems - ownsSaddles = if (ownedItems.containsKey("Saddle-food")) (ownedItems["Saddle-food"]?.numberOwned ?: 0)> 0 else false + ownsSaddles = if (ownedItems.containsKey("Saddle-food")) (ownedItems["Saddle-food"]?.numberOwned ?: 0) > 0 else false notifyDataSetChanged() } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/setup/TaskSetupAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/setup/TaskSetupAdapter.kt index 71f8f2b39..a73ac3596 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/setup/TaskSetupAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/setup/TaskSetupAdapter.kt @@ -12,7 +12,6 @@ import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.extensions.inflate import com.habitrpg.android.habitica.extensions.setTintWith -import java.util.* class TaskSetupAdapter : RecyclerView.Adapter() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt index 8b45d79d5..4fc826170 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt @@ -8,7 +8,6 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.SystemChatMessageBinding import com.habitrpg.android.habitica.extensions.inflate import com.habitrpg.android.habitica.models.BaseMainObject -import com.habitrpg.android.habitica.models.BaseObject import com.habitrpg.android.habitica.models.social.ChatMessage import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter @@ -29,8 +28,7 @@ class ChatDiffCallback(oldList: List, newList: List() { internal var user = user diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/GuildListAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/GuildListAdapter.kt index 99c863f56..c6e5299f9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/GuildListAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/GuildListAdapter.kt @@ -22,7 +22,7 @@ import com.habitrpg.android.habitica.ui.helpers.EmojiParser import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import io.realm.Case import io.realm.OrderedRealmCollection -import java.util.* +import java.util.Locale class GuildListAdapter : BaseRecyclerViewAdapter(), Filterable { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/challenges/ChallengeTasksRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/challenges/ChallengeTasksRecyclerViewAdapter.kt index 8e9bfa435..81ce99583 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/challenges/ChallengeTasksRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/challenges/ChallengeTasksRecyclerViewAdapter.kt @@ -12,7 +12,11 @@ import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.ui.adapter.tasks.BaseTasksRecyclerViewAdapter import com.habitrpg.android.habitica.ui.viewHolders.BindableViewHolder -import com.habitrpg.android.habitica.ui.viewHolders.tasks.* +import com.habitrpg.android.habitica.ui.viewHolders.tasks.BaseTaskViewHolder +import com.habitrpg.android.habitica.ui.viewHolders.tasks.DailyViewHolder +import com.habitrpg.android.habitica.ui.viewHolders.tasks.HabitViewHolder +import com.habitrpg.android.habitica.ui.viewHolders.tasks.RewardViewHolder +import com.habitrpg.android.habitica.ui.viewHolders.tasks.TodoViewHolder import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.PublishSubject diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/challenges/ChallengesFilterRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/challenges/ChallengesFilterRecyclerViewAdapter.kt index da0cb77c0..d57cf4656 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/challenges/ChallengesFilterRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/challenges/ChallengesFilterRecyclerViewAdapter.kt @@ -7,7 +7,6 @@ import android.widget.CheckBox import androidx.recyclerview.widget.RecyclerView import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.models.social.Group -import java.util.* class ChallengesFilterRecyclerViewAdapter(entries: List) : RecyclerView.Adapter() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/BaseTasksRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/BaseTasksRecyclerViewAdapter.kt index fd26de1ad..802708bae 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/BaseTasksRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/BaseTasksRecyclerViewAdapter.kt @@ -13,7 +13,6 @@ import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.proxy.AnalyticsManager import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter import com.habitrpg.android.habitica.ui.viewHolders.BindableViewHolder -import java.util.* import javax.inject.Inject abstract class BaseTasksRecyclerViewAdapter>( diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/DailiesRecyclerViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/DailiesRecyclerViewHolder.kt index 821e90c7e..bd728ec3c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/DailiesRecyclerViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/DailiesRecyclerViewHolder.kt @@ -2,7 +2,6 @@ package com.habitrpg.android.habitica.ui.adapter.tasks import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.google.android.material.internal.ViewUtils.getContentView import com.habitrpg.android.habitica.helpers.TaskFilterHelper import com.habitrpg.android.habitica.ui.viewHolders.tasks.DailyViewHolder diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt index 94d60698c..e3b6ec854 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RealmBaseTasksRecyclerViewAdapter.kt @@ -32,20 +32,20 @@ abstract class RealmBaseTasksRecyclerViewAdapter( override var canScoreTasks = true private var unfilteredData: List? = null override var showAdventureGuide = false - set(value) { - if (field == value) return - field = value - if (value) { - notifyItemInserted(0) - } else { - notifyItemRemoved(0) + set(value) { + if (field == value) return + field = value + if (value) { + notifyItemInserted(0) + } else { + notifyItemRemoved(0) + } } - } override var user: User? = null - set(value) { - field = value - notifyItemChanged(0) - } + set(value) { + field = value + notifyItemChanged(0) + } override var taskDisplayMode: String = "standard" set(value) { @@ -147,10 +147,10 @@ class AdventureGuideViewHolder(itemView: View) : RecyclerView.ViewHolder(itemVie } fun update(user: User) { - val achievements = user.onboardingAchievements + val achievements = user.onboardingAchievements val completed = achievements.count { it.earned } progressBar.max = achievements.size progressBar.progress = completed countView.text = "$completed / ${achievements.size}" } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/TodosRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/TodosRecyclerViewAdapter.kt index 1e1a403eb..88cce159d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/TodosRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/TodosRecyclerViewAdapter.kt @@ -24,5 +24,4 @@ class TodosRecyclerViewAdapter(layoutResource: Int, taskFilterHelper: TaskFilter super.onCreateViewHolder(parent, viewType) } } - } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/AchievementsFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/AchievementsFragment.kt index b77c3c20f..fdfb76a01 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/AchievementsFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/AchievementsFragment.kt @@ -2,7 +2,12 @@ package com.habitrpg.android.habitica.ui.fragments import android.graphics.drawable.ColorDrawable import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.appcompat.widget.Toolbar import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager @@ -24,7 +29,7 @@ class AchievementsFragment : BaseMainFragment 0 } .subscribe( - { - questContent = it - }, - RxErrorHandler.handleEmptyError() - ) + { + questContent = it + }, + RxErrorHandler.handleEmptyError() + ) ) binding?.messagesButtonWrapper?.setOnClickListener { setSelection(R.id.inboxFragment, null, true, preventReselection = false) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/StatsFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/StatsFragment.kt index 10121347e..e323ba274 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/StatsFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/StatsFragment.kt @@ -21,7 +21,6 @@ import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.android.habitica.ui.views.stats.BulkAllocateStatsDialog -import java.util.* import javax.inject.Inject import kotlin.math.min diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt index 87c04d055..31328b5ee 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt @@ -11,7 +11,6 @@ import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.CustomizationRepository import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding -import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.adapter.CustomizationRecyclerViewAdapter diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt index a18122de8..db3ef38cb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt @@ -36,10 +36,12 @@ class EquipmentOverviewFragment : BaseMainFragment if (isChecked == viewModel.user.value?.preferences?.autoEquip) return@setOnCheckedChangeListener - viewModel.updateUser("preferences.autoEquip", isChecked) } + viewModel.updateUser("preferences.autoEquip", isChecked) + } binding?.costumeSwitch?.setOnCheckedChangeListener { _, isChecked -> if (isChecked == viewModel.user.value?.preferences?.costume) return@setOnCheckedChangeListener - viewModel.updateUser("preferences.costume", isChecked) } + viewModel.updateUser("preferences.costume", isChecked) + } viewModel.user.observe(viewLifecycleOwner) { it?.items?.gear?.let { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemDialogFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemDialogFragment.kt index 38eef8c5b..3ff959f02 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemDialogFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemDialogFragment.kt @@ -18,7 +18,13 @@ import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.interactors.FeedPetUseCase import com.habitrpg.android.habitica.interactors.HatchPetUseCase -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Item +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.QuestContent +import com.habitrpg.android.habitica.models.inventory.SpecialItem import com.habitrpg.android.habitica.models.user.OwnedPet import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.activities.BaseActivity @@ -197,18 +203,21 @@ class ItemDialogFragment : BaseDialogFragment(), SwipeRefr dismiss() openMarket() } - + this.loadItems() } private fun feedPet(food: Food) { val pet = feedingPet ?: return (activity as? BaseActivity)?.let { - it.compositeSubscription.add(feedPetUseCase.observable( - FeedPetUseCase.RequestValues( - pet, food, - it - )).subscribeWithErrorHandler {}) + it.compositeSubscription.add( + feedPetUseCase.observable( + FeedPetUseCase.RequestValues( + pet, food, + it + ) + ).subscribeWithErrorHandler {} + ) } } @@ -241,11 +250,14 @@ class ItemDialogFragment : BaseDialogFragment(), SwipeRefr private fun hatchPet(potion: HatchingPotion, egg: Egg) { dismiss() (activity as? BaseActivity)?.let { - it.compositeSubscription.add(hatchPetUseCase.observable( - HatchPetUseCase.RequestValues( - potion, egg, - it - )).subscribeWithErrorHandler {}) + it.compositeSubscription.add( + hatchPetUseCase.observable( + HatchPetUseCase.RequestValues( + potion, egg, + it + ) + ).subscribeWithErrorHandler {} + ) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.kt index a145cfca2..8362b5b17 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.kt @@ -20,7 +20,12 @@ import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.interactors.HatchPetUseCase -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Item +import com.habitrpg.android.habitica.models.inventory.QuestContent +import com.habitrpg.android.habitica.models.inventory.SpecialItem import com.habitrpg.android.habitica.models.responses.SkillResponse import com.habitrpg.android.habitica.models.user.OwnedItem import com.habitrpg.android.habitica.models.user.OwnedPet @@ -36,6 +41,7 @@ import com.habitrpg.android.habitica.ui.helpers.loadImage import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel +import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar import com.habitrpg.android.habitica.ui.views.dialogs.OpenedMysteryitemDialog import io.reactivex.rxjava3.core.Flowable import javax.inject.Inject @@ -200,11 +206,14 @@ class ItemRecyclerFragment : BaseFragment(), SwipeRefreshL private fun hatchPet(potion: HatchingPotion, egg: Egg) { (activity as? BaseActivity)?.let { - compositeSubscription.add(hatchPetUseCase.observable( - HatchPetUseCase.RequestValues( - potion, egg, - it - )).subscribeWithErrorHandler {}) + compositeSubscription.add( + hatchPetUseCase.observable( + HatchPetUseCase.RequestValues( + potion, egg, + it + ) + ).subscribeWithErrorHandler {} + ) } } @@ -283,7 +292,6 @@ class ItemRecyclerFragment : BaseFragment(), SwipeRefreshL RxErrorHandler.handleEmptyError() ) ) - } compositeSubscription.add(inventoryRepository.getPets().subscribe({ adapter?.setExistingPets(it) }, RxErrorHandler.handleEmptyError())) @@ -344,7 +352,6 @@ class ItemRecyclerFragment : BaseFragment(), SwipeRefreshL } loadItems() - } companion object { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt index 9d8333152..4205a7397 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt @@ -6,7 +6,6 @@ import android.view.View import android.view.ViewGroup import androidx.core.os.bundleOf import androidx.recyclerview.widget.GridLayoutManager -import com.google.firebase.analytics.FirebaseAnalytics import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.InventoryRepository @@ -156,7 +155,6 @@ open class ShopFragment : BaseMainFragment() alert.setTitle(getString(R.string.class_confirmation_price, classIdentifier, 3)) alert.addButton(R.string.choose_class, true) { _, _ -> userRepository.changeClass(classIdentifier).subscribeWithErrorHandler { - } } alert.addButton(R.string.dialog_go_back, false) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.kt index 3757d58c9..094d34244 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.kt @@ -16,7 +16,6 @@ import com.habitrpg.android.habitica.models.inventory.StableSection import com.habitrpg.android.habitica.models.user.OwnedMount import com.habitrpg.android.habitica.ui.adapter.inventory.MountDetailRecyclerAdapter import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment -import com.habitrpg.android.habitica.ui.helpers.MarginDecoration import com.habitrpg.android.habitica.ui.helpers.SafeDefaultItemAnimator import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel import javax.inject.Inject diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.kt index a8325b5a7..bcd695034 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.kt @@ -13,8 +13,11 @@ import com.habitrpg.android.habitica.extensions.getTranslatedType import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.interactors.FeedPetUseCase -import com.habitrpg.android.habitica.interactors.HatchPetUseCase -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.StableSection import com.habitrpg.android.habitica.models.user.OwnedMount import com.habitrpg.android.habitica.models.user.OwnedPet import com.habitrpg.android.habitica.ui.activities.BaseActivity @@ -202,11 +205,14 @@ class PetDetailRecyclerFragment : private fun showFeedingDialog(pet: Pet, food: Food?) { if (food != null) { (activity as? BaseActivity)?.let { - compositeSubscription.add(feedPetUseCase.observable( - FeedPetUseCase.RequestValues( - pet, food, - it - )).subscribeWithErrorHandler {}) + compositeSubscription.add( + feedPetUseCase.observable( + FeedPetUseCase.RequestValues( + pet, food, + it + ) + ).subscribeWithErrorHandler {} + ) } return } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt index 508f910c9..52439f106 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt @@ -17,7 +17,9 @@ import com.habitrpg.android.habitica.models.inventory.Animal import com.habitrpg.android.habitica.models.inventory.Egg import com.habitrpg.android.habitica.models.inventory.HatchingPotion import com.habitrpg.android.habitica.models.inventory.StableSection -import com.habitrpg.android.habitica.models.user.* +import com.habitrpg.android.habitica.models.user.OwnedMount +import com.habitrpg.android.habitica.models.user.OwnedObject +import com.habitrpg.android.habitica.models.user.OwnedPet import com.habitrpg.android.habitica.ui.adapter.inventory.StableRecyclerAdapter import com.habitrpg.android.habitica.ui.fragments.BaseFragment import com.habitrpg.android.habitica.ui.helpers.EmptyItem @@ -27,7 +29,6 @@ import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Maybe import io.reactivex.rxjava3.kotlin.combineLatest -import java.util.* import javax.inject.Inject class StableRecyclerFragment : diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt index 57e75fbd0..bcb71c955 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt @@ -2,7 +2,10 @@ package com.habitrpg.android.habitica.ui.fragments.preferences import android.accounts.AccountManager import android.app.Activity -import android.content.* +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Intent +import android.content.SharedPreferences import android.os.Bundle import android.text.InputType import android.view.View @@ -35,8 +38,8 @@ import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaProgressDialog import javax.inject.Inject - -class AccountPreferenceFragment: BasePreferencesFragment(), +class AccountPreferenceFragment : + BasePreferencesFragment(), SharedPreferences.OnSharedPreferenceChangeListener { @Inject lateinit var hostConfig: HostConfig @@ -72,7 +75,6 @@ class AccountPreferenceFragment: BasePreferencesFragment(), super.onPause() } - private fun updateUserFields() { val user = user ?: return configurePreference(findPreference("username"), user.authentication?.localAuthentication?.username) @@ -121,17 +123,15 @@ class AccountPreferenceFragment: BasePreferencesFragment(), configurePreference(findPreference("UserID"), user.id) } - private fun configurePreference(preference: Preference?, value: String?) { (preference as? EditTextPreference)?.let { it.text = value - } preference?.summary = value } override fun onPreferenceTreeClick(preference: Preference): Boolean { - when(preference.key) { + when (preference.key) { "username" -> showLoginNameDialog() "confirm_username" -> showConfirmUsernameDialog() "email" -> { @@ -239,7 +239,8 @@ class AccountPreferenceFragment: BasePreferencesFragment(), } private val recoverFromPlayServicesErrorResult = registerForActivityResult( - ActivityResultContracts.StartActivityForResult()) { + ActivityResultContracts.StartActivityForResult() + ) { if (it.resultCode != Activity.RESULT_CANCELED) { activity?.let { it1 -> viewModel.handleGoogleLoginResult(it1, null) { _, _ -> @@ -276,9 +277,11 @@ class AccountPreferenceFragment: BasePreferencesFragment(), passwordEditText?.showErrorIfNecessary() passwordRepeatEditText?.showErrorIfNecessary() if (passwordEditText?.isValid != true || passwordRepeatEditText?.isValid != true) return@addButton - userRepository.updatePassword(oldPasswordEditText?.text ?: "", + userRepository.updatePassword( + oldPasswordEditText?.text ?: "", passwordEditText.text ?: "", - passwordRepeatEditText.text ?: "") + passwordRepeatEditText.text ?: "" + ) .flatMap { userRepository.retrieveUser(true, true) } .subscribe( { @@ -494,4 +497,4 @@ class AccountPreferenceFragment: BasePreferencesFragment(), override fun onSharedPreferenceChanged(p0: SharedPreferences?, p1: String?) { } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/DayStartPreferenceDialogFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/DayStartPreferenceDialogFragment.kt index b7f33cdff..9d8252f18 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/DayStartPreferenceDialogFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/DayStartPreferenceDialogFragment.kt @@ -12,7 +12,8 @@ import androidx.preference.PreferenceFragmentCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.prefs.TimePreference import java.text.DateFormat -import java.util.* +import java.util.Calendar +import java.util.GregorianCalendar class DayStartPreferenceDialogFragment : PreferenceDialogFragmentCompat() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt index 6702d0374..a05cef7dc 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt @@ -17,7 +17,12 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.ContentRepository import com.habitrpg.android.habitica.extensions.addCancelButton -import com.habitrpg.android.habitica.helpers.* +import com.habitrpg.android.habitica.helpers.AppConfigManager +import com.habitrpg.android.habitica.helpers.AppTestingLevel +import com.habitrpg.android.habitica.helpers.LanguageHelper +import com.habitrpg.android.habitica.helpers.RxErrorHandler +import com.habitrpg.android.habitica.helpers.SoundManager +import com.habitrpg.android.habitica.helpers.TaskAlarmManager import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.prefs.TimePreference @@ -27,7 +32,7 @@ import com.habitrpg.android.habitica.ui.activities.PrefsActivity import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar import com.habitrpg.android.habitica.ui.views.SnackbarActivity import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog -import java.util.* +import java.util.Locale import javax.inject.Inject class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnSharedPreferenceChangeListener { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/TimePreferenceDialogFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/TimePreferenceDialogFragment.kt index d7c97b50d..ac80e8b41 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/TimePreferenceDialogFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/TimePreferenceDialogFragment.kt @@ -8,8 +8,7 @@ import android.widget.TimePicker import androidx.preference.PreferenceDialogFragmentCompat import androidx.preference.PreferenceFragmentCompat import com.habitrpg.android.habitica.prefs.TimePreference -import java.text.DateFormat -import java.util.* +import java.util.Locale class TimePreferenceDialogFragment : PreferenceDialogFragmentCompat() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt index 1e46ea04a..18a1d8f2e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt @@ -14,16 +14,21 @@ import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.FragmentGemPurchaseBinding import com.habitrpg.android.habitica.extensions.addCancelButton import com.habitrpg.android.habitica.extensions.isUsingNightModeResources -import com.habitrpg.android.habitica.helpers.* +import com.habitrpg.android.habitica.helpers.AmplitudeManager +import com.habitrpg.android.habitica.helpers.AppConfigManager +import com.habitrpg.android.habitica.helpers.PurchaseHandler +import com.habitrpg.android.habitica.helpers.PurchaseTypes import com.habitrpg.android.habitica.models.promotions.PromoType import com.habitrpg.android.habitica.ui.GemPurchaseOptionsView import com.habitrpg.android.habitica.ui.activities.GiftGemsActivity -import com.habitrpg.android.habitica.ui.activities.GiftSubscriptionActivity import com.habitrpg.android.habitica.ui.fragments.BaseFragment import com.habitrpg.android.habitica.ui.fragments.PromoInfoFragment import com.habitrpg.android.habitica.ui.helpers.dismissKeyboard import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject class GemsPurchaseFragment : BaseFragment() { @@ -139,4 +144,4 @@ class GemsPurchaseFragment : BaseFragment() { alert.show() } } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GiftBalanceGemsFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GiftBalanceGemsFragment.kt index 0e5095fd0..2639c94b4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GiftBalanceGemsFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GiftBalanceGemsFragment.kt @@ -70,7 +70,7 @@ class GiftBalanceGemsFragment : BaseFragment() { } .subscribe( { - activity?.finish() + activity?.finish() }, RxErrorHandler.handleEmptyError() ) ) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GiftPurchaseGemsFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GiftPurchaseGemsFragment.kt index bca9e0724..d461a1c7c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GiftPurchaseGemsFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GiftPurchaseGemsFragment.kt @@ -12,7 +12,6 @@ import com.habitrpg.android.habitica.databinding.FragmentGiftGemPurchaseBinding import com.habitrpg.android.habitica.helpers.PurchaseHandler import com.habitrpg.android.habitica.helpers.PurchaseTypes import com.habitrpg.android.habitica.models.members.Member -import com.habitrpg.android.habitica.proxy.AnalyticsManager import com.habitrpg.android.habitica.ui.GemPurchaseOptionsView import com.habitrpg.android.habitica.ui.fragments.BaseFragment import kotlinx.coroutines.CoroutineScope diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt index 795bb089a..aa5085362 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt @@ -8,7 +8,6 @@ import android.view.View import android.view.ViewGroup import android.widget.EditText import androidx.fragment.app.Fragment -import com.android.billingclient.api.Purchase import com.android.billingclient.api.SkuDetails import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent @@ -24,7 +23,6 @@ import com.habitrpg.android.habitica.helpers.PurchaseHandler import com.habitrpg.android.habitica.helpers.PurchaseTypes import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.user.User -import com.habitrpg.android.habitica.proxy.AnalyticsManager import com.habitrpg.android.habitica.ui.activities.GiftSubscriptionActivity import com.habitrpg.android.habitica.ui.fragments.BaseFragment import com.habitrpg.android.habitica.ui.fragments.PromoInfoFragment diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/AvatarSetupFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/AvatarSetupFragment.kt index a194ef050..b6c57d7e6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/AvatarSetupFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/AvatarSetupFragment.kt @@ -21,7 +21,7 @@ import com.habitrpg.android.habitica.ui.activities.SetupActivity import com.habitrpg.android.habitica.ui.adapter.setup.CustomizationSetupAdapter import com.habitrpg.android.habitica.ui.fragments.BaseFragment import com.habitrpg.android.habitica.ui.views.setup.AvatarCategoryView -import java.util.* +import java.util.Random import javax.inject.Inject class AvatarSetupFragment : BaseFragment() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/TaskSetupFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/TaskSetupFragment.kt index 0b28f548c..63493f480 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/TaskSetupFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/setup/TaskSetupFragment.kt @@ -18,7 +18,7 @@ import com.habitrpg.android.habitica.ui.activities.SetupActivity import com.habitrpg.android.habitica.ui.adapter.setup.TaskSetupAdapter import com.habitrpg.android.habitica.ui.fragments.BaseFragment import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper -import java.util.* +import java.util.Date class TaskSetupFragment : BaseFragment() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.kt index cca68dcd0..34c8bb487 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.kt @@ -75,20 +75,20 @@ class SkillsFragment : BaseMainFragment() { adapter?.mana = user.stats?.mp ?: 0.0 adapter?.level = user.stats?.lvl ?: 0 adapter?.specialItems = user.items?.special - Flowable.combineLatest( - userRepository.getSkills(user), - userRepository.getSpecialItems(user), - { skills, items -> - val allEntries = mutableListOf() - for (skill in skills) { - allEntries.add(skill) - } - for (item in items) { - allEntries.add(item) - } - return@combineLatest allEntries + Flowable.combineLatest( + userRepository.getSkills(user), + userRepository.getSpecialItems(user), + { skills, items -> + val allEntries = mutableListOf() + for (skill in skills) { + allEntries.add(skill) } - ).subscribe({ skills -> adapter?.setSkillList(skills) }, RxErrorHandler.handleEmptyError()) + for (item in items) { + allEntries.add(item) + } + return@combineLatest allEntries + } + ).subscribe({ skills -> adapter?.setSkillList(skills) }, RxErrorHandler.handleEmptyError()) } private fun onSkillSelected(skill: Skill) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt index 78f11d71c..ffc46f7de 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt @@ -4,7 +4,12 @@ import android.content.ClipData import android.content.ClipboardManager import android.content.Context import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.appcompat.app.AlertDialog import androidx.fragment.app.viewModels import androidx.recyclerview.widget.RecyclerView @@ -209,73 +214,72 @@ class InboxMessageListFragment : BaseMainFragment + socialRepository.postPrivateMessage(userID, chatText) + .delay(200, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + { + viewModel.invalidateDataSource() + }, + { error -> + RxErrorHandler.reportError(error) + binding?.let { + val alert = HabiticaAlertDialog(it.chatBarView.context) + alert.setTitle("You cannot reply to this conversation") + alert.setMessage("This user is unable to receive your private message") + alert.addOkButton() + alert.show() } - ) - ) - } - - private fun sendMessage(chatText: String) { - viewModel.memberID?.let { userID -> - socialRepository.postPrivateMessage(userID, chatText) - .delay(200, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe( - { - viewModel.invalidateDataSource() - }, - { error -> - RxErrorHandler.reportError(error) - binding?.let { - val alert = HabiticaAlertDialog(it.chatBarView.context) - alert.setTitle("You cannot reply to this conversation") - alert.setMessage("This user is unable to receive your private message") - alert.addOkButton() - alert.show() - } - binding?.chatBarView?.message = chatText - } - ) - KeyboardUtil.dismissKeyboard(getActivity()) - } - } - - private fun setReceivingUser(chatRoomUser: String?, replyToUserUUID: String?) { - this.chatRoomUser = chatRoomUser - this.replyToUserUUID = replyToUserUUID - activity?.title = chatRoomUser - } - - private fun copyMessageToClipboard(chatMessage: ChatMessage) { - val clipMan = getActivity()?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager - val messageText = ClipData.newPlainText("Chat message", chatMessage.text) - clipMan?.setPrimaryClip(messageText) - val activity = getActivity() as? MainActivity - if (activity != null) { - showSnackbar(activity.snackbarContainer, getString(R.string.chat_message_copied), HabiticaSnackbar.SnackbarDisplayType.NORMAL) - } - } - - private fun showFlagConfirmationDialog(chatMessage: ChatMessage) { - val directions = MainNavDirections.actionGlobalReportMessageActivity(chatMessage.text ?: "", chatMessage.user ?: "", chatMessage.id, null) - MainNavigationController.navigate(directions) - } - - private fun showDeleteConfirmationDialog(chatMessage: ChatMessage) { - val context = context - if (context != null) { - AlertDialog.Builder(context) - .setTitle(R.string.confirm_delete_tag_title) - .setMessage(R.string.confirm_delete_tag_message) - .setIcon(android.R.drawable.ic_dialog_alert) - .setPositiveButton(R.string.yes) { _, _ -> socialRepository.deleteMessage(chatMessage).subscribe({ }, RxErrorHandler.handleEmptyError()) } - .setNegativeButton(R.string.no, null).show() - } - } - - private fun openProfile() { - replyToUserUUID?.let { FullProfileActivity.open(it) } + binding?.chatBarView?.message = chatText + } + ) + KeyboardUtil.dismissKeyboard(getActivity()) } } - \ No newline at end of file + + private fun setReceivingUser(chatRoomUser: String?, replyToUserUUID: String?) { + this.chatRoomUser = chatRoomUser + this.replyToUserUUID = replyToUserUUID + activity?.title = chatRoomUser + } + + private fun copyMessageToClipboard(chatMessage: ChatMessage) { + val clipMan = getActivity()?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager + val messageText = ClipData.newPlainText("Chat message", chatMessage.text) + clipMan?.setPrimaryClip(messageText) + val activity = getActivity() as? MainActivity + if (activity != null) { + showSnackbar(activity.snackbarContainer, getString(R.string.chat_message_copied), HabiticaSnackbar.SnackbarDisplayType.NORMAL) + } + } + + private fun showFlagConfirmationDialog(chatMessage: ChatMessage) { + val directions = MainNavDirections.actionGlobalReportMessageActivity(chatMessage.text ?: "", chatMessage.user ?: "", chatMessage.id, null) + MainNavigationController.navigate(directions) + } + + private fun showDeleteConfirmationDialog(chatMessage: ChatMessage) { + val context = context + if (context != null) { + AlertDialog.Builder(context) + .setTitle(R.string.confirm_delete_tag_title) + .setMessage(R.string.confirm_delete_tag_message) + .setIcon(android.R.drawable.ic_dialog_alert) + .setPositiveButton(R.string.yes) { _, _ -> socialRepository.deleteMessage(chatMessage).subscribe({ }, RxErrorHandler.handleEmptyError()) } + .setNegativeButton(R.string.no, null).show() + } + } + + private fun openProfile() { + replyToUserUUID?.let { FullProfileActivity.open(it) } + } +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxOverviewFragment.kt index ec808c326..56ff92980 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxOverviewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxOverviewFragment.kt @@ -2,7 +2,12 @@ package com.habitrpg.android.habitica.ui.fragments.social import android.content.Context import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import android.widget.TextView import com.habitrpg.android.habitica.BuildConfig import com.habitrpg.android.habitica.R diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.kt index 1b6e1518c..79c21b789 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.kt @@ -1,7 +1,12 @@ package com.habitrpg.android.habitica.ui.fragments.social import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.viewpager2.adapter.FragmentStateAdapter diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt index 943295fc7..47356011e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt @@ -4,7 +4,12 @@ import android.content.Intent import android.content.pm.PackageManager import android.os.Bundle import android.text.method.LinkMovementMethod -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.core.net.toUri import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent @@ -33,7 +38,6 @@ import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import retrofit2.HttpException -import java.util.* import javax.inject.Inject class ChallengeDetailFragment : BaseMainFragment() { @@ -45,7 +49,6 @@ class ChallengeDetailFragment : BaseMainFragment @Inject lateinit var userViewModel: MainUserViewModel - override var binding: FragmentChallengeDetailBinding? = null override fun createBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentChallengeDetailBinding { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.kt index d0f7e6166..017e98ce4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.kt @@ -2,7 +2,12 @@ package com.habitrpg.android.habitica.ui.fragments.social.challenges import android.content.Intent import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import android.widget.RelativeLayout import android.widget.TextView import androidx.core.view.MenuItemCompat diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildDetailFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildDetailFragment.kt index d3d52d89d..1ada04192 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildDetailFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildDetailFragment.kt @@ -33,7 +33,6 @@ import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch -import java.util.* import javax.inject.Inject import javax.inject.Named diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildFragment.kt index 99a65ddbe..7067f3de7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildFragment.kt @@ -3,7 +3,12 @@ package com.habitrpg.android.habitica.ui.fragments.social.guilds import android.app.Activity import android.content.Intent import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildListFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildListFragment.kt index 0327db707..774ece179 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildListFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildListFragment.kt @@ -1,7 +1,9 @@ package com.habitrpg.android.habitica.ui.fragments.social.guilds import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup import androidx.appcompat.widget.SearchView import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.habitrpg.android.habitica.R diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildOverviewFragment.kt index 30b6c980d..517bd239b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildOverviewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/guilds/GuildOverviewFragment.kt @@ -3,7 +3,12 @@ package com.habitrpg.android.habitica.ui.fragments.social.guilds import android.content.Intent import android.content.pm.PackageManager import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.appcompat.widget.SearchView import androidx.core.content.ContextCompat import androidx.core.net.toUri diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/NoPartyFragmentFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/NoPartyFragmentFragment.kt index 8ca468010..cdb9e1fb6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/NoPartyFragmentFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/NoPartyFragmentFragment.kt @@ -24,7 +24,6 @@ import com.habitrpg.android.habitica.databinding.FragmentNoPartyBinding import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.RxErrorHandler -import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.AvatarView import com.habitrpg.android.habitica.ui.activities.GroupFormActivity import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.kt index 9aa943813..4178d67dd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.kt @@ -3,7 +3,12 @@ package com.habitrpg.android.habitica.ui.fragments.social.party import android.app.Activity import android.content.Intent import android.os.Bundle -import android.view.* +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels @@ -20,7 +25,6 @@ import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment import com.habitrpg.android.habitica.ui.fragments.social.ChatFragment import com.habitrpg.android.habitica.ui.viewmodels.GroupViewType import com.habitrpg.android.habitica.ui.viewmodels.PartyViewModel -import java.util.* class PartyFragment : BaseMainFragment() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyInviteFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyInviteFragment.kt index 54163a54d..d26464b6c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyInviteFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyInviteFragment.kt @@ -11,7 +11,6 @@ import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.databinding.FragmentPartyInviteBinding import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.ui.fragments.BaseFragment -import java.util.* import javax.inject.Inject class PartyInviteFragment : BaseFragment() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt index 53e4b2036..e1e9e072f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt @@ -113,8 +113,8 @@ class BugFixFragment : BaseMainFragment() { val manufacturer = deviceInfo?.manufacturer ?: Build.MANUFACTURER val newLine = "%0D%0A" var bodyOfEmail = Uri.encode("Device: $manufacturer $deviceName") + - newLine + Uri.encode("Android Version: $version") + - newLine + Uri.encode( + newLine + Uri.encode("Android Version: $version") + + newLine + Uri.encode( "AppVersion: " + getString( R.string.version_info, versionName, @@ -129,14 +129,18 @@ class BugFixFragment : BaseMainFragment() { userViewModel.user.value?.let { user -> bodyOfEmail += newLine + Uri.encode("Level: " + (user.stats?.lvl ?: 0)) + - newLine + Uri.encode( - "Class: " + (if (user.preferences?.disableClasses == true) "Disabled" else (user.stats?.habitClass - ?: "None")) + newLine + Uri.encode( + "Class: " + ( + if (user.preferences?.disableClasses == true) "Disabled" else ( + user.stats?.habitClass + ?: "None" + ) + ) ) + - newLine + Uri.encode("Is in Inn: " + (user.preferences?.sleep ?: false)) + - newLine + Uri.encode("Uses Costume: " + (user.preferences?.costume ?: false)) + - newLine + Uri.encode("Custom Day Start: " + (user.preferences?.dayStart ?: 0)) + - newLine + Uri.encode( + newLine + Uri.encode("Is in Inn: " + (user.preferences?.sleep ?: false)) + + newLine + Uri.encode("Uses Costume: " + (user.preferences?.costume ?: false)) + + newLine + Uri.encode("Custom Day Start: " + (user.preferences?.dayStart ?: 0)) + + newLine + Uri.encode( "Timezone Offset: " + (user.preferences?.timezoneOffset ?: 0) ) } @@ -146,8 +150,8 @@ class BugFixFragment : BaseMainFragment() { activity?.let { val emailIntent = Intent(Intent.ACTION_SENDTO) val mailto = "mailto:" + appConfigManager.supportEmail() + - "?subject=" + Uri.encode(subject) + - "&body=" + bodyOfEmail + "?subject=" + Uri.encode(subject) + + "&body=" + bodyOfEmail emailIntent.data = Uri.parse(mailto) startActivity(Intent.createChooser(emailIntent, "Choose an Email client:")) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/RewardsRecyclerviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/RewardsRecyclerviewFragment.kt index 6b47aa4a3..53bc688d3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/RewardsRecyclerviewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/RewardsRecyclerviewFragment.kt @@ -22,7 +22,6 @@ import com.habitrpg.android.habitica.ui.adapter.tasks.RewardsRecyclerViewAdapter import com.habitrpg.android.habitica.ui.helpers.SafeDefaultItemAnimator import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar import io.reactivex.rxjava3.functions.Consumer -import java.util.* class RewardsRecyclerviewFragment : TaskRecyclerViewFragment() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt index 4fb5c43c1..cf97bfe94 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt @@ -9,10 +9,8 @@ import android.text.format.DateUtils import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.core.app.ActivityOptionsCompat import androidx.core.content.ContextCompat import androidx.core.content.edit -import androidx.core.util.Pair import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.NO_POSITION @@ -25,7 +23,13 @@ import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding import com.habitrpg.android.habitica.extensions.setScaledPadding import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler -import com.habitrpg.android.habitica.helpers.* +import com.habitrpg.android.habitica.helpers.AmplitudeManager +import com.habitrpg.android.habitica.helpers.AppConfigManager +import com.habitrpg.android.habitica.helpers.HapticFeedbackManager +import com.habitrpg.android.habitica.helpers.MainNavigationController +import com.habitrpg.android.habitica.helpers.RxErrorHandler +import com.habitrpg.android.habitica.helpers.SoundManager +import com.habitrpg.android.habitica.helpers.TaskFilterHelper import com.habitrpg.android.habitica.models.responses.TaskDirection import com.habitrpg.android.habitica.models.responses.TaskScoringResult import com.habitrpg.android.habitica.models.tasks.Task @@ -33,7 +37,11 @@ import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.ui.activities.MainActivity import com.habitrpg.android.habitica.ui.activities.TaskFormActivity import com.habitrpg.android.habitica.ui.adapter.BaseRecyclerViewAdapter -import com.habitrpg.android.habitica.ui.adapter.tasks.* +import com.habitrpg.android.habitica.ui.adapter.tasks.DailiesRecyclerViewHolder +import com.habitrpg.android.habitica.ui.adapter.tasks.HabitsRecyclerViewAdapter +import com.habitrpg.android.habitica.ui.adapter.tasks.RewardsRecyclerViewAdapter +import com.habitrpg.android.habitica.ui.adapter.tasks.TaskRecyclerViewAdapter +import com.habitrpg.android.habitica.ui.adapter.tasks.TodosRecyclerViewAdapter import com.habitrpg.android.habitica.ui.fragments.BaseFragment import com.habitrpg.android.habitica.ui.helpers.EmptyItem import com.habitrpg.android.habitica.ui.helpers.SafeDefaultItemAnimator @@ -43,7 +51,7 @@ import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.disposables.CompositeDisposable -import java.util.* +import java.util.Date import java.util.concurrent.TimeUnit import javax.inject.Inject @@ -291,10 +299,12 @@ open class TaskRecyclerViewFragment : BaseFragment(), SearchView.OnQueryTextListener, HabiticaBottomNavigationViewListener { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TeamBoardFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TeamBoardFragment.kt index 826877425..6117b5b96 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TeamBoardFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TeamBoardFragment.kt @@ -28,7 +28,6 @@ import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.helpers.TaskFilterHelper -import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.ui.activities.TaskFormActivity import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment @@ -36,7 +35,6 @@ import com.habitrpg.android.habitica.ui.views.navigation.HabiticaBottomNavigatio import com.habitrpg.android.habitica.ui.views.tasks.TaskFilterDialog import io.reactivex.rxjava3.disposables.Disposable import java.util.Date -import java.util.HashMap import java.util.WeakHashMap import javax.inject.Inject diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/AutocompleteAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/AutocompleteAdapter.kt index 1e4733879..c3bd2a304 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/AutocompleteAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/AutocompleteAdapter.kt @@ -16,7 +16,7 @@ import com.habitrpg.android.habitica.models.social.FindUsernameResult import com.habitrpg.android.habitica.models.user.Authentication import com.habitrpg.android.habitica.models.user.Profile import com.habitrpg.android.habitica.ui.views.social.UsernameLabel -import java.util.* +import java.util.Date class AutocompleteAdapter(val context: Context, val socialRepository: SocialRepository? = null, var autocompleteContext: String? = null, var groupID: String? = null, val remoteAutocomplete: Boolean = false) : BaseAdapter(), Filterable { var chatMessages: List = arrayListOf() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/DataBindingUtils.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/DataBindingUtils.kt index f13f4e4f7..dcf3c9b79 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/DataBindingUtils.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/DataBindingUtils.kt @@ -15,8 +15,8 @@ import coil.request.ImageRequest import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.extensions.setTintWith import com.habitrpg.android.habitica.helpers.AppConfigManager -import java.util.* -import kotlin.collections.HashMap +import java.util.Collections +import java.util.Date fun ImageView.loadImage(imageName: String?, imageFormat: String? = null) { DataBindingUtils.loadImage(this, imageName, imageFormat) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/SafeDefaultItemAnimator.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/SafeDefaultItemAnimator.kt index a6d22a0b1..389c47c23 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/SafeDefaultItemAnimator.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/SafeDefaultItemAnimator.kt @@ -9,7 +9,6 @@ import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.SimpleItemAnimator import com.habitrpg.shared.habitica.HLogger import com.habitrpg.shared.habitica.LogLevel -import java.util.* /** * Created by phillip on 02.10.17. diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/ToolbarColorHelper.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/ToolbarColorHelper.kt index 83960121f..4130ad556 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/ToolbarColorHelper.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/helpers/ToolbarColorHelper.kt @@ -29,7 +29,6 @@ import androidx.preference.PreferenceManager import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.extensions.getThemeColor import com.habitrpg.android.habitica.extensions.waitForLayout -import java.util.* /** * Helper class that iterates through Toolbar views, and sets dynamically icons and texts color diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/menu/BottomSheetMenu.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/menu/BottomSheetMenu.kt index 56b68627a..2bf3e8fc5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/menu/BottomSheetMenu.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/menu/BottomSheetMenu.kt @@ -5,8 +5,6 @@ import android.view.View import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.habitrpg.android.habitica.databinding.MenuBottomSheetBinding -import android.view.ViewTreeObserver.OnGlobalLayoutListener - class BottomSheetMenu(context: Context) : BottomSheetDialog(context), View.OnClickListener { private var binding = MenuBottomSheetBinding.inflate(layoutInflater) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/MountViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/MountViewHolder.kt index 8a4e33a69..9202c484b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/MountViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/MountViewHolder.kt @@ -9,7 +9,6 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.MountOverviewItemBinding import com.habitrpg.android.habitica.extensions.inflate import com.habitrpg.android.habitica.models.inventory.Mount -import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils import com.habitrpg.android.habitica.ui.menu.BottomSheetMenu import com.habitrpg.android.habitica.ui.menu.BottomSheetMenuItem diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt index f4bb3c0c2..937f15308 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt @@ -8,8 +8,11 @@ import androidx.core.graphics.drawable.toBitmap import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.PetDetailItemBinding import com.habitrpg.android.habitica.extensions.inflate -import com.habitrpg.android.habitica.models.inventory.* -import com.habitrpg.android.habitica.models.user.User +import com.habitrpg.android.habitica.models.inventory.Animal +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Pet import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils import com.habitrpg.android.habitica.ui.menu.BottomSheetMenu import com.habitrpg.android.habitica.ui.menu.BottomSheetMenuItem diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/SectionViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/SectionViewHolder.kt index 69ecbb89a..f49bfb1b5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/SectionViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/SectionViewHolder.kt @@ -3,7 +3,12 @@ package com.habitrpg.android.habitica.ui.viewHolders import android.content.Context import android.view.View import android.view.ViewGroup -import android.widget.* +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.Button +import android.widget.LinearLayout +import android.widget.Spinner +import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.extensions.inflate diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt index 5ccfa61bf..e20232020 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/BaseTaskViewHolder.kt @@ -6,7 +6,12 @@ import android.text.method.LinkMovementMethod import android.view.MotionEvent import android.view.View import android.view.ViewGroup -import android.widget.* +import android.widget.Button +import android.widget.ImageButton +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.ProgressBar +import android.widget.TextView import androidx.appcompat.widget.AppCompatImageView import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R @@ -15,7 +20,8 @@ import com.habitrpg.android.habitica.extensions.getThemeColor import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.responses.TaskDirection import com.habitrpg.android.habitica.models.tasks.Task -import com.habitrpg.android.habitica.ui.helpers.* +import com.habitrpg.android.habitica.ui.helpers.MarkdownParser +import com.habitrpg.android.habitica.ui.helpers.setParsedMarkdown import com.habitrpg.android.habitica.ui.viewHolders.BindableViewHolder import com.habitrpg.android.habitica.ui.views.EllipsisTextView import io.noties.markwon.utils.NoCopySpannableFactory diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/ChecklistedViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/ChecklistedViewHolder.kt index 460a993ae..470dab600 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/ChecklistedViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/ChecklistedViewHolder.kt @@ -2,8 +2,12 @@ package com.habitrpg.android.habitica.ui.viewHolders.tasks import android.content.Context import android.graphics.PorterDuff -import android.view.* -import android.widget.* +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt index 732202d54..a708f4cfa 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/tasks/DailyViewHolder.kt @@ -5,7 +5,8 @@ import com.habitrpg.android.habitica.models.responses.TaskDirection import com.habitrpg.android.habitica.models.tasks.ChecklistItem import com.habitrpg.android.habitica.models.tasks.Task import java.text.DateFormat -import java.util.* +import java.util.Calendar +import java.util.Date class DailyViewHolder(itemView: View, scoreTaskFunc: ((Task, TaskDirection) -> Unit), scoreChecklistItemFunc: ((Task, ChecklistItem) -> Unit), openTaskFunc: ((Pair) -> Unit), brokenTaskFunc: ((Task) -> Unit)) : ChecklistedViewHolder(itemView, scoreTaskFunc, scoreChecklistItemFunc, openTaskFunc, brokenTaskFunc) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/AuthenticationViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/AuthenticationViewModel.kt index ecfab96be..811e2e2bb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/AuthenticationViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/AuthenticationViewModel.kt @@ -65,7 +65,6 @@ class AuthenticationViewModel() { private var compositeSubscription = CompositeDisposable() - private var callbackManager = CallbackManager.Factory.create() var googleEmail: String? = null private var loginManager = LoginManager.getInstance() @@ -92,7 +91,6 @@ class AuthenticationViewModel() { onSuccess(response) } else -> { - } } }.show() @@ -108,7 +106,7 @@ class AuthenticationViewModel() { compositeSubscription.add( apiClient.connectSocial("facebook", accessToken?.userId ?: "", accessToken?.token ?: "") .subscribe({ - onSuccess(it) + onSuccess(it) }, RxErrorHandler.handleEmptyError()) ) } @@ -136,7 +134,7 @@ class AuthenticationViewModel() { compositeSubscription.add( apiClient.connectSocial("facebook", accessToken.userId, accessToken.token) .subscribe({ - onSuccess(it) + onSuccess(it) }, { }) ) } @@ -169,7 +167,7 @@ class AuthenticationViewModel() { fun handleGoogleLoginResult( activity: Activity, recoverFromPlayServicesErrorResult: ActivityResultLauncher?, - onSuccess: (User, Boolean) -> Unit + onSuccess: (User, Boolean) -> Unit ) { val scopesString = Scopes.PROFILE + " " + Scopes.EMAIL val scopes = "oauth2:$scopesString" @@ -196,15 +194,17 @@ class AuthenticationViewModel() { .flatMap { userRepository.retrieveUser(true, true) } .subscribe( { - onSuccess(it, newUser) + onSuccess(it, newUser) }, { throwable -> if (recoverFromPlayServicesErrorResult == null) return@subscribe throwable.cause?.let { if (GoogleAuthException::class.java.isAssignableFrom(it.javaClass)) { - handleGoogleAuthException(throwable.cause as GoogleAuthException, - activity, - recoverFromPlayServicesErrorResult) + handleGoogleAuthException( + throwable.cause as GoogleAuthException, + activity, + recoverFromPlayServicesErrorResult + ) } } } @@ -235,16 +235,15 @@ class AuthenticationViewModel() { recoverFromPlayServicesErrorResult.launch(intent) return } - } - private fun checkPlayServices(activity: Activity): Boolean { val googleAPI = GoogleApiAvailability.getInstance() val result = googleAPI.isGooglePlayServicesAvailable(activity) if (result != ConnectionResult.SUCCESS) { if (googleAPI.isUserResolvableError(result)) { - googleAPI.getErrorDialog(activity, result, + googleAPI.getErrorDialog( + activity, result, PLAY_SERVICES_RESOLUTION_REQUEST )?.show() } @@ -289,4 +288,4 @@ class AuthenticationViewModel() { private const val REQUEST_CODE_RECOVER_FROM_PLAY_SERVICES_ERROR = 1001 private const val PLAY_SERVICES_RESOLUTION_REQUEST = 9000 } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/BaseViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/BaseViewModel.kt index 82a6bf7d3..78c3fc71a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/BaseViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/BaseViewModel.kt @@ -1,15 +1,12 @@ package com.habitrpg.android.habitica.ui.viewmodels import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import com.habitrpg.android.habitica.HabiticaBaseApplication import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.helpers.RxErrorHandler -import com.habitrpg.android.habitica.models.inventory.Equipment import com.habitrpg.android.habitica.models.user.User -import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.disposables.CompositeDisposable import javax.inject.Inject @@ -41,7 +38,9 @@ abstract class BaseViewModel(initializeComponent: Boolean = true) : ViewModel() internal val disposable = CompositeDisposable() fun updateUser(path: String, value: Any) { - disposable.add(userRepository.updateUser(path, value) - .subscribe({ }, RxErrorHandler.handleEmptyError())) + disposable.add( + userRepository.updateUser(path, value) + .subscribe({ }, RxErrorHandler.handleEmptyError()) + ) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt index 81f5a3c27..d2e9feaa0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt @@ -8,7 +8,6 @@ import com.habitrpg.android.habitica.data.ChallengeRepository import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.extensions.Optional import com.habitrpg.android.habitica.extensions.asOptional -import com.habitrpg.android.habitica.extensions.filterMapEmpty import com.habitrpg.android.habitica.extensions.filterOptionalDoOnEmpty import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.NotificationsManager @@ -251,12 +250,15 @@ open class GroupViewModel(initializeComponent: Boolean) : BaseViewModel(initiali fun likeMessage(message: ChatMessage) { val index = _chatMessages.value?.indexOf(message) if (index == null || index < 0) return - disposable.add(socialRepository.likeMessage(message).subscribe( - { - val list = _chatMessages.value?.toMutableList() - list?.set(index, it) - _chatMessages.postValue(list) - }, RxErrorHandler.handleEmptyError())) + disposable.add( + socialRepository.likeMessage(message).subscribe( + { + val list = _chatMessages.value?.toMutableList() + list?.set(index, it) + _chatMessages.postValue(list) + }, RxErrorHandler.handleEmptyError() + ) + ) } fun deleteMessage(chatMessage: ChatMessage) { @@ -264,12 +266,14 @@ open class GroupViewModel(initializeComponent: Boolean) : BaseViewModel(initiali val list = _chatMessages.value?.toMutableList() list?.remove(chatMessage) _chatMessages.postValue(list) - disposable.add(socialRepository.deleteMessage(chatMessage).subscribe({ - }, { - list?.add(oldIndex, chatMessage) - _chatMessages.postValue(list) - RxErrorHandler.reportError(it) - })) + disposable.add( + socialRepository.deleteMessage(chatMessage).subscribe({ + }, { + list?.add(oldIndex, chatMessage) + _chatMessages.postValue(list) + RxErrorHandler.reportError(it) + }) + ) } fun postGroupChat(chatText: String, onComplete: () -> Unit, onError: () -> Unit) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainActivityViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainActivityViewModel.kt index 198e3ed12..0aaa130b0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainActivityViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainActivityViewModel.kt @@ -20,10 +20,10 @@ import com.habitrpg.android.habitica.proxy.AnalyticsManager import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers import io.realm.kotlin.isValid -import java.util.* +import java.util.Date import javax.inject.Inject -class MainActivityViewModel: BaseViewModel() { +class MainActivityViewModel : BaseViewModel() { @Inject internal lateinit var hostConfig: HostConfig @Inject @@ -53,11 +53,11 @@ class MainActivityViewModel: BaseViewModel() { get() = sharedPreferences.getString("launch_screen", "") var preferenceLanguage: String? get() = sharedPreferences.getString("language", "en") - set(value) { - sharedPreferences.edit { - putString("language", value) + set(value) { + sharedPreferences.edit { + putString("language", value) + } } - } override fun onCleared() { taskRepository.close() @@ -102,7 +102,6 @@ class MainActivityViewModel: BaseViewModel() { } } - fun logTutorialStatus(step: TutorialStep, complete: Boolean) { val additionalData = HashMap() additionalData["eventLabel"] = step.identifier + "-android" @@ -121,11 +120,12 @@ class MainActivityViewModel: BaseViewModel() { this.maintenanceService.maintenanceStatus .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe( { maintenanceResponse -> + .subscribe( + { maintenanceResponse -> if (maintenanceResponse == null) { return@subscribe } - onResult(maintenanceResponse) + onResult(maintenanceResponse) }, RxErrorHandler.handleEmptyError() ) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainUserViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainUserViewModel.kt index d921c4694..b8468f4b7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainUserViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/MainUserViewModel.kt @@ -2,17 +2,13 @@ package com.habitrpg.android.habitica.ui.viewmodels import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel import com.habitrpg.android.habitica.HabiticaBaseApplication -import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.helpers.RxErrorHandler -import com.habitrpg.android.habitica.models.invitations.GenericInvitation import com.habitrpg.android.habitica.models.invitations.PartyInvite import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.disposables.CompositeDisposable -import javax.inject.Inject class MainUserViewModel(val userRepository: UserRepository) { @@ -51,12 +47,16 @@ class MainUserViewModel(val userRepository: UserRepository) { internal val disposable = CompositeDisposable() internal fun loadUserFromLocal() { - disposable.add(userRepository.getUser().observeOn(AndroidSchedulers.mainThread()) - .subscribe({ _user.value = it }, RxErrorHandler.handleEmptyError())) + disposable.add( + userRepository.getUser().observeOn(AndroidSchedulers.mainThread()) + .subscribe({ _user.value = it }, RxErrorHandler.handleEmptyError()) + ) } fun updateUser(path: String, value: Any) { - disposable.add(userRepository.updateUser(path, value) - .subscribe({ }, RxErrorHandler.handleEmptyError())) + disposable.add( + userRepository.updateUser(path, value) + .subscribe({ }, RxErrorHandler.handleEmptyError()) + ) } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt index 1696cd616..7e3d88a99 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt @@ -9,7 +9,12 @@ import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.NotificationsManager import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.Notification -import com.habitrpg.android.habitica.models.notifications.* +import com.habitrpg.android.habitica.models.notifications.GroupTaskRequiresApprovalData +import com.habitrpg.android.habitica.models.notifications.GuildInvitationData +import com.habitrpg.android.habitica.models.notifications.NewChatMessageData +import com.habitrpg.android.habitica.models.notifications.NewStuffData +import com.habitrpg.android.habitica.models.notifications.PartyInvitationData +import com.habitrpg.android.habitica.models.notifications.QuestInvitationData import com.habitrpg.android.habitica.models.social.UserParty import com.habitrpg.android.habitica.models.user.User import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -17,7 +22,6 @@ import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.functions.BiFunction import io.reactivex.rxjava3.subjects.BehaviorSubject -import java.util.* import javax.inject.Inject open class NotificationsViewModel : BaseViewModel() { @@ -82,7 +86,7 @@ open class NotificationsViewModel : BaseViewModel() { serverNotifications, customNotifications.toFlowable(BackpressureStrategy.LATEST), BiFunction, List, List> { - serverNotificationsList, customNotificationsList -> + serverNotificationsList, customNotificationsList -> if (serverNotificationsList.firstOrNull { notification -> notification.type == Notification.Type.NEW_STUFF.type } != null) { return@BiFunction serverNotificationsList + customNotificationsList.filter { notification -> notification.type != Notification.Type.NEW_STUFF.type } } @@ -183,13 +187,13 @@ open class NotificationsViewModel : BaseViewModel() { } private fun isCustomNewStuffNotification(notification: Notification) = - notification.id == "custom-new-stuff-notification" + notification.id == "custom-new-stuff-notification" fun dismissNotification(notification: Notification) { if (isCustomNotification(notification)) { if (isCustomNewStuffNotification(notification)) { customNotifications.onNext( - customNotifications.value?.filterNot { it.id == notification.id } + customNotifications.value?.filterNot { it.id == notification.id } ) } return @@ -208,7 +212,7 @@ open class NotificationsViewModel : BaseViewModel() { .map { it.id } val customNewStuffNotification = notifications - .firstOrNull { isCustomNewStuffNotification(it) } + .firstOrNull { isCustomNewStuffNotification(it) } if (customNewStuffNotification != null) { dismissNotification(customNewStuffNotification) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/inventory/equipment/EquipmentOverviewViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/inventory/equipment/EquipmentOverviewViewModel.kt index 1d2f454e3..bece1a9a1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/inventory/equipment/EquipmentOverviewViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/inventory/equipment/EquipmentOverviewViewModel.kt @@ -8,7 +8,7 @@ import com.habitrpg.android.habitica.models.inventory.Equipment import com.habitrpg.android.habitica.ui.viewmodels.BaseViewModel import javax.inject.Inject -class EquipmentOverviewViewModel(savedStateHandle: SavedStateHandle): BaseViewModel() { +class EquipmentOverviewViewModel(savedStateHandle: SavedStateHandle) : BaseViewModel() { val usesAutoEquip: Boolean get() = user.value?.preferences?.autoEquip == true val usesCostume: Boolean @@ -22,8 +22,10 @@ class EquipmentOverviewViewModel(savedStateHandle: SavedStateHandle): BaseViewMo } fun getGear(key: String, onSuccess: (Equipment) -> Unit) { - disposable.add(inventoryRepository.getEquipment(key).subscribe( { - onSuccess(it) - }, RxErrorHandler.handleEmptyError())) + disposable.add( + inventoryRepository.getEquipment(key).subscribe({ + onSuccess(it) + }, RxErrorHandler.handleEmptyError()) + ) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ExtraLabelPreference.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ExtraLabelPreference.kt index 4a5a5cdc7..6e007a492 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ExtraLabelPreference.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ExtraLabelPreference.kt @@ -26,4 +26,4 @@ class ExtraLabelPreference( textView?.setTextColor(it) } } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIcons.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIcons.java index b43e71bea..2dc734973 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIcons.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIcons.java @@ -1,28 +1,27 @@ package com.habitrpg.android.habitica.ui.views; import android.content.Context; -import android.graphics.Paint; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffXfermode; -import android.graphics.Matrix; -import android.graphics.PointF; -import android.graphics.RectF; -import android.graphics.Shader; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapShader; import android.graphics.BlurMaskFilter; import android.graphics.Canvas; import android.graphics.Color; -import android.graphics.Path; import android.graphics.DashPathEffect; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.PointF; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.RectF; +import android.graphics.Shader; import android.text.Layout; import android.text.StaticLayout; import android.text.TextPaint; -import java.util.Stack; + import java.lang.ref.WeakReference; -import android.graphics.Typeface; -import android.content.res.AssetManager; +import java.util.Stack; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java index 8d4edab90..4b068125e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java @@ -5,6 +5,7 @@ import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.RectF; + import androidx.annotation.ColorInt; /** diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaSnackbar.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaSnackbar.kt index f5ec707f5..31c420fb5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaSnackbar.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaSnackbar.kt @@ -6,7 +6,9 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.animation.AccelerateInterpolator -import android.widget.* +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.TextView import androidx.annotation.ColorInt import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat @@ -204,4 +206,4 @@ interface SnackbarActivity { ) { HabiticaSnackbar.showSnackbar(snackbarContainer(), leftImage, title, content, specialView, rightIcon, rightTextColor, rightText, displayType, isCelebratory) } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/RoundedCornerLayout.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/RoundedCornerLayout.kt index 2834d6830..1ed0422dd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/RoundedCornerLayout.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/RoundedCornerLayout.kt @@ -1,7 +1,13 @@ package com.habitrpg.android.habitica.ui.views import android.content.Context -import android.graphics.* +import android.graphics.Bitmap +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.PorterDuff +import android.graphics.PorterDuffXfermode +import android.graphics.RectF import android.util.AttributeSet import android.util.TypedValue import android.widget.FrameLayout diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/Typewriter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/Typewriter.kt index e12e12b42..beb762365 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/Typewriter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/Typewriter.kt @@ -7,7 +7,11 @@ import android.text.style.ForegroundColorSpan import android.util.AttributeSet import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R -import kotlinx.coroutines.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.Job +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch // http://stackoverflow.com/a/6700718/1315039 class Typewriter : androidx.appcompat.widget.AppCompatTextView { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ValidatingEditText.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ValidatingEditText.kt index b2dfc7141..9d1bd462b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ValidatingEditText.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/ValidatingEditText.kt @@ -11,7 +11,8 @@ import com.habitrpg.android.habitica.databinding.ValidatingEditTextBinding import com.habitrpg.android.habitica.extensions.layoutInflater class ValidatingEditText @JvmOverloads constructor( - context: Context, attrs: AttributeSet? = null + context: Context, + attrs: AttributeSet? = null ) : LinearLayout(context, attrs) { private var binding: ValidatingEditTextBinding = ValidatingEditTextBinding.inflate(context.layoutInflater, this) @@ -28,7 +29,7 @@ class ValidatingEditText @JvmOverloads constructor( var validator: ((String?) -> Boolean)? = null val isValid: Boolean - get() = validator?.invoke(text) != false + get() = validator?.invoke(text) != false init { orientation = VERTICAL @@ -42,7 +43,6 @@ class ValidatingEditText @JvmOverloads constructor( binding.editText.inputType = attributes.getInt(R.styleable.ValidatingEditText_android_inputType, InputType.TYPE_CLASS_TEXT) } - binding.editText.setOnFocusChangeListener { _, isEditing -> if (isEditing) return@setOnFocusChangeListener showErrorIfNecessary() @@ -61,4 +61,4 @@ class ValidatingEditText @JvmOverloads constructor( binding.errorText.visibility = View.VISIBLE } } -} \ No newline at end of file +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt index 84cb87729..597f2492d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt @@ -3,9 +3,18 @@ package com.habitrpg.android.habitica.ui.views.dialogs import android.app.Activity import android.content.Context import android.text.method.ScrollingMovementMethod -import android.view.* +import android.view.ContextThemeWrapper +import android.view.Gravity +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager import android.view.animation.AccelerateInterpolator -import android.widget.* +import android.widget.Button +import android.widget.FrameLayout +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat import androidx.core.view.children diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/PetSuggestHatchDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/PetSuggestHatchDialog.kt index 408825289..b619de734 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/PetSuggestHatchDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/PetSuggestHatchDialog.kt @@ -23,7 +23,7 @@ import com.habitrpg.android.habitica.ui.views.CurrencyView import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Observable -import java.util.* +import java.util.Locale import javax.inject.Inject class PetSuggestHatchDialog(context: Context) : HabiticaAlertDialog(context) { @@ -174,7 +174,8 @@ class PetSuggestHatchDialog(context: Context) : HabiticaAlertDialog(context) { HatchPetUseCase.RequestValues( potion, egg, it - )).subscribeWithErrorHandler {} + ) + ).subscribeWithErrorHandler {} } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGemsDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGemsDialog.kt index fd50b94a7..24f48fa2f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGemsDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGemsDialog.kt @@ -78,7 +78,6 @@ class InsufficientGemsDialog(context: Context, var gemPrice: Int) : Insufficient } } - addButton(R.string.see_other_options, false) { _, _ -> MainNavigationController.navigate(R.id.gemPurchaseActivity, bundleOf(Pair("openSubscription", false))) } } else { contentView.findViewById(R.id.purchase_wrapper).visibility = View.GONE diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/LoginBackgroundView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/LoginBackgroundView.kt index 38a6d36db..6090255ab 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/LoginBackgroundView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/LoginBackgroundView.kt @@ -11,7 +11,7 @@ import android.widget.FrameLayout import android.widget.ImageView import android.widget.RelativeLayout import com.habitrpg.android.habitica.R -import java.util.* +import java.util.Random class LoginBackgroundView(context: Context, attrs: AttributeSet?) : RelativeLayout(context, attrs) { private val random: Random = Random() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt index db0c2da51..3c5f39e1e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt @@ -27,7 +27,10 @@ import com.habitrpg.android.habitica.models.shops.Shop import com.habitrpg.android.habitica.models.shops.ShopItem import com.habitrpg.android.habitica.models.user.OwnedItem import com.habitrpg.android.habitica.models.user.User -import com.habitrpg.android.habitica.ui.views.* +import com.habitrpg.android.habitica.ui.views.CurrencyView +import com.habitrpg.android.habitica.ui.views.CurrencyViews +import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper +import com.habitrpg.android.habitica.ui.views.SnackbarActivity import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientGemsDialog import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientGoldDialog @@ -37,7 +40,11 @@ import com.habitrpg.android.habitica.ui.views.tasks.form.StepperValueFormView import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Maybe import io.reactivex.rxjava3.disposables.CompositeDisposable -import kotlinx.coroutines.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.Job +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import java.util.* import javax.inject.Inject import kotlin.math.max diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestMenuView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestMenuView.kt index 3e80cb578..803aa3918 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestMenuView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestMenuView.kt @@ -3,19 +3,16 @@ package com.habitrpg.android.habitica.ui.views.social import android.content.Context import android.util.AttributeSet import android.view.Gravity -import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import androidx.core.content.ContextCompat -import androidx.core.content.edit import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.QuestMenuViewBinding import com.habitrpg.android.habitica.extensions.layoutInflater import com.habitrpg.android.habitica.models.inventory.Quest import com.habitrpg.android.habitica.models.inventory.QuestContent import com.habitrpg.android.habitica.models.user.User -import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import java.util.Locale @@ -77,9 +74,9 @@ class QuestMenuView : LinearLayout { binding.topView.setBackgroundColor(questContent?.colors?.mediumColor ?: 0) binding.bossNameView.gravity = Gravity.START binding.bossNameView.layoutParams = LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, 1F) - //binding.bossArtView.visibility = View.GONE + // binding.bossArtView.visibility = View.GONE binding.typeTextView.setTextColor(questContent?.colors?.extraLightColor ?: 0) - //binding.closeButton.visibility = View.GONE + // binding.closeButton.visibility = View.GONE } fun showBossArt() { @@ -87,8 +84,8 @@ class QuestMenuView : LinearLayout { binding.topView.setBackgroundColor(ContextCompat.getColor(context, R.color.transparent)) binding.bossNameView.gravity = Gravity.END binding.bossNameView.layoutParams = LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) - //binding.bossArtView.visibility = View.VISIBLE + // binding.bossArtView.visibility = View.VISIBLE binding.typeTextView.setTextColor(ContextCompat.getColor(context, R.color.white)) - //binding.closeButton.visibility = View.VISIBLE + // binding.closeButton.visibility = View.VISIBLE } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt index 4d701293b..9564680a1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt @@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.extensions.layoutInflater import com.habitrpg.android.habitica.models.user.SubscriptionPlan import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import java.text.DateFormat -import java.util.* +import java.util.Date class SubscriptionDetailsView : LinearLayout { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt index 9d268a3d9..876b0374a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/TaskFilterDialog.kt @@ -8,7 +8,13 @@ import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.view.WindowManager -import android.widget.* +import android.widget.Button +import android.widget.EditText +import android.widget.ImageButton +import android.widget.LinearLayout +import android.widget.RadioButton +import android.widget.RadioGroup +import android.widget.TextView import androidx.annotation.IdRes import androidx.appcompat.widget.AppCompatCheckBox import androidx.core.content.ContextCompat @@ -24,7 +30,7 @@ import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import io.reactivex.rxjava3.core.Observable -import java.util.* +import java.util.UUID import javax.inject.Inject class TaskFilterDialog(context: Context, component: UserComponent?) : HabiticaAlertDialog(context), RadioGroup.OnCheckedChangeListener { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistItemFormView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistItemFormView.kt index 3a028f0d9..d018cfda2 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistItemFormView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ChecklistItemFormView.kt @@ -12,7 +12,10 @@ import android.widget.LinearLayout import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.TaskFormChecklistItemBinding -import com.habitrpg.android.habitica.extensions.* +import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher +import com.habitrpg.android.habitica.extensions.dpToPx +import com.habitrpg.android.habitica.extensions.getThemeColor +import com.habitrpg.android.habitica.extensions.layoutInflater import com.habitrpg.android.habitica.models.tasks.ChecklistItem class ChecklistItemFormView @JvmOverloads constructor( diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt index 494b0bb90..4fdf19285 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderContainer.kt @@ -9,7 +9,6 @@ import androidx.core.view.children import androidx.core.view.updateMargins import com.habitrpg.android.habitica.extensions.dpToPx import com.habitrpg.android.habitica.models.tasks.RemindersItem -import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType class ReminderContainer @JvmOverloads constructor( @@ -58,8 +57,8 @@ class ReminderContainer @JvmOverloads constructor( var firstDayOfWeek: Int? = null set(value) { children - .filterIsInstance() - .forEach { it.firstDayOfWeek = value } + .filterIsInstance() + .forEach { it.firstDayOfWeek = value } field = value } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt index eebc69476..df4e73afa 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt @@ -20,10 +20,11 @@ import com.habitrpg.android.habitica.extensions.dpToPx import com.habitrpg.android.habitica.extensions.getThemeColor import com.habitrpg.android.habitica.extensions.layoutInflater import com.habitrpg.android.habitica.models.tasks.RemindersItem -import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType import java.text.DateFormat -import java.util.* +import java.util.Calendar +import java.util.Date +import java.util.Locale class ReminderItemFormView @JvmOverloads constructor( context: Context, diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt index a2787a148..191bc9e90 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskSchedulingControls.kt @@ -9,7 +9,11 @@ import android.text.TextUtils import android.util.AttributeSet import android.view.View import android.view.accessibility.AccessibilityEvent -import android.widget.* +import android.widget.AdapterView +import android.widget.DatePicker +import android.widget.LinearLayout +import android.widget.Space +import android.widget.TextView import androidx.core.content.ContextCompat import androidx.core.view.children import com.habitrpg.android.habitica.R @@ -18,12 +22,14 @@ import com.habitrpg.android.habitica.extensions.dpToPx import com.habitrpg.android.habitica.extensions.layoutInflater import com.habitrpg.android.habitica.models.tasks.Days import com.habitrpg.android.habitica.models.tasks.Frequency -import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.ui.adapter.SimpleSpinnerAdapter import java.text.DateFormat import java.text.DateFormatSymbols -import java.util.* +import java.util.Calendar +import java.util.Collections +import java.util.Date +import java.util.Locale class TaskSchedulingControls @JvmOverloads constructor( context: Context, diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt index 2f075e230..a32e40566 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/yesterdailies/YesterdailyDialog.kt @@ -23,7 +23,8 @@ import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Observable import java.lang.ref.WeakReference -import java.util.* +import java.util.Calendar +import java.util.Date import java.util.concurrent.TimeUnit import kotlin.math.abs diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ContentDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ContentDeserializer.kt index b413e31dd..073a0a0dd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ContentDeserializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/ContentDeserializer.kt @@ -11,7 +11,15 @@ import com.habitrpg.android.habitica.models.ContentGear import com.habitrpg.android.habitica.models.ContentResult import com.habitrpg.android.habitica.models.FAQArticle import com.habitrpg.android.habitica.models.Skill -import com.habitrpg.android.habitica.models.inventory.* +import com.habitrpg.android.habitica.models.inventory.Customization +import com.habitrpg.android.habitica.models.inventory.Egg +import com.habitrpg.android.habitica.models.inventory.Equipment +import com.habitrpg.android.habitica.models.inventory.Food +import com.habitrpg.android.habitica.models.inventory.HatchingPotion +import com.habitrpg.android.habitica.models.inventory.Mount +import com.habitrpg.android.habitica.models.inventory.Pet +import com.habitrpg.android.habitica.models.inventory.QuestContent +import com.habitrpg.android.habitica.models.inventory.SpecialItem import io.realm.RealmList import java.lang.reflect.Type diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/OwnedItemListDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/OwnedItemListDeserializer.kt index 0e8de546d..b3eb3a604 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/OwnedItemListDeserializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/OwnedItemListDeserializer.kt @@ -13,7 +13,7 @@ class OwnedItemListDeserializer : JsonDeserializer> { val entrySet = json?.asJsonObject?.entrySet() if (entrySet != null) { for (entry in entrySet) { - if (entry.value.isJsonPrimitive){ + if (entry.value.isJsonPrimitive) { val item = OwnedItem() item.key = entry.key item.numberOwned = entry.value.asInt diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/QuestDropItemsListSerialization.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/QuestDropItemsListSerialization.kt index 97bdbb3cf..199092ed6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/QuestDropItemsListSerialization.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/QuestDropItemsListSerialization.kt @@ -7,7 +7,6 @@ import com.google.gson.JsonParseException import com.habitrpg.android.habitica.models.inventory.QuestDropItem import io.realm.RealmList import java.lang.reflect.Type -import java.util.ArrayList class QuestDropItemsListSerialization : JsonDeserializer> { @Throws(JsonParseException::class) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/SkillDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/SkillDeserializer.kt index e2be71268..3a669730d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/SkillDeserializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/SkillDeserializer.kt @@ -6,7 +6,6 @@ import com.google.gson.JsonElement import com.google.gson.JsonParseException import com.habitrpg.android.habitica.models.Skill import java.lang.reflect.Type -import java.util.ArrayList /** * Created by viirus on 25/11/15. diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/SocialAuthenticationDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/SocialAuthenticationDeserializer.kt index f98b1b0c8..5a935a0b3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/SocialAuthenticationDeserializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/SocialAuthenticationDeserializer.kt @@ -5,7 +5,6 @@ import com.google.gson.JsonDeserializer import com.google.gson.JsonElement import com.google.gson.JsonParseException import com.habitrpg.android.habitica.extensions.getAsString -import com.habitrpg.android.habitica.models.TutorialStep import com.habitrpg.android.habitica.models.user.auth.SocialAuthentication import java.lang.reflect.Type diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskListDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskListDeserializer.kt index f89ba3eec..47bb3f9c4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskListDeserializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskListDeserializer.kt @@ -12,8 +12,6 @@ import com.habitrpg.android.habitica.models.tasks.TaskList import io.realm.Realm import io.realm.RealmList import java.lang.reflect.Type -import java.util.ArrayList -import java.util.HashMap class TaskListDeserializer : JsonDeserializer { override fun deserialize(json: JsonElement, typeOfT: Type, ctx: JsonDeserializationContext): TaskList { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskSerializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskSerializer.kt index 71bbc50e2..d4a89bab9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskSerializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskSerializer.kt @@ -18,7 +18,6 @@ import com.habitrpg.android.habitica.models.tasks.TaskGroupPlan import com.habitrpg.android.habitica.models.tasks.TaskType import io.realm.RealmList import java.lang.reflect.Type -import java.util.ArrayList import java.util.Date class TaskSerializer : JsonSerializer, JsonDeserializer { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskTagDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskTagDeserializer.kt index b08220c3a..e3ddefceb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskTagDeserializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/TaskTagDeserializer.kt @@ -8,7 +8,6 @@ import com.habitrpg.android.habitica.models.Tag import io.realm.Realm import io.realm.RealmList import java.lang.reflect.Type -import java.util.ArrayList class TaskTagDeserializer : JsonDeserializer> { @Throws(JsonParseException::class) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/UserDeserializer.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/UserDeserializer.kt index a7eee286a..e7d6ea2bd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/UserDeserializer.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/UserDeserializer.kt @@ -32,7 +32,6 @@ import com.habitrpg.android.habitica.models.user.UserAchievement import io.realm.Realm import io.realm.RealmList import java.lang.reflect.Type -import java.util.ArrayList import java.util.Date class UserDeserializer : JsonDeserializer { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AvatarStatsWidgetProvider.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AvatarStatsWidgetProvider.kt index f530d897f..fce62a693 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AvatarStatsWidgetProvider.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/AvatarStatsWidgetProvider.kt @@ -79,8 +79,6 @@ class AvatarStatsWidgetProvider : BaseWidgetProvider() { remoteViews.setViewVisibility(R.id.detail_info_view, View.GONE) } - - return remoteViews } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/BaseWidgetProvider.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/BaseWidgetProvider.kt index 9f45144a3..b354aa997 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/BaseWidgetProvider.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/BaseWidgetProvider.kt @@ -10,7 +10,6 @@ import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.helpers.AmplitudeManager import com.habitrpg.android.habitica.interactors.NotifyUserUseCase import com.habitrpg.android.habitica.models.responses.TaskScoringResult -import java.util.* import javax.inject.Inject abstract class BaseWidgetProvider : AppWidgetProvider() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/DailiesListFactory.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/DailiesListFactory.kt index 7c5864907..78ed87ce3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/DailiesListFactory.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/DailiesListFactory.kt @@ -3,7 +3,6 @@ package com.habitrpg.android.habitica.widget import android.content.Context import android.content.Intent import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType class DailiesListFactory(context: Context, intent: Intent) : TaskListFactory(context, intent, TaskType.DAILY, R.layout.widget_dailies_list_row, R.id.dailies_text) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.kt index 9e2a0c23a..83136caa6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.kt @@ -20,7 +20,6 @@ import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.responses.TaskDirection import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.ui.helpers.MarkdownParser -import java.util.* import javax.inject.Inject import kotlin.math.min diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TaskListFactory.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TaskListFactory.kt index c66448d0b..365d3a25f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TaskListFactory.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TaskListFactory.kt @@ -17,7 +17,6 @@ import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.ui.helpers.MarkdownParser import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Observable -import java.util.* import javax.inject.Inject abstract class TaskListFactory internal constructor(val context: Context, intent: Intent, private val taskType: TaskType, private val listItemResId: Int, private val listItemTextResId: Int) : RemoteViewsService.RemoteViewsFactory { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListFactory.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListFactory.kt index b499ffc8e..d2f3a68cd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListFactory.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListFactory.kt @@ -3,7 +3,6 @@ package com.habitrpg.android.habitica.widget import android.content.Context import android.content.Intent import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskType class TodoListFactory(context: Context, intent: Intent) : TaskListFactory(context, intent, TaskType.TODO, R.layout.widget_todo_list_row, R.id.todo_text) diff --git a/Habitica/src/test/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImplTest.kt b/Habitica/src/test/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImplTest.kt index 5af6d2509..6854a3d2f 100644 --- a/Habitica/src/test/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImplTest.kt +++ b/Habitica/src/test/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImplTest.kt @@ -8,6 +8,7 @@ import com.habitrpg.android.habitica.models.responses.TaskDirectionData import com.habitrpg.android.habitica.models.responses.TaskScoringResult import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.models.tasks.TaskList +import com.habitrpg.android.habitica.models.tasks.TaskType import com.habitrpg.android.habitica.models.tasks.TasksOrder import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.models.user.User diff --git a/Habitica/src/test/java/com/habitrpg/android/habitica/helpers/NumberAbbreviatorTest.kt b/Habitica/src/test/java/com/habitrpg/android/habitica/helpers/NumberAbbreviatorTest.kt index 193f66a49..463371496 100644 --- a/Habitica/src/test/java/com/habitrpg/android/habitica/helpers/NumberAbbreviatorTest.kt +++ b/Habitica/src/test/java/com/habitrpg/android/habitica/helpers/NumberAbbreviatorTest.kt @@ -8,10 +8,12 @@ import io.kotest.matchers.shouldBe import io.mockk.clearMocks import io.mockk.every import io.mockk.mockk +import java.util.* class NumberAbbreviatorTest : StringSpec({ val mockContext = mockk() beforeEach { + Locale.setDefault(Locale.US) every { mockContext.getString(R.string.thousand_abbrev) } returns "k" every { mockContext.getString(R.string.million_abbrev) } returns "m" every { mockContext.getString(R.string.billion_abbrev) } returns "b" diff --git a/build.gradle b/build.gradle index f9074ab67..01bda4695 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ buildscript { classpath "io.realm:realm-gradle-plugin:10.8.1" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.19.0" - classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0-alpha01" + classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0-alpha03" classpath 'com.google.firebase:perf-plugin:1.4.1' } } @@ -25,7 +25,7 @@ apply plugin: 'io.gitlab.arturbosch.detekt' allprojects { repositories { google() - jcenter() + mavenCentral() } }