From 88f2ee7d8e9c91a25c12d7eee60cf2e2f50c3a0e Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 21 Dec 2023 14:17:06 +0100 Subject: [PATCH] linting fixes --- Habitica/AndroidManifest.xml | 1 + Habitica/build.gradle | 2 +- Habitica/res/layout-w600dp/activity_main.xml | 2 +- .../res/layout/activity_create_challenge.xml | 8 +- Habitica/res/layout/activity_full_profile.xml | 5 +- Habitica/res/layout/activity_main.xml | 2 +- Habitica/res/layout/challenge_item.xml | 4 +- Habitica/res/layout/chat_bar_view.xml | 4 +- Habitica/res/layout/filter_menu_item.xml | 3 +- Habitica/res/layout/fragment_gem_purchase.xml | 3 +- Habitica/res/layout/fragment_subscription.xml | 19 +- Habitica/res/layout/item_item.xml | 3 +- Habitica/res/layout/overlay_tutorial.xml | 1 + Habitica/res/layout/party_member.xml | 4 +- Habitica/res/layout/shop_header.xml | 4 +- Habitica/res/layout/shop_section_header.xml | 1 + Habitica/res/layout/subscription_details.xml | 3 +- Habitica/res/navigation/navigation.xml | 1 + .../habitica/HabiticaBaseApplication.kt | 2 +- .../data/implementation/UserRepositoryImpl.kt | 9 +- .../RealmContentLocalRepository.kt | 2 - .../RealmInventoryLocalRepository.kt | 4 +- .../extensions/AlertDialogExtensions.kt | 1 - .../android/habitica/helpers/AdHandler.kt | 22 +- .../android/habitica/helpers/ReviewManager.kt | 8 +- .../android/habitica/helpers/SoundFile.kt | 2 +- .../habitica/helpers/UserStatComputer.kt | 4 +- .../GuildInviteLocalNotification.kt | 2 +- .../PartyInviteLocalNotification.kt | 2 +- .../WonChallengeLocalNotification.kt | 3 - .../habitica/interactors/FeedPetUseCase.kt | 6 +- .../habitica/interactors/HatchPetUseCase.kt | 2 +- .../interactors/ScoreTaskLocallyInteractor.kt | 2 +- .../habitica/interactors/ShareMountUseCase.kt | 4 +- .../habitica/interactors/SharePetUseCase.kt | 14 +- .../models/inventory/CustomizationSet.kt | 5 +- .../habitica/models/inventory/QuestBoss.kt | 2 +- .../habitica/models/inventory/QuestContent.kt | 5 +- .../GiftOneGetOneHabiticaPromotion.kt | 3 +- .../models/responses/UnlockResponse.java | 3 - .../android/habitica/models/tasks/Task.kt | 52 +-- .../habitica/modules/DeveloperModule.kt | 4 +- .../receivers/DeviceCommunicationService.kt | 3 - .../android/habitica/ui/RoundedFrameLayout.kt | 2 +- .../habitica/ui/activities/ArmoireActivity.kt | 2 +- .../habitica/ui/activities/BaseActivity.kt | 2 - .../ui/activities/ClassSelectionActivity.kt | 2 +- .../habitica/ui/activities/DeathActivity.kt | 8 +- .../activities/FixCharacterValuesActivity.kt | 2 +- .../ui/activities/FullProfileActivity.kt | 7 +- .../ui/activities/GroupFormActivity.kt | 2 + .../habitica/ui/activities/LoginActivity.kt | 2 - .../habitica/ui/activities/MainActivity.kt | 4 +- .../ui/activities/NotificationsActivity.kt | 8 +- .../habitica/ui/activities/PrefsActivity.kt | 3 +- .../ui/adapter/AchievementsAdapter.kt | 2 +- .../CustomizationRecyclerViewAdapter.kt | 5 +- .../ui/adapter/SimpleSpinnerAdapter.kt | 2 +- .../ui/adapter/SkillsRecyclerViewAdapter.kt | 4 +- .../adapter/inventory/ItemRecyclerAdapter.kt | 4 +- .../setup/CustomizationSetupAdapter.kt | 6 +- .../ui/adapter/setup/TaskSetupAdapter.kt | 2 +- .../habitica/ui/fragments/BaseMainFragment.kt | 2 +- .../ui/fragments/NavigationDrawerFragment.kt | 1 - .../ui/fragments/ReportBottomSheetFragment.kt | 2 +- .../habitica/ui/fragments/StatsFragment.kt | 6 +- .../AvatarCustomizationFragment.kt | 2 +- .../customization/AvatarOverviewFragment.kt | 6 +- .../equipment/EquipmentDetailFragment.kt | 4 +- .../inventory/items/ItemDialogFragment.kt | 2 +- .../inventory/items/ItemRecyclerFragment.kt | 2 +- .../stable/PetDetailRecyclerFragment.kt | 4 +- .../preferences/AccountPreferenceFragment.kt | 14 +- .../preferences/PreferencesFragment.kt | 14 +- .../purchases/GiftPurchaseGemsFragment.kt | 6 - .../SubscriptionBottomSheetFragment.kt | 4 +- .../ui/fragments/social/ChatFragment.kt | 4 +- .../social/InboxMessageListFragment.kt | 8 +- .../fragments/social/QuestDetailFragment.kt | 10 +- .../challenges/ChallengeDetailFragment.kt | 2 +- .../challenges/ChallengeFilterDialogHolder.kt | 4 +- .../challenges/ChallengesOverviewFragment.kt | 2 +- .../tasks/TaskRecyclerViewFragment.kt | 10 +- .../ui/fragments/tasks/TasksFragment.kt | 2 +- .../habitica/ui/helpers/ToolbarColorHelper.kt | 2 +- .../ui/viewHolders/ChatRecyclerViewHolder.kt | 2 +- .../ui/viewHolders/MountViewHolder.kt | 3 - .../viewHolders/tasks/BaseTaskViewHolder.kt | 2 +- .../habitica/ui/viewmodels/InboxViewModel.kt | 5 +- .../ui/viewmodels/MainUserViewModel.kt | 4 - .../habitica/ui/viewmodels/StableViewModel.kt | 2 +- .../habitica/ui/views/AppHeaderView.kt | 1 - .../habitica/ui/views/BottomSheetUtils.kt | 2 - .../habitica/ui/views/DragLinearLayout.kt | 4 +- .../ui/views/HabiticaListPreference.kt | 2 +- .../habitica/ui/views/HabiticaSnackbar.kt | 3 - .../habitica/ui/views/NPCBannerView.kt | 2 +- .../android/habitica/ui/views/PixelArtView.kt | 1 - .../habitica/ui/views/SegmentedControl.kt | 4 +- .../android/habitica/ui/views/Typewriter.kt | 2 +- .../habitica/ui/views/ValidatingEditText.kt | 6 +- .../views/dialogs/HabiticaProgressDialog.kt | 3 +- .../InsufficientGemsDialog.kt | 8 +- .../ui/views/login/LockableScrollView.kt | 2 +- .../ui/views/login/LoginBackgroundView.kt | 6 +- .../habitica/ui/views/login/StarView.kt | 2 +- .../views/navigation/BottomNavigationItem.kt | 2 +- .../HabiticaBottomNavigationView.kt | 2 +- .../ui/views/promo/BirthdayMenuView.kt | 6 +- .../ui/views/setup/AvatarCategoryView.kt | 2 +- .../habitica/ui/views/shops/PurchaseDialog.kt | 3 +- .../ui/views/social/InvitationsView.kt | 2 +- .../ui/views/social/OldQuestProgressView.kt | 10 +- .../ui/views/social/QuestProgressView.kt | 298 ------------------ .../ui/views/stable/MountBottomSheet.kt | 19 +- .../habitica/ui/views/stable/MountView.kt | 1 - .../ui/views/stable/PetBottomSheet.kt | 13 +- .../ui/views/stats/BulkAllocateStatsDialog.kt | 2 +- .../ui/views/stats/StatsSliderView.kt | 2 +- .../habitica/ui/views/stats/StatsView.kt | 2 +- .../subscriptions/SubscriberBenefitView.kt | 3 - .../subscriptions/SubscriptionOptionView.kt | 2 +- .../habitica/ui/views/tasks/AssignSheet.kt | 2 +- .../ui/views/tasks/TaskFilterDialog.kt | 8 +- .../tasks/form/HabitScoringButtonsView.kt | 1 - .../views/tasks/form/TaskDifficultyButtons.kt | 1 - .../ui/views/tasks/form/TaskFormSelector.kt | 1 - .../tasks/form/TaskSchedulingControls.kt | 10 +- .../habitica/utils/WorldStateSerialization.kt | 2 +- .../widget/AvatarStatsWidgetProvider.kt | 5 +- .../habitica/utils/DateDeserializerTest.kt | 2 +- .../habitrpg/common/habitica/api/Server.kt | 2 +- .../habitica/extensions/BaseExtensions.kt | 2 +- .../extensions/BaseViewModelExtensions.kt | 2 +- .../habitica/extensions/DataBindingUtils.kt | 6 +- .../extensions/DrawableExtendsions.kt | 6 +- .../common/habitica/extensions/Optional.kt | 12 - .../common/habitica/extensions/ViewExt.kt | 5 +- .../common/habitica/helpers/Animations.kt | 5 +- .../habitica/helpers/AppConfigManager.kt | 2 +- .../helpers/RecyclerViewEmptySupport.kt | 1 - .../common/habitica/views/AvatarView.kt | 5 +- .../habitica/views/ComposableAvatarView.kt | 1 - .../views/HabiticaCircularProgressView.kt | 4 +- .../src/main/res/values-b+es+419/strings.xml | 14 +- common/src/main/res/values-es/strings.xml | 7 +- common/src/main/res/values-fr/strings.xml | 7 +- common/src/main/res/values-pt-rBR/strings.xml | 17 +- .../models/responses/HabiticaError.kt | 1 - .../shared/habitica/models/tasks/Attribute.kt | 2 +- .../shared/habitica/models/tasks/Frequency.kt | 2 +- .../shared/habitica/models/tasks/TaskType.kt | 2 +- wearos/build.gradle | 12 +- .../wearos/habitica/data/ApiClient.kt | 4 - .../wearos/habitica/models/NetworkResult.kt | 9 +- .../habitica/models/tasks/ChecklistItem.kt | 2 +- .../habitica/models/tasks/RemindersItem.kt | 2 +- .../wearos/habitica/models/tasks/Task.kt | 6 +- .../habitica/ui/activities/LoginActivity.kt | 2 - .../ui/activities/SettingsActivity.kt | 2 +- .../habitica/ui/activities/SplashActivity.kt | 3 +- .../ui/activities/TaskResultActivity.kt | 2 +- .../habitica/ui/adapters/SettingsAdapter.kt | 4 +- .../ui/viewHolders/DisconnectedViewHolder.kt | 2 +- .../habitica/ui/viewmodels/LoginViewModel.kt | 1 - .../ui/views/ConnectedActionChipView.kt | 2 - .../habitica/ui/views/HabiticaRecyclerView.kt | 6 - .../habitica/ui/views/TaskRewardChip.kt | 2 +- .../habitica/ui/views/TextActionChipView.kt | 2 +- .../habitica/ui/views/TextViewWrapper.kt | 2 +- .../wearos/habitica/ui/views/TimeText.kt | 3 - .../wearos/habitica/util/DateJSONAdapter.kt | 7 +- .../habitica/models/NetworkResultTest.kt | 8 +- 173 files changed, 304 insertions(+), 769 deletions(-) delete mode 100644 Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt delete mode 100644 common/src/main/java/com/habitrpg/common/habitica/extensions/Optional.kt diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml index a7962ee36..992e4d321 100644 --- a/Habitica/AndroidManifest.xml +++ b/Habitica/AndroidManifest.xml @@ -1,4 +1,5 @@ + - \ No newline at end of file + diff --git a/Habitica/res/layout/activity_create_challenge.xml b/Habitica/res/layout/activity_create_challenge.xml index a6e1b4812..e5b096256 100644 --- a/Habitica/res/layout/activity_create_challenge.xml +++ b/Habitica/res/layout/activity_create_challenge.xml @@ -120,7 +120,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" - android:tint="@color/text_brand_neon" + app:tint="@color/text_brand_neon" android:src="@drawable/challenge_gem_add_button"/> @@ -147,7 +147,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" - android:tint="@color/text_brand_neon" + app:tint="@color/text_brand_neon" android:src="@drawable/challenge_gem_remove_button"/> @@ -226,4 +226,4 @@ - \ No newline at end of file + diff --git a/Habitica/res/layout/activity_full_profile.xml b/Habitica/res/layout/activity_full_profile.xml index fbc2ce732..572e49650 100644 --- a/Habitica/res/layout/activity_full_profile.xml +++ b/Habitica/res/layout/activity_full_profile.xml @@ -268,6 +268,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" + android:focusable="true" android:foreground="?android:attr/selectableItemBackground"> - - @@ -430,4 +429,4 @@ - \ No newline at end of file + diff --git a/Habitica/res/layout/activity_main.xml b/Habitica/res/layout/activity_main.xml index d722b3ec8..82647bb17 100644 --- a/Habitica/res/layout/activity_main.xml +++ b/Habitica/res/layout/activity_main.xml @@ -23,4 +23,4 @@ android:layout_gravity="start" tools:layout="@layout/drawer_main"/> - \ No newline at end of file + diff --git a/Habitica/res/layout/challenge_item.xml b/Habitica/res/layout/challenge_item.xml index 0452194ff..62fb9e8b8 100644 --- a/Habitica/res/layout/challenge_item.xml +++ b/Habitica/res/layout/challenge_item.xml @@ -7,9 +7,11 @@ android:layout_height="wrap_content" android:layout_margin="5dp" android:clickable="true" + android:focusable="true" android:foreground="?selectableItemBackground" android:orientation="horizontal" android:baselineAligned="false" + android:paddingStart="0dp" android:paddingEnd="16dp"> - \ No newline at end of file + diff --git a/Habitica/res/layout/chat_bar_view.xml b/Habitica/res/layout/chat_bar_view.xml index b42d9b977..311c784ff 100644 --- a/Habitica/res/layout/chat_bar_view.xml +++ b/Habitica/res/layout/chat_bar_view.xml @@ -61,7 +61,7 @@ android:layout_height="30dp" android:layout_gravity="center" android:background="@color/transparent" - android:tint="@color/disabled_background" + app:tint="@color/disabled_background" android:src="@drawable/ic_send_grey_600_24dp" android:contentDescription="@string/send"/> @@ -92,4 +92,4 @@ style="@style/HabiticaButton.Primary" android:text="@string/i_agree_to_follow_the_guidelines"/> - \ No newline at end of file + diff --git a/Habitica/res/layout/filter_menu_item.xml b/Habitica/res/layout/filter_menu_item.xml index f98d8e745..cf94a212a 100644 --- a/Habitica/res/layout/filter_menu_item.xml +++ b/Habitica/res/layout/filter_menu_item.xml @@ -5,6 +5,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_gravity="end" tools:background="?colorPrimary" + android:focusable="true" android:clickable="true"> - \ No newline at end of file + diff --git a/Habitica/res/layout/fragment_gem_purchase.xml b/Habitica/res/layout/fragment_gem_purchase.xml index 32425900f..048960d32 100644 --- a/Habitica/res/layout/fragment_gem_purchase.xml +++ b/Habitica/res/layout/fragment_gem_purchase.xml @@ -25,6 +25,7 @@ android:layout_marginBottom="@dimen/spacing_large" android:clipChildren="true" android:clipToPadding="true" + android:focusable="true" android:clickable="true" android:visibility="gone" tools:visibility="visible"> @@ -253,4 +254,4 @@ - \ No newline at end of file + diff --git a/Habitica/res/layout/fragment_subscription.xml b/Habitica/res/layout/fragment_subscription.xml index 2fab1ce8f..82ed1f523 100644 --- a/Habitica/res/layout/fragment_subscription.xml +++ b/Habitica/res/layout/fragment_subscription.xml @@ -34,6 +34,7 @@ android:layout_marginBottom="8dp" android:background="@drawable/g1g1_box" android:clickable="true" + android:focusable="true" android:clipChildren="true" android:clipToOutline="true" android:clipToPadding="true" @@ -47,7 +48,8 @@ android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="false" - android:scaleType="center" /> + android:scaleType="center" + android:importantForAccessibility="no" /> + android:scaleType="center" + android:importantForAccessibility="no" /> + android:src="@drawable/subscribe_header" + android:importantForAccessibility="no" /> + android:src="@drawable/separator_fancy" + android:importantForAccessibility="no" /> + android:src="@drawable/separator_fancy" + android:importantForAccessibility="no" /> + android:src="@drawable/gift_sub_gift" + android:importantForAccessibility="no" /> - \ No newline at end of file + diff --git a/Habitica/res/layout/overlay_tutorial.xml b/Habitica/res/layout/overlay_tutorial.xml index 3105a033c..b793c7142 100644 --- a/Habitica/res/layout/overlay_tutorial.xml +++ b/Habitica/res/layout/overlay_tutorial.xml @@ -3,6 +3,7 @@ android:layout_height="match_parent" android:layout_width="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" + android:focusable="true" android:clickable="true" android:id="@+id/background"> @@ -139,4 +139,4 @@ - \ No newline at end of file + diff --git a/Habitica/res/layout/shop_header.xml b/Habitica/res/layout/shop_header.xml index 8a9d83967..e827213ea 100644 --- a/Habitica/res/layout/shop_header.xml +++ b/Habitica/res/layout/shop_header.xml @@ -1,5 +1,5 @@ - - + diff --git a/Habitica/res/layout/shop_section_header.xml b/Habitica/res/layout/shop_section_header.xml index 8d4d5248c..6ea737293 100644 --- a/Habitica/res/layout/shop_section_header.xml +++ b/Habitica/res/layout/shop_section_header.xml @@ -52,6 +52,7 @@ android:layout_marginHorizontal="12dp" android:layout_marginVertical="@dimen/spacing_medium" android:visibility="gone" + android:baselineAligned="false" android:clipToOutline="true"> + android:orientation="horizontal" + android:baselineAligned="false"> + )["title"] as String val notification = Notification() @@ -369,15 +368,15 @@ class UserRepositoryImpl( } } } - if (type == "background") { + return if (type == "background") { apiClient.unlockPath("background.$identifier") - return retrieveUser(false, true) + retrieveUser(false, true) } else { var updatePath = "preferences.$type" if (category != null) { updatePath = "$updatePath.$category" } - return updateUser(updatePath, identifier) + updateUser(updatePath, identifier) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmContentLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmContentLocalRepository.kt index 474865dcd..d78c9d325 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmContentLocalRepository.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmContentLocalRepository.kt @@ -3,8 +3,6 @@ package com.habitrpg.android.habitica.data.local.implementation import com.habitrpg.android.habitica.data.local.ContentLocalRepository import com.habitrpg.android.habitica.models.ContentResult import com.habitrpg.android.habitica.models.WorldState -import com.habitrpg.android.habitica.models.inventory.Quest -import com.habitrpg.android.habitica.models.social.Group import io.realm.Realm import io.realm.kotlin.toFlow import kotlinx.coroutines.flow.Flow 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 58c3c2812..291f73af7 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 @@ -184,7 +184,7 @@ class RealmInventoryLocalRepository(realm: Realm) : return queryUser(userID) .map { it?.items?.mounts?.filter { - it.owned == true + it.owned } ?: emptyList() } } @@ -301,7 +301,7 @@ class RealmInventoryLocalRepository(realm: Realm) : } val liveUser = getLiveObject(user) val ownedItems = liveUser?.items?.special - val item = ownedItems?.firstOrNull() { it.key == "inventory_present" } + val item = ownedItems?.firstOrNull { it.key == "inventory_present" } executeTransaction { if (item != null && item.isValid) { item.numberOwned = item.numberOwned - 1 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/AlertDialogExtensions.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/AlertDialogExtensions.kt index 6309d4e2d..270423f2f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/AlertDialogExtensions.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/AlertDialogExtensions.kt @@ -1,6 +1,5 @@ package com.habitrpg.android.habitica.extensions -import android.content.DialogInterface import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AdHandler.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AdHandler.kt index b7369d7c8..2b86c281b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AdHandler.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AdHandler.kt @@ -1,12 +1,5 @@ package com.habitrpg.android.habitica.helpers -import android.app.Activity -import android.content.Context -import android.content.SharedPreferences -import android.provider.Settings -import android.util.Log -import androidx.core.content.edit -import androidx.core.os.bundleOf /*import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.LoadAdError import com.google.android.gms.ads.MobileAds @@ -15,8 +8,11 @@ import com.google.android.gms.ads.RequestConfiguration import com.google.android.gms.ads.rewarded.RewardItem import com.google.android.gms.ads.rewarded.RewardedAd import com.google.android.gms.ads.rewarded.RewardedAdLoadCallback*/ -import com.google.firebase.analytics.FirebaseAnalytics -import com.google.firebase.crashlytics.FirebaseCrashlytics +import android.app.Activity +import android.content.Context +import android.content.SharedPreferences +import android.provider.Settings +import androidx.core.content.edit import com.habitrpg.android.habitica.BuildConfig import java.io.UnsupportedEncodingException import java.security.MessageDigest @@ -108,9 +104,9 @@ class AdHandler(val activity: Activity, val type: AdType, val rewardAction: (Boo if (currentAdStatus != AdStatus.UNINITIALIZED) return if (BuildConfig.DEBUG || BuildConfig.TESTING_LEVEL == "staff" || BuildConfig.TESTING_LEVEL == "alpha") { - val android_id: String = + val androidId: String = Settings.Secure.getString(context.contentResolver, Settings.Secure.ANDROID_ID) - val deviceId: String = android_id.md5()?.uppercase() ?: "" + val deviceId: String = androidId.md5()?.uppercase() ?: "" //val configuration = RequestConfiguration.Builder().setTestDeviceIds(listOf(deviceId)).build() //MobileAds.setRequestConfiguration(configuration) } @@ -208,9 +204,9 @@ class AdHandler(val activity: Activity, val type: AdType, val rewardAction: (Boo } } - private fun configureReward() { + //private fun configureReward() { //rewardedAd?.run { } - } + //} private fun showRewardedAd() { if (nextAdAllowedDate(type)?.after(Date()) == true) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/ReviewManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/ReviewManager.kt index 496849566..7a3df0902 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/ReviewManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/ReviewManager.kt @@ -51,12 +51,8 @@ class ReviewManager(context: Context, private val configManager: AppConfigManage return false } - if (lastReviewCheckin != -1 && currentCheckins - lastReviewCheckin < 5) { - // Less than 5 check-ins since the last review request, wait for more check-ins - return false - } - - return true + // Less than 5 check-ins since the last review request, wait for more check-ins + return !(lastReviewCheckin != -1 && currentCheckins - lastReviewCheckin < 5) } fun requestReview(activity: AppCompatActivity, currentCheckins: Int) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/SoundFile.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/SoundFile.kt index 4402b52a1..5c75ce0fc 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/SoundFile.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/SoundFile.kt @@ -47,7 +47,7 @@ class SoundFile(val theme: String, private val fileName: String) { player?.setVolume(100f, 100f) player?.isLooping = false player?.start() - } catch (e: IllegalStateException) { + } catch (_: IllegalStateException) { } catch (e: Exception) { ExceptionHandler.reportError(e) } 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 f75d18a68..e78170026 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 @@ -80,7 +80,7 @@ class UserStatComputer { var itemClass: String? = i.klass val itemSpecialClass = i.specialClass - val classDoesNotExist = itemClass == null || itemClass.isEmpty() + val classDoesNotExist = itemClass.isNullOrEmpty() val specialClassDoesNotExist = itemSpecialClass.isEmpty() if (classDoesNotExist && specialClassDoesNotExist) { @@ -93,7 +93,7 @@ class UserStatComputer { if (!userClassMatchesGearClass && !userClassMatchesGearSpecialClass) classBonus = 0f - if (itemClass == null || itemClass.isEmpty() || itemClass == "special") { + if (itemClass.isNullOrEmpty() || itemClass == "special") { itemClass = itemSpecialClass } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/GuildInviteLocalNotification.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/GuildInviteLocalNotification.kt index e830c1833..802c03e32 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/GuildInviteLocalNotification.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/GuildInviteLocalNotification.kt @@ -23,7 +23,7 @@ class GuildInviteLocalNotification(context: Context, identifier: String?) : Habi val acceptInviteIntent = Intent(context, LocalNotificationActionReceiver::class.java) acceptInviteIntent.action = res.getString(R.string.accept_guild_invite) - val groupID = data.get("groupID") + val groupID = data["groupID"] acceptInviteIntent.putExtra("groupID", groupID) acceptInviteIntent.putExtra("NOTIFICATION_ID", notificationId) val pendingIntentAccept = PendingIntent.getBroadcast( diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PartyInviteLocalNotification.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PartyInviteLocalNotification.kt index 3e393b3a4..794a00419 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PartyInviteLocalNotification.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PartyInviteLocalNotification.kt @@ -18,7 +18,7 @@ class PartyInviteLocalNotification(context: Context, identifier: String?) : Habi val acceptInviteIntent = Intent(context, LocalNotificationActionReceiver::class.java) acceptInviteIntent.action = res.getString(R.string.accept_party_invite) - val groupID = data.get("groupID") + val groupID = data["groupID"] acceptInviteIntent.putExtra("groupID", groupID) acceptInviteIntent.putExtra("NOTIFICATION_ID", notificationId) val pendingIntentAccept = PendingIntent.getBroadcast( diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/WonChallengeLocalNotification.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/WonChallengeLocalNotification.kt index 8ff30b1a8..24f2a9e7c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/WonChallengeLocalNotification.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/WonChallengeLocalNotification.kt @@ -2,7 +2,4 @@ package com.habitrpg.android.habitica.helpers.notifications import android.content.Context -/** - * Created by keithholliday on 7/2/16. - */ class WonChallengeLocalNotification(context: Context, identifier: String?) : HabiticaLocalNotification(context, identifier) 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 4f9e8500d..341bfda8c 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 @@ -1,8 +1,6 @@ package com.habitrpg.android.habitica.interactors import android.content.Context -import android.graphics.Bitmap -import android.graphics.Canvas import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.lifecycle.setViewTreeLifecycleOwner @@ -13,14 +11,12 @@ import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.MountImageviewBinding import com.habitrpg.android.habitica.models.inventory.Food import com.habitrpg.android.habitica.models.inventory.Pet -import com.habitrpg.android.habitica.ui.activities.BaseActivity -import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.android.habitica.ui.views.BackgroundScene import com.habitrpg.android.habitica.ui.views.SnackbarActivity import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog -import com.habitrpg.common.habitica.extensions.dpToPx import com.habitrpg.common.habitica.extensions.layoutInflater import com.habitrpg.common.habitica.helpers.launchCatching +import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.shared.habitica.models.responses.FeedResponse import kotlinx.coroutines.MainScope import javax.inject.Inject 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 00ff01e0e..17ac4715b 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 @@ -30,7 +30,7 @@ constructor( return inventoryRepository.hatchPet(requestValues.egg, requestValues.potion) { val petWrapper = PetImageviewBinding.inflate(requestValues.context.layoutInflater) val petKey = requestValues.egg.key + "-" + requestValues.potion.key - petWrapper.petImageview.loadImage("stable_Pet-" + petKey) + petWrapper.petImageview.loadImage("stable_Pet-$petKey") val potionName = requestValues.potion.text val eggName = requestValues.egg.text val currentActivity = 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 1e4df61b6..3dbada4e7 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 @@ -25,7 +25,7 @@ class ScoreTaskLocallyInteractor { var nextDelta = 0.9747.pow(currentValue) * if (direction == TaskDirection.DOWN) -1 else 1 - if (task.checklist?.size ?: 0 > 0) { + if ((task.checklist?.size ?: 0) > 0) { if (task.type == TaskType.TODO) { nextDelta *= 1 + ( task.checklist?.map { if (it.completed) 1 else 0 }?.reduce { _, _ -> 0 } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShareMountUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShareMountUseCase.kt index 746b80ab4..bc61153ed 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShareMountUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShareMountUseCase.kt @@ -14,12 +14,10 @@ import androidx.savedstate.setViewTreeSavedStateRegistryOwner import com.habitrpg.android.habitica.HabiticaBaseApplication import com.habitrpg.android.habitica.databinding.MountImageviewBinding import com.habitrpg.android.habitica.ui.activities.BaseActivity -import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.android.habitica.ui.views.BackgroundScene -import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.common.habitica.extensions.dpToPx import com.habitrpg.common.habitica.extensions.layoutInflater -import com.habitrpg.common.habitica.extensions.loadImage +import com.habitrpg.common.habitica.theme.HabiticaTheme import kotlinx.coroutines.delay class ShareMountUseCase: UseCase() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/SharePetUseCase.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/SharePetUseCase.kt index 6a74e54c0..8d27533b6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/SharePetUseCase.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/SharePetUseCase.kt @@ -1,37 +1,25 @@ package com.habitrpg.android.habitica.interactors -import android.app.Activity import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas -import android.graphics.Rect -import android.os.Build -import android.os.Handler -import android.view.PixelCopy import android.view.View import android.view.ViewGroup import android.widget.FrameLayout -import androidx.annotation.RequiresApi -import androidx.appcompat.widget.Toolbar import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.findViewTreeCompositionContext import androidx.core.view.doOnNextLayout -import androidx.core.view.isVisible import androidx.lifecycle.setViewTreeLifecycleOwner import androidx.savedstate.setViewTreeSavedStateRegistryOwner import com.habitrpg.android.habitica.HabiticaBaseApplication -import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.PetImageviewBinding -import com.habitrpg.android.habitica.models.inventory.Food -import com.habitrpg.android.habitica.models.inventory.Pet import com.habitrpg.android.habitica.ui.activities.BaseActivity -import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.android.habitica.ui.views.BackgroundScene -import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.common.habitica.extensions.dpToPx import com.habitrpg.common.habitica.extensions.layoutInflater import com.habitrpg.common.habitica.extensions.loadImage +import com.habitrpg.common.habitica.theme.HabiticaTheme import kotlinx.coroutines.delay class SharePetUseCase: UseCase() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/CustomizationSet.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/CustomizationSet.kt index 6804720a8..924a3df4b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/CustomizationSet.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/CustomizationSet.kt @@ -15,9 +15,6 @@ class CustomizationSet { customization.price?.let { total += it } } } - if (total >= price) { - return true - } - return false + return total >= price } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestBoss.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestBoss.kt index 6e63df4be..9d2a50b41 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestBoss.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestBoss.kt @@ -20,6 +20,6 @@ open class QuestBoss : RealmObject(), BaseObject { val hasRage: Boolean get() { - return rage?.value ?: 0.0 > 0.0 + return (rage?.value ?: 0.0) > 0.0 } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestContent.kt index 2f897b7a7..cf19c220f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestContent.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/QuestContent.kt @@ -64,9 +64,6 @@ open class QuestContent : RealmObject(), Item { fun hasGifImage(): Boolean { val gifImageKeys = listOf("lostMasterclasser4") - if (gifImageKeys.contains(key)) { - return true - } - return false + return gifImageKeys.contains(key) } } 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 5947360e6..9e3035563 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 @@ -170,8 +170,7 @@ class GiftOneGetOneHabiticaPromotion(startDate: Date?, endDate: Date?) : Habitic fragment.binding?.promptButton?.setOnClickListener { fragment.context?.let { context -> SubscriptionFragment.showGiftSubscriptionDialog( - context, - true + context ) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/UnlockResponse.java b/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/UnlockResponse.java index bc31b5dab..7c7ea05e7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/UnlockResponse.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/responses/UnlockResponse.java @@ -4,9 +4,6 @@ import com.habitrpg.android.habitica.models.user.Items; import com.habitrpg.android.habitica.models.user.Preferences; import com.habitrpg.android.habitica.models.user.Purchases; -/** - * Created by viirus on 16/01/16. - */ public class UnlockResponse { public Preferences preferences; 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 29386cc26..edbe560a0 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 @@ -141,7 +141,7 @@ open class Task : RealmObject, BaseMainObject, Parcelable, BaseTask { fun completeForUser(userID: String?, completed: Boolean) { if (isGroupTask && group?.assignedUsersDetail?.isNotEmpty() == true) { group?.assignedUsersDetail?.firstOrNull { it.assignedUserID == userID }?.completed = completed - if (group?.assignedUsersDetail?.filter { it.completed != completed }?.isEmpty() == true) { + if (group?.assignedUsersDetail?.none { it.completed != completed } == true) { this.completed = completed } } else { @@ -436,30 +436,36 @@ open class Task : RealmObject, BaseMainObject, Parcelable, BaseTask { attribute != task.attribute && attribute != null -> return true tags != task.tags -> return true } - if (type == TaskType.HABIT) { - return when { - up != task.up -> true - down != task.down -> true - frequency != task.frequency -> true - counterUp != task.counterUp -> true - counterDown != task.counterDown -> true - else -> false + when (type) { + TaskType.HABIT -> { + return when { + up != task.up -> true + down != task.down -> true + frequency != task.frequency -> true + counterUp != task.counterUp -> true + counterDown != task.counterDown -> true + else -> false + } } - } else if (type == TaskType.DAILY) { - return when { - startDate != task.startDate -> true - everyX != task.everyX -> true - frequency != task.frequency -> true - repeat != task.repeat -> true - streak != task.streak -> true - else -> false + TaskType.DAILY -> { + return when { + startDate != task.startDate -> true + everyX != task.everyX -> true + frequency != task.frequency -> true + repeat != task.repeat -> true + streak != task.streak -> true + else -> false + } + } + TaskType.TODO -> { + return (dueDate != task.dueDate && task.dueDate != null) + } + TaskType.REWARD -> { + return value != task.value + } + else -> { + return false } - } else if (type == TaskType.TODO) { - return (dueDate != task.dueDate && task.dueDate != null) - } else if (type == TaskType.REWARD) { - return value != task.value - } else { - return false } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/DeveloperModule.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/DeveloperModule.kt index 9557b6514..ec6b9e8e8 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/DeveloperModule.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/DeveloperModule.kt @@ -7,6 +7,4 @@ import dagger.hilt.components.SingletonComponent // provide proxy class for libraries(to avoid 65k limit) @InstallIn(SingletonComponent::class) @Module -open class DeveloperModule { - -} +open class DeveloperModule diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/DeviceCommunicationService.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/DeviceCommunicationService.kt index ad556a3dd..caa44e1c0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/DeviceCommunicationService.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/DeviceCommunicationService.kt @@ -19,9 +19,6 @@ class DeviceCommunicationService : WearableListenerService() { private val messageClient by lazy { Wearable.getMessageClient(this) } - init { - } - override fun onMessageReceived(event: MessageEvent) { super.onMessageReceived(event) when (event.path) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/RoundedFrameLayout.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/RoundedFrameLayout.kt index 647928ab7..209aa0bf0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/RoundedFrameLayout.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/RoundedFrameLayout.kt @@ -21,7 +21,7 @@ class RoundedFrameLayout @JvmOverloads constructor( override fun onDraw(canvas: Canvas) { clipPath.reset() - val radius = if (isCirclular) (canvas.height / 2).toFloat() else radius + val radius = if (isCirclular) (height / 2).toFloat() else radius canvas.getClipBounds(bounds) clipPath.addRoundRect(bounds.toRectF(), radius, radius, Path.Direction.CW) canvas.clipPath(clipPath) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt index d1188c343..bd5818e28 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt @@ -13,7 +13,7 @@ import androidx.lifecycle.lifecycleScope import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.ActivityArmoireBinding -import com.habitrpg.android.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.AdHandler import com.habitrpg.android.habitica.helpers.AdType import com.habitrpg.android.habitica.helpers.Analytics 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 6c3250464..e225fe2ae 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 @@ -1,7 +1,5 @@ package com.habitrpg.android.habitica.ui.activities -import android.R.attr.bitmap -import android.R.attr.name import android.content.ContentValues import android.content.Context import android.content.Intent 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 5bec8dce8..7b2834e75 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 @@ -12,7 +12,7 @@ import androidx.lifecycle.lifecycleScope import androidx.navigation.navArgs import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.ActivityClassSelectionBinding -import com.habitrpg.android.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.ReviewManager import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.models.user.Gear diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt index 5f1dced3a..3b9b87708 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt @@ -1,12 +1,12 @@ package com.habitrpg.android.habitica.ui.activities +import android.annotation.SuppressLint import android.content.SharedPreferences import android.graphics.drawable.BitmapDrawable import android.os.Bundle import android.view.View import android.view.ViewGroup import android.view.animation.AccelerateInterpolator -import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth @@ -19,7 +19,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign @@ -27,14 +26,13 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.content.edit import androidx.lifecycle.lifecycleScope -import com.habitrpg.android.habitica.HabiticaApplication import com.habitrpg.android.habitica.HabiticaBaseApplication import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.ActivityDeathBinding import com.habitrpg.android.habitica.extensions.DateUtils import com.habitrpg.android.habitica.extensions.getShortRemainingString -import com.habitrpg.android.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.AdHandler import com.habitrpg.android.habitica.helpers.AdType import com.habitrpg.android.habitica.helpers.Analytics @@ -52,7 +50,6 @@ import com.habitrpg.common.habitica.helpers.Animations import com.habitrpg.common.habitica.helpers.ExceptionHandler import com.habitrpg.common.habitica.helpers.launchCatching import com.habitrpg.common.habitica.theme.HabiticaTheme -import com.habitrpg.common.habitica.views.HabiticaCircularProgressView import com.plattysoft.leonids.ParticleSystem import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.MainScope @@ -257,6 +254,7 @@ class DeathActivity : BaseActivity(), SnackbarActivity { .emit(binding.root.width / 2, positionArray[1] + (binding.heartView.height / 2), 3, 6000) } + @SuppressLint("MissingSuperCall") override fun onBackPressed() { moveTaskToBack(true) } 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 f9ad1be2f..27d086e09 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 @@ -9,7 +9,7 @@ import android.widget.EditText import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.ActivityFixcharacterBinding -import com.habitrpg.android.habitica.extensions.setTintWith +import com.habitrpg.common.habitica.extensions.setTintWith import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel 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 effadad46..d8fca45ea 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 @@ -1,5 +1,6 @@ package com.habitrpg.android.habitica.ui.activities +import android.annotation.SuppressLint import android.content.ClipData import android.content.ClipboardManager import android.content.SharedPreferences @@ -28,7 +29,6 @@ import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.databinding.ActivityFullProfileBinding import com.habitrpg.android.habitica.extensions.addCancelButton import com.habitrpg.android.habitica.helpers.ReviewManager -import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.UserStatComputer import com.habitrpg.android.habitica.interactors.ShareAvatarUseCase import com.habitrpg.android.habitica.models.Achievement @@ -39,16 +39,16 @@ import com.habitrpg.android.habitica.models.user.Permission import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.ui.adapter.social.AchievementProfileAdapter import com.habitrpg.android.habitica.ui.fragments.ReportBottomSheetFragment -import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.android.habitica.ui.views.AppHeaderView import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar.SnackbarDisplayType import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.common.habitica.extensions.loadImage -import com.habitrpg.common.habitica.helpers.ExceptionHandler +import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.common.habitica.helpers.RecyclerViewState import com.habitrpg.common.habitica.helpers.launchCatching import com.habitrpg.common.habitica.helpers.setMarkdown +import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.common.habitica.views.PixelArtView import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.Dispatchers @@ -768,6 +768,7 @@ class FullProfileActivity : BaseActivity() { return true } + @SuppressLint("MissingSuperCall") override fun onBackPressed() { finish() } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupFormActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupFormActivity.kt index 544d3a6b1..141199984 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupFormActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupFormActivity.kt @@ -1,5 +1,6 @@ package com.habitrpg.android.habitica.ui.activities +import android.annotation.SuppressLint import android.app.Activity import android.content.Intent import android.os.Bundle @@ -80,6 +81,7 @@ class GroupFormActivity : BaseActivity() { return true } + @SuppressLint("MissingSuperCall") override fun onBackPressed() { finish() dismissKeyboard() 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 439ee7e82..c995ea20a 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 @@ -491,8 +491,6 @@ class LoginActivity : BaseActivity() { } companion object { - internal const val REQUEST_CODE_PICK_ACCOUNT = 1000 - fun show(v: View) { v.visibility = View.VISIBLE } 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 aa57a993a..ef32d7246 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 @@ -49,8 +49,8 @@ import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.data.TaskRepository import com.habitrpg.android.habitica.databinding.ActivityMainBinding import com.habitrpg.android.habitica.extensions.hideKeyboard -import com.habitrpg.android.habitica.extensions.observeOnce -import com.habitrpg.android.habitica.extensions.setScaledPadding +import com.habitrpg.common.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.setScaledPadding import com.habitrpg.android.habitica.extensions.updateStatusBarColor import com.habitrpg.android.habitica.helpers.Analytics import com.habitrpg.android.habitica.helpers.AppConfigManager 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 9c3e2696d..1939c124a 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 @@ -4,7 +4,6 @@ import android.app.Activity import android.content.Context import android.content.Intent import android.os.Bundle -import android.view.HapticFeedbackConstants import android.view.LayoutInflater import android.view.View import android.widget.Button @@ -22,9 +21,9 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.databinding.ActivityNotificationsBinding -import com.habitrpg.android.habitica.extensions.fadeInAnimation -import com.habitrpg.android.habitica.extensions.flash -import com.habitrpg.android.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.fadeInAnimation +import com.habitrpg.common.habitica.extensions.flash +import com.habitrpg.common.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.HapticFeedbackManager import com.habitrpg.android.habitica.models.inventory.QuestContent import com.habitrpg.android.habitica.ui.viewmodels.NotificationsViewModel @@ -36,7 +35,6 @@ import com.habitrpg.common.habitica.models.Notification import com.habitrpg.common.habitica.models.notifications.GroupTaskApprovedData import com.habitrpg.common.habitica.models.notifications.GroupTaskNeedsWorkData import com.habitrpg.common.habitica.models.notifications.GroupTaskRequiresApprovalData -import com.habitrpg.common.habitica.models.notifications.GuildInvitationData import com.habitrpg.common.habitica.models.notifications.ItemReceivedData import com.habitrpg.common.habitica.models.notifications.NewChatMessageData import com.habitrpg.common.habitica.models.notifications.NewStuffData 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 51b307b62..a5b8e9757 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 @@ -62,7 +62,6 @@ class PrefsActivity : BaseActivity(), PreferenceFragmentCompat.OnPreferenceStart } override fun snackbarContainer(): ViewGroup { - val v = findViewById(R.id.snackbar_container) - return v + return findViewById(R.id.snackbar_container) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/AchievementsAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/AchievementsAdapter.kt index 66da0654f..db7930608 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/AchievementsAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/AchievementsAdapter.kt @@ -99,7 +99,7 @@ class AchievementsAdapter : RecyclerView.Adapter() { achievementIconView.loadImage(iconName) achievementTitleView.text = achievement.title achievementDescriptionView?.text = achievement.text - if (achievement.optionalCount ?: 0 > 0) { + if ((achievement.optionalCount ?: 0) > 0) { achievementCountView.visibility = View.VISIBLE achievementCountView.text = achievement.optionalCount.toString() } else { 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 03096ec48..d07db2a4b 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 @@ -22,7 +22,7 @@ import java.util.Date import java.util.EnumMap import kotlin.math.min -class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.RecyclerView.Adapter() { +class CustomizationRecyclerViewAdapter : androidx.recyclerview.widget.RecyclerView.Adapter() { var userSize: String? = null var hairColor: String? = null @@ -34,9 +34,6 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler private var customizationList: MutableList = ArrayList() var additionalSetItems: List = ArrayList() var activeCustomization: String? = null - set(value) { - field = value - } var ownedCustomizations: List = listOf() private var pinnedItemKeys: List = ArrayList() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SimpleSpinnerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SimpleSpinnerAdapter.kt index f97617fa4..0576dfd1e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SimpleSpinnerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SimpleSpinnerAdapter.kt @@ -10,7 +10,7 @@ import com.habitrpg.android.habitica.extensions.inflate class SimpleSpinnerAdapter(context: Context, resource: Int) : ArrayAdapter(context, resource, R.id.textView, context.resources.getTextArray(resource)) { - override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View? { + override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View { val view = parent.inflate(R.layout.spinner_item, false) ?: View(context) (view as? TextView)?.text = getItem(position) return view 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 26f0b6121..f11bf9992 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 @@ -103,7 +103,7 @@ class SkillsRecyclerViewAdapter : RecyclerView.Adapter mana) { + if ((skill.mana ?: 0) > mana) { binding.buttonWrapper.setBackgroundColor(ContextCompat.getColor(context, R.color.offset_background)) binding.buttonIconView.alpha = 0.3f binding.priceLabel.alpha = 0.3f @@ -131,7 +131,7 @@ class SkillsRecyclerViewAdapter : RecyclerView.Adapter if (selectedCustomization.path == "glasses") { - val key = if (selectedCustomization.key.isEmpty()) { + val key = selectedCustomization.key.ifEmpty { user?.items?.gear?.equipped?.eyeWear - } else { - selectedCustomization.key } key?.let { onEquipGear?.invoke(it) } } else { 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 e4d431209..25e770fc5 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 @@ -11,7 +11,7 @@ import androidx.recyclerview.widget.RecyclerView 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 com.habitrpg.common.habitica.extensions.setTintWith class TaskSetupAdapter : RecyclerView.Adapter() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt index 8c84ac4f1..9d97a135c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.kt @@ -30,7 +30,7 @@ abstract class BaseMainFragment : BaseFragment() { protected var showsBackButton: Boolean = false - open val mainActivity get() = getActivity() as? MainActivity + open val mainActivity get() = activity as? MainActivity val tabLayout get() = mainActivity?.binding?.content?.detailTabs val collapsingToolbar get() = mainActivity?.binding?.content?.toolbar val toolbarAccessoryContainer get() = mainActivity?.binding?.content?.toolbarAccessoryContainer diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt index f8a7151d0..86150a870 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt @@ -734,7 +734,6 @@ class NavigationDrawerFragment : DialogFragment() { } } - @OptIn(ExperimentalTime::class) fun updatePromo() { activePromo = configManager.activePromo() val promoItem = getItemWithIdentifier(SIDEBAR_PROMO) ?: return diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/ReportBottomSheetFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/ReportBottomSheetFragment.kt index 010d4ca3a..a7f5dde18 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/ReportBottomSheetFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/ReportBottomSheetFragment.kt @@ -46,7 +46,7 @@ class ReportBottomSheetFragment : BottomSheetDialogFragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { binding = FragmentReportMessageBinding.inflate(inflater, container, false) return binding.root } 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 cb63b2016..8c1244682 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 @@ -10,7 +10,7 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.FragmentStatsBinding import com.habitrpg.android.habitica.extensions.addOkButton -import com.habitrpg.android.habitica.extensions.setScaledPadding +import com.habitrpg.common.habitica.extensions.setScaledPadding import com.habitrpg.android.habitica.helpers.UserStatComputer import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.models.user.User @@ -110,9 +110,9 @@ class StatsFragment : BaseMainFragment() { userViewModel.user.observe(viewLifecycleOwner) { user -> if (user == null) return@observe canAllocatePoints = - user.stats?.lvl ?: 0 >= 10 && user.stats?.points ?: 0 > 0 + (user.stats?.lvl ?: 0) >= 10 && (user.stats?.points ?: 0) > 0 binding?.unlockAtLevel?.visibility = - if (user.stats?.lvl ?: 0 < 10) View.VISIBLE else View.GONE + if ((user.stats?.lvl ?: 0) < 10) View.VISIBLE else View.GONE updateStats(user) updateAttributePoints(user) } 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 cba8e3372..007f3a6b8 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 @@ -24,7 +24,7 @@ import com.habitrpg.android.habitica.data.CustomizationRepository import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.BottomSheetBackgroundsFilterBinding import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding -import com.habitrpg.android.habitica.extensions.setTintWith +import com.habitrpg.common.habitica.extensions.setTintWith import com.habitrpg.android.habitica.helpers.Analytics import com.habitrpg.android.habitica.models.CustomizationFilter import com.habitrpg.android.habitica.models.inventory.Customization diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.kt index 5a3a81d16..799f5d261 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.kt @@ -24,25 +24,23 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.platform.ViewCompositionStrategy import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import androidx.core.graphics.scale import androidx.lifecycle.lifecycleScope import androidx.lifecycle.map import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.FragmentComposeScrollingBinding import com.habitrpg.android.habitica.interactors.ShareAvatarUseCase -import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.models.inventory.Equipment import com.habitrpg.android.habitica.ui.activities.BaseActivity import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment import com.habitrpg.android.habitica.ui.theme.colors -import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel import com.habitrpg.android.habitica.ui.views.SegmentedControl import com.habitrpg.android.habitica.ui.views.equipment.AvatarCustomizationOverviewView import com.habitrpg.android.habitica.ui.views.equipment.EquipmentOverviewView +import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.common.habitica.helpers.launchCatching -import com.habitrpg.common.habitica.views.AvatarView +import com.habitrpg.common.habitica.theme.HabiticaTheme import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.flow.firstOrNull import javax.inject.Inject diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.kt index 9b6ccab9d..bb1769770 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.kt @@ -11,7 +11,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding -import com.habitrpg.android.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.ReviewManager import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.ui.adapter.inventory.EquipmentRecyclerViewAdapter @@ -97,7 +97,7 @@ class EquipmentDetailFragment : binding?.recyclerView?.adapter = this.adapter binding?.recyclerView?.layoutManager = LinearLayoutManager(mainActivity) - binding?.recyclerView?.addItemDecoration(DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL)) + binding?.recyclerView?.addItemDecoration(DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)) binding?.recyclerView?.itemAnimator = SafeDefaultItemAnimator() type?.let { type -> 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 d2c728608..2c212372d 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 @@ -12,7 +12,7 @@ import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.FragmentItemsDialogBinding import com.habitrpg.android.habitica.extensions.addCloseButton -import com.habitrpg.android.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.Analytics import com.habitrpg.android.habitica.helpers.EventCategory import com.habitrpg.android.habitica.helpers.HitType 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 31375f48d..66d49305a 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 @@ -16,7 +16,7 @@ import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.FragmentItemsBinding import com.habitrpg.android.habitica.extensions.addCloseButton -import com.habitrpg.android.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.Analytics import com.habitrpg.android.habitica.helpers.EventCategory import com.habitrpg.android.habitica.helpers.HitType 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 03fc8a45a..6fc3766f9 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 @@ -9,7 +9,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding -import com.habitrpg.android.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.ReviewManager import com.habitrpg.android.habitica.interactors.FeedPetUseCase import com.habitrpg.android.habitica.models.inventory.Egg @@ -99,7 +99,7 @@ class PetDetailRecyclerFragment : } binding?.refreshLayout?.setOnRefreshListener(this) - layoutManager = androidx.recyclerview.widget.GridLayoutManager(getActivity(), 4) + layoutManager = androidx.recyclerview.widget.GridLayoutManager(activity, 4) layoutManager?.spanSizeLookup = object : androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup() { override fun getSpanSize(position: Int): Int { 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 66df23df1..a8bed8b18 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 @@ -17,13 +17,11 @@ import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.preference.EditTextPreference import androidx.preference.Preference -import com.google.android.material.textfield.TextInputLayout import com.habitrpg.android.habitica.HabiticaBaseApplication import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.extensions.addCancelButton import com.habitrpg.android.habitica.extensions.addCloseButton -import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.activities.FixCharacterValuesActivity import com.habitrpg.android.habitica.ui.fragments.preferences.HabiticaAccountDialog.AccountUpdateConfirmed @@ -39,6 +37,7 @@ import com.habitrpg.common.habitica.api.HostConfig import com.habitrpg.common.habitica.extensions.dpToPx import com.habitrpg.common.habitica.extensions.layoutInflater import com.habitrpg.common.habitica.helpers.ExceptionHandler +import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.common.habitica.helpers.launchCatching import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch @@ -350,7 +349,7 @@ class AccountPreferenceFragment : } else { dialog.setTitle(R.string.add_password) } - dialog.addButton(R.string.add, true, false, false) { dialog, _ -> + dialog.addButton(R.string.add, true, false, false) { _, _ -> KeyboardUtil.dismissKeyboard(activity) emailEditText?.showErrorIfNecessary() passwordEditText?.showErrorIfNecessary() @@ -386,8 +385,7 @@ class AccountPreferenceFragment : emailEditText?.text = user?.authentication?.localAuthentication?.email emailEditText?.validator = { PatternsCompat.EMAIL_ADDRESS.matcher(it ?: "").matches() } emailEditText?.errorText = getString(R.string.email_invalid) - view?.findViewById(R.id.input_layout)?.hint = - context?.getString(R.string.email) + emailEditText?.hint = context?.getString(R.string.email) val passwordEditText = view?.findViewById(R.id.password_edit_text) if (user?.authentication?.hasPassword != true) { passwordEditText?.isVisible = false @@ -395,7 +393,7 @@ class AccountPreferenceFragment : context?.let { context -> val dialog = HabiticaAlertDialog(context) dialog.setTitle(R.string.change_email) - dialog.addButton(R.string.change, true, false, false) { dialog, _ -> + dialog.addButton(R.string.change, true, false, false) { _, _ -> KeyboardUtil.dismissKeyboard(activity) emailEditText?.showErrorIfNecessary() if (emailEditText?.isValid != true) return@addButton @@ -445,11 +443,11 @@ class AccountPreferenceFragment : editText?.text = value editText?.validator = validator editText?.errorText = getString(R.string.username_requirements) - view?.findViewById(R.id.input_layout)?.hint = title + editText?.hint = title context?.let { context -> val dialog = HabiticaAlertDialog(context) dialog.setTitle(title) - dialog.addButton(R.string.save, true, autoDismiss = false) { dialog, _ -> + dialog.addButton(R.string.save, true, autoDismiss = false) { _, _ -> KeyboardUtil.dismissKeyboard(activity) editText?.showErrorIfNecessary() if (editText?.isValid != true) return@addButton 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 3f1014eb1..b2b416947 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 @@ -143,7 +143,7 @@ class PreferencesFragment : showAsBottomSheet { dismiss -> PauseResumeDamageView(user?.preferences?.sleep ?: true, { lifecycleScope.launchCatching { - user?.let { it -> userRepository.sleep(it) } + user?.let { userRepository.sleep(it) } dismiss() } }) @@ -239,11 +239,13 @@ class PreferencesFragment : val alert = context?.let { HabiticaAlertDialog(it) } alert?.setTitle(R.string.push_notification_system_settings_title) alert?.setMessage(R.string.push_notification_system_settings_description) - alert?.addButton(R.string.open_settings, true, false) { _, _ -> - val notifSettingIntent: Intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS) - .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - .putExtra(Settings.EXTRA_APP_PACKAGE, context?.applicationContext?.packageName) - startActivity(notifSettingIntent) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + alert?.addButton(R.string.open_settings, true, false) { _, _ -> + val notifSettingIntent: Intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS) + .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + .putExtra(Settings.EXTRA_APP_PACKAGE, context?.applicationContext?.packageName) + startActivity(notifSettingIntent) + } } alert?.addButton(R.string.cancel, false) { _, _ -> alert.dismiss() 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 853df69c7..bf6f08cf5 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 @@ -1,9 +1,7 @@ package com.habitrpg.android.habitica.ui.fragments.purchases import android.annotation.SuppressLint -import android.os.Bundle import android.view.LayoutInflater -import android.view.View import android.view.ViewGroup import com.android.billingclient.api.ProductDetails import com.habitrpg.android.habitica.data.SocialRepository @@ -47,10 +45,6 @@ class GiftPurchaseGemsFragment : BaseFragment() private var purchaseHandler: PurchaseHandler? = null - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - } - fun setupCheckout() { CoroutineScope(Dispatchers.IO).launch(ExceptionHandler.coroutine()) { val skus = purchaseHandler?.getAllGemSKUs() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionBottomSheetFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionBottomSheetFragment.kt index 47ac7536b..6a9439c8a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionBottomSheetFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionBottomSheetFragment.kt @@ -16,13 +16,11 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.databinding.FragmentBottomsheetSubscriptionBinding -import com.habitrpg.android.habitica.helpers.Analytics 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.user.User import com.habitrpg.android.habitica.ui.views.subscriptions.SubscriptionOptionView -import com.habitrpg.common.habitica.extensions.loadImage import com.habitrpg.common.habitica.helpers.ExceptionHandler import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.common.habitica.helpers.launchCatching @@ -72,7 +70,7 @@ open class SubscriptionBottomSheetFragment : BottomSheetDialogFragment() { MainNavigationController.navigate(R.id.subscriptionPurchaseActivity) } binding.subscribeButton.setOnClickListener { purchaseSubscription() } - binding.subscriptionDisclaimerView?.setMarkdown("Once we’ve confirmed your purchase, the payment will be charged to your Google Account.\n\nSubscriptions automatically renew unless auto-renewal is turned off at least 24-hours before the end of the current period. If you have an active subscription, your account will be charged for renewal within 24-hours prior to the end of your current subscription period and you will be charged the same price you initially paid.\n\nBy continuing you accept the [Terms of Use](https://habitica.com/static/terms) and [Privacy Policy](https://habitica.com/static/privacy).") + binding.subscriptionDisclaimerView.setMarkdown("Once we’ve confirmed your purchase, the payment will be charged to your Google Account.\n\nSubscriptions automatically renew unless auto-renewal is turned off at least 24-hours before the end of the current period. If you have an active subscription, your account will be charged for renewal within 24-hours prior to the end of your current subscription period and you will be charged the same price you initially paid.\n\nBy continuing you accept the [Terms of Use](https://habitica.com/static/terms) and [Privacy Policy](https://habitica.com/static/privacy).") lifecycleScope.launchCatching { userRepository.getUser().collect { user -> diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt index 1c26c0063..214dd04e3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt @@ -13,13 +13,11 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.recyclerview.widget.LinearLayoutManager -import com.habitrpg.android.habitica.MainNavDirections import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.databinding.FragmentChatBinding -import com.habitrpg.android.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.AppConfigManager -import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.models.social.ChatMessage import com.habitrpg.android.habitica.ui.activities.FullProfileActivity import com.habitrpg.android.habitica.ui.activities.MainActivity 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 c5f7a405f..cb4c15aa4 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 @@ -16,13 +16,11 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.recyclerview.widget.RecyclerView -import com.habitrpg.android.habitica.MainNavDirections import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.SocialRepository import com.habitrpg.android.habitica.databinding.FragmentInboxMessageListBinding import com.habitrpg.android.habitica.extensions.addOkButton import com.habitrpg.android.habitica.helpers.AppConfigManager -import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.models.social.ChatMessage import com.habitrpg.android.habitica.ui.activities.FullProfileActivity import com.habitrpg.android.habitica.ui.activities.MainActivity @@ -75,7 +73,7 @@ class InboxMessageListFragment : BaseMainFragment() { HapticFeedbackManager.tap(requireView()) context?.let { if (isQuestActive) { - val builder = AlertDialog.Builder(getActivity()) + val builder = AlertDialog.Builder(activity) .setMessage(R.string.quest_abort_message) .setPositiveButton(R.string.yes) { _, _ -> party?.id?.let { partyID -> lifecycleScope.launchCatching { socialRepository.abortQuest(partyID) userRepository.retrieveUser(true) - getActivity()?.supportFragmentManager?.popBackStack() + activity?.supportFragmentManager?.popBackStack() } } }.setNegativeButton(R.string.no) { _, _ -> } @@ -276,7 +276,7 @@ class QuestDetailFragment : BaseMainFragment() { lifecycleScope.launchCatching { socialRepository.cancelQuest(partyID) userRepository.retrieveUser(true) - getActivity()?.supportFragmentManager?.popBackStack() + activity?.supportFragmentManager?.popBackStack() } } } @@ -288,7 +288,7 @@ class QuestDetailFragment : BaseMainFragment() { private fun onQuestLeave() { HapticFeedbackManager.tap(requireView()) - val builder = AlertDialog.Builder(getActivity()) + val builder = AlertDialog.Builder(activity) .setMessage(if (quest?.active == true) R.string.quest_leave_message else R.string.quest_leave_message_nostart) .setPositiveButton(R.string.yes) { _, _ -> party?.id?.let { partyID -> @@ -296,7 +296,7 @@ class QuestDetailFragment : BaseMainFragment() { socialRepository.leaveQuest(partyID) socialRepository.retrieveGroup(partyID) userRepository.retrieveUser(true) - getActivity()?.supportFragmentManager?.popBackStack() + activity?.supportFragmentManager?.popBackStack() } } }.setNegativeButton(R.string.no) { _, _ -> } 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 c05f70686..fe4dc2c36 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 @@ -175,7 +175,7 @@ class ChallengeDetailFragment : BaseMainFragment override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.action_edit -> { - val intent = Intent(getActivity(), ChallengeFormActivity::class.java) + val intent = Intent(activity, ChallengeFormActivity::class.java) val bundle = Bundle() bundle.putString(ChallengeFormActivity.CHALLENGE_ID_KEY, challengeID) intent.putExtras(bundle) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeFilterDialogHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeFilterDialogHolder.kt index 60eb6ad69..8559d0e0c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeFilterDialogHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeFilterDialogHolder.kt @@ -50,8 +50,8 @@ internal class ChallengeFilterDialogHolder private constructor( private fun fillChallengeGroups() { binding.challengeFilterRecyclerView.layoutManager = LinearLayoutManager(context) adapter = ChallengesFilterRecyclerViewAdapter(filterGroups) - if (currentFilter != null && currentFilter?.showByGroups != null) { - adapter?.checkedEntries?.addAll(currentFilter?.showByGroups ?: emptyList()) + currentFilter?.let { currentFilter -> + adapter?.checkedEntries?.addAll(currentFilter.showByGroups) } binding.challengeFilterRecyclerView.adapter = adapter 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 0c258e050..530e38c97 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 @@ -85,7 +85,7 @@ class ChallengesOverviewFragment : BaseMainFragment() override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.action_create_challenge -> { - val intent = Intent(getActivity(), ChallengeFormActivity::class.java) + val intent = Intent(activity, ChallengeFormActivity::class.java) startActivity(intent) return true } 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 07335b8ed..0757e048e 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 @@ -19,8 +19,8 @@ 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.FragmentRefreshRecyclerviewBinding -import com.habitrpg.android.habitica.extensions.observeOnce -import com.habitrpg.android.habitica.extensions.setScaledPadding +import com.habitrpg.common.habitica.extensions.observeOnce +import com.habitrpg.common.habitica.extensions.setScaledPadding import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.helpers.HapticFeedbackManager import com.habitrpg.common.habitica.helpers.MainNavigationController @@ -70,7 +70,7 @@ open class TaskRecyclerViewFragment : private var taskFlowJob: Job? = null val viewModel: TasksViewModel by viewModels({ requireParentFragment() }) - internal var canScoreTaks: Boolean = true + internal var canScoreTasks: Boolean = true override var binding: FragmentRefreshRecyclerviewBinding? = null override fun createBinding( @@ -162,7 +162,7 @@ open class TaskRecyclerViewFragment : } viewModel.ownerID.observe(viewLifecycleOwner) { - canScoreTaks = viewModel.isPersonalBoard + canScoreTasks = viewModel.isPersonalBoard updateTaskSubscription(it) } lifecycleScope.launch { @@ -324,7 +324,7 @@ open class TaskRecyclerViewFragment : } // Factor in if adventure guide is shown. if (recyclerAdapter?.showAdventureGuide == true) { - newPosition = newPosition - 1 + newPosition -= 1 } lifecycleScope.launchCatching { taskRepository.updateTaskPosition( diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt index e468501c5..5b3c67e49 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt @@ -23,7 +23,7 @@ import androidx.viewpager2.widget.ViewPager2 import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.TagRepository import com.habitrpg.android.habitica.databinding.FragmentViewpagerBinding -import com.habitrpg.android.habitica.extensions.setTintWith +import com.habitrpg.common.habitica.extensions.setTintWith import com.habitrpg.android.habitica.helpers.Analytics import com.habitrpg.android.habitica.helpers.EventCategory import com.habitrpg.android.habitica.helpers.HitType 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 48efbb405..0f744c5be 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 @@ -26,7 +26,7 @@ import androidx.appcompat.view.menu.ActionMenuItemView import androidx.appcompat.widget.ActionMenuView import androidx.appcompat.widget.Toolbar import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.extensions.waitForLayout +import com.habitrpg.common.habitica.extensions.waitForLayout import com.habitrpg.common.habitica.extensions.getThemeColor /** diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt index 05c8978b3..579812c33 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt @@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.ChatItemBinding import com.habitrpg.android.habitica.databinding.TavernChatIntroItemBinding import com.habitrpg.android.habitica.extensions.getAgoString -import com.habitrpg.android.habitica.extensions.setScaledPadding +import com.habitrpg.common.habitica.extensions.setScaledPadding import com.habitrpg.android.habitica.models.members.Member import com.habitrpg.android.habitica.models.social.ChatMessage import com.habitrpg.android.habitica.models.user.Permission 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 5bb436e8d..bdf537b59 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 @@ -10,11 +10,8 @@ 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.ui.menu.BottomSheetMenu -import com.habitrpg.android.habitica.ui.menu.BottomSheetMenuItem import com.habitrpg.android.habitica.ui.views.showAsBottomSheet import com.habitrpg.android.habitica.ui.views.stable.MountBottomSheet -import com.habitrpg.android.habitica.ui.views.stable.PetBottomSheet import com.habitrpg.common.habitica.extensions.DataBindingUtils import dagger.hilt.android.internal.managers.ViewComponentManager 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 a93671845..cc4e6d923 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 @@ -27,7 +27,7 @@ import kotlinx.coroutines.MainScope import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -abstract class BaseTaskViewHolder constructor( +abstract class BaseTaskViewHolder( itemView: View, var scoreTaskFunc: ((Task, TaskDirection) -> Unit), var openTaskFunc: ((Pair) -> Unit), diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt index 1a975f07b..4571ab6b1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt @@ -37,8 +37,8 @@ class InboxViewModel @Inject constructor( userViewModel: MainUserViewModel, val socialRepository: SocialRepository ) : BaseViewModel(userRepository, userViewModel) { - val recipientID: String? = savedStateHandle.get("userID") - val recipientUsername: String? = savedStateHandle.get("username") + val recipientID: String? = savedStateHandle["userID"] + val recipientUsername: String? = savedStateHandle["username"] private var memberIDFlow = MutableStateFlow(null) val memberIDState: StateFlow = memberIDFlow @@ -54,7 +54,6 @@ class InboxViewModel @Inject constructor( .filterNotNull() .flatMapLatest { socialRepository.retrieveMember(it).toFlow() } .asLiveData() - fun getMemberData(): LiveData = member fun setMemberID(memberID: String) { if (memberID == memberIDState.value) return 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 1f05cb850..e06f83282 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 @@ -70,10 +70,6 @@ class MainUserViewModel @Inject constructor(private val authenticationHandler: A } .asLiveData() - fun onCleared() { - userRepository.close() - } - fun updateUser(path: String, value: Any) { MainScope().launch(ExceptionHandler.coroutine()) { userRepository.updateUser(path, value) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/StableViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/StableViewModel.kt index f48f162e3..25d41ac84 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/StableViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/StableViewModel.kt @@ -102,7 +102,7 @@ class StableViewModel @Inject constructor( var lastSection: StableSection? = null for (animal in unsortedAnimals) { val identifier = if (animal.animal.isNotEmpty() && (animal.type != "special" && animal.type != "wacky")) animal.animal else animal.key - val lastIdentifier = if (lastAnimal.animal.isNotEmpty()) lastAnimal.animal else lastAnimal.key + val lastIdentifier = lastAnimal.animal.ifEmpty { lastAnimal.key } if (animal.type == "premium") { if (!items.contains(lastAnimal)) { items.add(lastAnimal) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt index 4562ccf81..6686e940a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt @@ -102,7 +102,6 @@ fun getTranslatedClassName(resources : Resources, className : String?) : String } } -@OptIn(ExperimentalAnimationApi::class) @Composable fun AppHeaderView( user : Avatar?, diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/BottomSheetUtils.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/BottomSheetUtils.kt index 54a47c8bc..929677ed9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/BottomSheetUtils.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/BottomSheetUtils.kt @@ -4,14 +4,12 @@ import android.app.Activity import android.view.ViewGroup import androidx.activity.compose.BackHandler import androidx.compose.foundation.background -import androidx.compose.foundation.border import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.MaterialTheme import androidx.compose.material.ModalBottomSheetLayout import androidx.compose.material.ModalBottomSheetValue import androidx.compose.material.rememberModalBottomSheetState diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/DragLinearLayout.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/DragLinearLayout.kt index 10dfad7ad..204d71f97 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/DragLinearLayout.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/DragLinearLayout.kt @@ -427,9 +427,7 @@ open class DragLinearLayout @JvmOverloads constructor(context: Context, attrs: A val absTop = top - startScrollY + currentTop val height = containerScrollView!!.height - val delta: Int - - delta = when { + val delta: Int = when { absTop < scrollSensitiveHeight -> { (-MAX_DRAG_SCROLL_SPEED * smootherStep(scrollSensitiveHeight.toFloat(), 0f, absTop.toFloat())).toInt() } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaListPreference.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaListPreference.kt index f3802fc4d..46c677d2d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaListPreference.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaListPreference.kt @@ -6,7 +6,7 @@ import android.util.AttributeSet import android.widget.TextView import androidx.preference.ListPreference import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.extensions.setScaledPadding +import com.habitrpg.common.habitica.extensions.setScaledPadding class HabiticaListPreference : ListPreference { constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : 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 452ff55f8..b3b0b6a52 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,9 +6,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.animation.AccelerateInterpolator -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 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/NPCBannerView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/NPCBannerView.kt index c8e184b66..84b86894b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/NPCBannerView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/NPCBannerView.kt @@ -21,7 +21,7 @@ class NPCBannerView(context: Context, attrs: AttributeSet?) : FrameLayout(contex var shopSpriteSuffix: String? = null set(value) { - field = if (value == null || value.isEmpty() || value.startsWith("_")) { + field = if (value.isNullOrEmpty() || value.startsWith("_")) { value } else { "_$value" diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/PixelArtView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/PixelArtView.kt index bd4a2e8c6..99a610d9a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/PixelArtView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/PixelArtView.kt @@ -1,6 +1,5 @@ package com.habitrpg.android.habitica.ui.views -import android.graphics.Bitmap import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.ImageBitmap diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SegmentedControl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SegmentedControl.kt index aeaf3d75e..293e68077 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SegmentedControl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/SegmentedControl.kt @@ -11,7 +11,7 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.OutlinedButton import androidx.compose.material.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -38,7 +38,7 @@ fun SegmentedControl( cornerRadius: Int = 10, onItemSelection: (selectedItemIndex: Int) -> Unit ) { - val selectedIndex = remember { mutableStateOf(defaultSelectedItemIndex) } + val selectedIndex = remember { mutableIntStateOf(defaultSelectedItemIndex) } val color = MaterialTheme.colors.primary Row( modifier = Modifier 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 6d41cf526..6b95d279e 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 @@ -24,7 +24,7 @@ class Typewriter : androidx.appcompat.widget.AppCompatTextView { private var delay: Long = 30 val isAnimating: Boolean - get() = index < stringBuilder?.length ?: 0 + get() = index < (stringBuilder?.length ?: 0) constructor(context: Context) : super(context) { setupTextColors(context) 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 bac3d93a1..cbb5c0dcf 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 @@ -25,7 +25,11 @@ class ValidatingEditText @JvmOverloads constructor( set(value) { binding.errorText.text = value } - + var hint: CharSequence? + get() = binding.editText.hint + set(value) { + binding.editText.hint = value + } var validator: ((String?) -> Boolean)? = null val isValid: Boolean diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt index c81e9ac7b..295e7944d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaProgressDialog.kt @@ -1,7 +1,6 @@ package com.habitrpg.android.habitica.ui.views.dialogs import android.content.Context -import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.layout.size import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView @@ -9,9 +8,9 @@ import androidx.compose.ui.unit.dp import androidx.fragment.app.FragmentActivity import androidx.lifecycle.setViewTreeLifecycleOwner import androidx.savedstate.setViewTreeSavedStateRegistryOwner +import com.habitrpg.common.habitica.extensions.dpToPx import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.common.habitica.views.HabiticaCircularProgressView -import com.habitrpg.common.habitica.extensions.dpToPx class HabiticaProgressDialog(context: Context) : HabiticaAlertDialog(context) { 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 5e6a47ab8..5057f5429 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 @@ -32,12 +32,8 @@ import javax.inject.Inject */ class InsufficientGemsDialog(val parentActivity: Activity, var gemPrice: Int) : InsufficientCurrencyDialog(parentActivity) { - - @Inject - lateinit var configManager: AppConfigManager - - @Inject - lateinit var purchaseHandler: PurchaseHandler + var configManager: AppConfigManager + var purchaseHandler: PurchaseHandler @EntryPoint @InstallIn(SingletonComponent::class) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/LockableScrollView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/LockableScrollView.kt index 5f61df1c0..2604272f4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/LockableScrollView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/LockableScrollView.kt @@ -11,7 +11,7 @@ class LockableScrollView(context: Context, attrs: AttributeSet) : NestedScrollVi override fun onTouchEvent(ev: MotionEvent): Boolean { return if (ev.action == MotionEvent.ACTION_DOWN) { - if (isScrollable) super.onTouchEvent(ev) else isScrollable + if (isScrollable) super.onTouchEvent(ev) else false } else { super.onTouchEvent(ev) } 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 1b9d9e6d7..49f6c7716 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 @@ -40,12 +40,12 @@ class LoginBackgroundView(context: Context, attrs: AttributeSet?) : RelativeLayo init { val metrics = DisplayMetrics() val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - viewHeight = windowManager.currentWindowMetrics.bounds.height() + viewHeight = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + windowManager.currentWindowMetrics.bounds.height() } else { @Suppress("DEPRECATION") windowManager.defaultDisplay.getMetrics(metrics) - viewHeight = (metrics.heightPixels * SIZE_FACTOR).toInt() + (metrics.heightPixels * SIZE_FACTOR).toInt() } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/StarView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/StarView.kt index d7c004062..979916af4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/StarView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/login/StarView.kt @@ -41,7 +41,7 @@ class StarView : AppCompatImageView { } private fun runBlink() { - if (blinkIndex >= blinkDurations?.size ?: 0) { + if (blinkIndex >= (blinkDurations?.size ?: 0)) { blinkIndex = 0 } val animator = ObjectAnimator.ofFloat(this, View.ALPHA, 0f) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationItem.kt index 58d387ace..ece808ec7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationItem.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/BottomNavigationItem.kt @@ -9,7 +9,7 @@ import android.widget.RelativeLayout import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.BottomNavigationItemBinding -import com.habitrpg.android.habitica.extensions.setTintWith +import com.habitrpg.common.habitica.extensions.setTintWith import com.habitrpg.common.habitica.extensions.getThemeColor import com.habitrpg.common.habitica.extensions.isUsingNightModeResources import com.habitrpg.common.habitica.extensions.layoutInflater diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt index a41101502..f4abc290a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt @@ -15,7 +15,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.children import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.MainNavigationViewBinding -import com.habitrpg.android.habitica.extensions.setTintWith +import com.habitrpg.common.habitica.extensions.setTintWith import com.habitrpg.common.habitica.extensions.getThemeColor import com.habitrpg.common.habitica.extensions.layoutInflater import com.habitrpg.shared.habitica.models.tasks.TaskType diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/promo/BirthdayMenuView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/promo/BirthdayMenuView.kt index cc48d1d78..c456d7645 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/promo/BirthdayMenuView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/promo/BirthdayMenuView.kt @@ -17,7 +17,7 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment @@ -33,8 +33,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.extensions.getShortRemainingString -import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.ui.views.PixelArtView +import com.habitrpg.common.habitica.helpers.MainNavigationController import kotlinx.coroutines.cancel import kotlinx.coroutines.delay import java.util.Date @@ -145,7 +145,7 @@ fun TimeRemainingText( fontSize: TextUnit, fontWeight: FontWeight ) { - var value by remember { mutableStateOf(0) } + var value by remember { mutableIntStateOf(0) } LaunchedEffect(value) { val diff = endDate.time - Date().time if (diff.milliseconds > 1.hours) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/setup/AvatarCategoryView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/setup/AvatarCategoryView.kt index fb5dfda70..3e2764517 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/setup/AvatarCategoryView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/setup/AvatarCategoryView.kt @@ -9,7 +9,7 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.extensions.setTintWith +import com.habitrpg.common.habitica.extensions.setTintWith class AvatarCategoryView(context: Context, attrs: AttributeSet?) : LinearLayout(context, attrs) { 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 f9906a37c..58ff6b1cc 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 @@ -3,7 +3,6 @@ package com.habitrpg.android.habitica.ui.views.shops import android.app.Activity import android.content.Context import android.graphics.drawable.BitmapDrawable -import android.view.LayoutInflater import android.view.View import android.widget.ImageView import android.widget.LinearLayout @@ -27,7 +26,6 @@ import com.habitrpg.android.habitica.helpers.Analytics import com.habitrpg.android.habitica.helpers.EventCategory import com.habitrpg.android.habitica.helpers.HapticFeedbackManager import com.habitrpg.android.habitica.helpers.HitType -import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.models.shops.Shop import com.habitrpg.android.habitica.models.shops.ShopItem import com.habitrpg.android.habitica.models.user.OwnedItem @@ -47,6 +45,7 @@ import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientS import com.habitrpg.android.habitica.ui.views.tasks.form.StepperValueFormView import com.habitrpg.common.habitica.extensions.layoutInflater import com.habitrpg.common.habitica.helpers.ExceptionHandler +import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.common.habitica.helpers.launchCatching import dagger.hilt.android.internal.managers.ViewComponentManager import kotlinx.coroutines.Dispatchers diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/InvitationsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/InvitationsView.kt index 12db2f6c0..4bab2fd51 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/InvitationsView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/InvitationsView.kt @@ -9,7 +9,7 @@ import androidx.lifecycle.lifecycleScope import com.habitrpg.android.habitica.MainNavDirections import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.ViewInvitationBinding -import com.habitrpg.android.habitica.extensions.flash +import com.habitrpg.common.habitica.extensions.flash import com.habitrpg.android.habitica.helpers.HapticFeedbackManager import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.models.invitations.GenericInvitation diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt index a2adaaedf..b48e83c3d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt @@ -1,25 +1,17 @@ package com.habitrpg.android.habitica.ui.views.social import android.content.Context -import android.graphics.Canvas -import android.graphics.RectF import android.util.AttributeSet import android.view.LayoutInflater -import android.view.View import android.widget.LinearLayout -import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.QuestCollectBinding import com.habitrpg.android.habitica.databinding.QuestProgressOldBinding -import com.habitrpg.android.habitica.extensions.setScaledPadding +import com.habitrpg.common.habitica.extensions.setScaledPadding import com.habitrpg.android.habitica.models.inventory.QuestContent import com.habitrpg.android.habitica.models.inventory.QuestProgress import com.habitrpg.android.habitica.models.inventory.QuestProgressCollect -import com.habitrpg.android.habitica.models.user.User -import com.habitrpg.android.habitica.ui.views.HabiticaIcons -import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import com.habitrpg.common.habitica.extensions.dpToPx -import com.habitrpg.common.habitica.extensions.getThemeColor import com.habitrpg.common.habitica.extensions.layoutInflater import com.habitrpg.common.habitica.extensions.loadImage diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt deleted file mode 100644 index d6b43a192..000000000 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt +++ /dev/null @@ -1,298 +0,0 @@ -package com.habitrpg.android.habitica.ui.views.social - -import android.content.Context -import android.content.SharedPreferences -import android.graphics.Bitmap -import android.graphics.Canvas -import android.graphics.RectF -import android.graphics.drawable.GradientDrawable -import android.util.AttributeSet -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.LinearLayout -import androidx.appcompat.app.AlertDialog -import androidx.core.content.ContextCompat -import androidx.core.content.edit -import androidx.core.graphics.drawable.toBitmap -import com.habitrpg.android.habitica.R -import com.habitrpg.android.habitica.databinding.QuestCollectBinding -import com.habitrpg.android.habitica.databinding.QuestProgressBinding -import com.habitrpg.android.habitica.models.inventory.Quest -import com.habitrpg.android.habitica.models.inventory.QuestContent -import com.habitrpg.android.habitica.models.inventory.QuestProgressCollect -import com.habitrpg.android.habitica.models.user.User -import com.habitrpg.android.habitica.ui.views.HabiticaIcons -import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper -import com.habitrpg.android.habitica.ui.views.NPCBannerView -import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog -import com.habitrpg.common.habitica.extensions.DataBindingUtils -import com.habitrpg.common.habitica.extensions.layoutInflater -import com.habitrpg.common.habitica.extensions.loadImage -import com.habitrpg.common.habitica.helpers.launchCatching -import com.habitrpg.common.habitica.helpers.setMarkdown -import kotlinx.coroutines.MainScope - -class QuestProgressView : LinearLayout { - private val binding = QuestProgressBinding.inflate(context.layoutInflater, this, true) - - private val rect = RectF() - private val displayDensity = context.resources.displayMetrics.density - - var quest: QuestContent? = null - set(value) { - field = value - configure() - } - var progress: Quest? = null - set(value) { - field = value - configure() - } - - constructor(context: Context) : super(context) { - setupView(context) - } - - constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { - setupView(context) - } - - private var preferences: SharedPreferences? = null - - private fun setupView(context: Context) { - setWillNotDraw(false) - - binding.caretView.setImageBitmap(HabiticaIconsHelper.imageOfCaret(ContextCompat.getColor(context, R.color.white), true)) - binding.questImageTitle.setOnClickListener { - if (binding.questImageWrapper.visibility == View.VISIBLE) { - hideQuestImage() - } else { - showQuestImage() - } - } - - binding.pendingDamageIconView.setImageBitmap(HabiticaIconsHelper.imageOfDamage()) - binding.bossHealthView.setSecondaryIcon(HabiticaIconsHelper.imageOfHeartDarkBg()) - binding.bossRageView.setSecondaryIcon(HabiticaIconsHelper.imageOfRage()) - - binding.rageStrikeDescriptionView.setOnClickListener { showStrikeDescriptionAlert() } - - val density = resources.displayMetrics.density - - binding.questDescriptionSection.setCaretOffset((12 * density).toInt()) - - preferences = context.getSharedPreferences("collapsible_sections", 0) - if (preferences?.getBoolean("boss_art_collapsed", false) == true) { - hideQuestImage() - } else { - showQuestImage() - } - } - - override fun onDraw(canvas: Canvas) { - if (quest?.isValid == true) { - val colors = quest?.colors - if (colors != null) { - rect.set(0.0f, 0.0f, width.toFloat() / displayDensity, height.toFloat() / displayDensity) - canvas.scale(displayDensity, displayDensity) - HabiticaIcons.drawQuestBackground(canvas, rect, colors.darkColor, colors.mediumColor, colors.extraLightColor) - canvas.scale(1.0f / displayDensity, 1.0f / displayDensity) - } - } - super.onDraw(canvas) - } - - private fun configure() { - val quest = this.quest - val progress = this.progress - if (quest == null || progress == null || !quest.isValid || !progress.isValid) { - return - } - binding.collectionContainer.removeAllViews() - if (quest.isBossQuest) { - binding.bossNameView.text = quest.boss?.name - binding.bossNameView.visibility = View.VISIBLE - binding.bossHealthView.visibility = View.VISIBLE - binding.bossHealthView.set(progress.progress?.hp ?: 0.0, quest.boss?.hp?.toDouble() ?: 0.0) - binding.collectedItemsNumberView.visibility = View.GONE - - if (quest.boss?.hasRage == true) { - binding.rageMeterView.visibility = View.VISIBLE - binding.bossRageView.visibility = View.VISIBLE - binding.rageMeterView.text = quest.boss?.rage?.title - binding.bossRageView.set(progress.progress?.rage ?: 0.0, quest.boss?.rage?.value ?: 0.0) - if (progress.hasRageStrikes()) { - setupRageStrikeViews() - } else { - binding.rageStrikeDescriptionView.visibility = View.GONE - } - } else { - binding.rageMeterView.visibility = View.GONE - binding.bossRageView.visibility = View.GONE - binding.rageStrikeDescriptionView.visibility = View.GONE - } - } else { - binding.bossNameView.visibility = View.GONE - binding.bossHealthView.visibility = View.GONE - binding.rageMeterView.visibility = View.GONE - binding.bossRageView.visibility = View.GONE - binding.rageStrikeDescriptionView.visibility = View.GONE - binding.collectedItemsNumberView.visibility = View.VISIBLE - - val collection = progress.progress?.collect - if (collection != null) { - setCollectionViews(collection, quest) - } - } - binding.questDescription.setMarkdown(quest.notes) - binding.questImageView.loadImage("quest_" + quest.key, "gif") - binding.questFlourishesImageView.loadImage("quest_" + quest.key + "_flourishes") - val lightColor = quest.colors?.lightColor - if (lightColor != null) { - binding.questImageSeparator.setBackgroundColor(lightColor) - - val gradientDrawable = GradientDrawable( - GradientDrawable.Orientation.TOP_BOTTOM, - intArrayOf(ContextCompat.getColor(context, R.color.transparent), lightColor) - ) - gradientDrawable.cornerRadius = 0f - binding.questImageWrapper.background = gradientDrawable - } - updateCaretImage() - binding.questDescriptionSection.caretColor = quest.colors?.extraLightColor ?: 0 - binding.artCreditTextView.setTextColor(quest.colors?.extraLightColor ?: 0) - } - - fun configure(user: User) { - binding.pendingDamageTextView.text = context.getString(R.string.damage_pending, (user.party?.quest?.progress?.up ?: 0F)) - val collectedItems = user.party?.quest?.progress?.collectedItems ?: 0 - binding.collectedItemsNumberView.text = context.getString(R.string.quest_items_found, collectedItems) - } - - private fun setupRageStrikeViews() { - binding.rageStrikeDescriptionView.visibility = View.VISIBLE - binding.rageStrikeDescriptionView.text = context.getString(R.string.rage_strike_count, progress?.activeRageStrikeNumber, progress?.rageStrikes?.size ?: 0) - - binding.rageStrikeContainer.removeAllViews() - progress?.rageStrikes?.sortedByDescending { it.wasHit }?.forEach { strike -> - val iconView = ImageView(context) - if (strike.wasHit) { - DataBindingUtils.loadImage(context, "rage_strike_${strike.key}") { - MainScope().launchCatching { - val bitmap = it.toBitmap() - val displayDensity = resources.displayMetrics.density - val width = bitmap.width * displayDensity - val height = bitmap.height * displayDensity - val scaledImage = Bitmap.createScaledBitmap(bitmap, width.toInt(), height.toInt(), false) - iconView.setImageBitmap(HabiticaIconsHelper.imageOfRageStrikeActive(context, scaledImage)) - iconView.setOnClickListener { - showActiveStrikeAlert(strike.key) - } - } - } - } else { - iconView.setImageBitmap(HabiticaIconsHelper.imageOfRageStrikeInactive()) - iconView.setOnClickListener { showPendingStrikeAlert() } - } - val params = LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) - val spacing = context.resources.getDimension(R.dimen.spacing_medium).toInt() - params.setMargins(spacing, 0, spacing, 0) - binding.rageStrikeContainer.addView(iconView, params) - } - } - - private fun showActiveStrikeAlert(key: String) { - val alert = HabiticaAlertDialog(context) - alert.setTitle(context.getString(R.string.strike_active_title, getLocationName(key))) -// alert.setSubtitle(context.getString(R.string.strike_active_subtitle, getNpcName(key))) - alert.setMessage(context.getString(R.string.strike_active_description, getLongNPCName(key), quest?.boss?.name ?: "", getLocationName(key))) - - val npcBannerView = NPCBannerView(context, null) - npcBannerView.shopSpriteSuffix = quest?.key ?: "" - npcBannerView.identifier = key - alert.setAdditionalContentView(npcBannerView) - - alert.setButton(AlertDialog.BUTTON_POSITIVE, context.getString(R.string.close)) { dialog, _ -> - dialog.dismiss() - } - alert.show() - } - - private fun showPendingStrikeAlert() { - val alert = HabiticaAlertDialog(context) - alert.setTitle(R.string.pending_strike_title) -// alert.setSubtitle(R.string.pending_strike_subtitle) - // alert.setMessage(R.string.pending_strike_description) - alert.setButton(AlertDialog.BUTTON_POSITIVE, context.getString(R.string.close)) { dialog, _ -> - dialog.dismiss() - } - alert.show() - } - - private fun showStrikeDescriptionAlert() { - val alert = HabiticaAlertDialog(context) - alert.setTitle(R.string.strike_description_title) -// alert.setSubtitle(R.string.strike_description_subtitle) - // alert.setMessage(R.string.strike_description_description) - alert.setButton(AlertDialog.BUTTON_POSITIVE, context.getString(R.string.close)) { dialog, _ -> - dialog.dismiss() - } - alert.show() - } - - private fun setCollectionViews(collection: List, quest: QuestContent) { - val inflater = LayoutInflater.from(context) - for (collect in collection) { - val contentCollect = quest.getCollectWithKey(collect.key) ?: continue - val collectBinding = QuestCollectBinding.inflate(inflater, binding.collectionContainer, true) - collectBinding.iconView.loadImage("quest_" + quest.key + "_" + collect.key) - collectBinding.nameView.text = contentCollect.text - collectBinding.valueView.set(collect.count.toDouble(), contentCollect.count.toDouble()) - } - } - - private fun getLocationName(key: String): String { - return when (key) { - "market" -> context.getString(R.string.market) - "questShop" -> context.getString(R.string.questShop) - "seasonalShop" -> context.getString(R.string.seasonalShop) - "stable" -> context.getString(R.string.sidebar_stable) - else -> "" - } - } - - private fun getLongNPCName(key: String): String { - return when (key) { - "market" -> context.getString(R.string.market_owner_long) - "tavern" -> context.getString(R.string.tavern_owner_long) - "questShop" -> context.getString(R.string.questShop_owner_long) - "seasonalShop" -> context.getString(R.string.seasonalShop_owner_long) - "stable" -> context.getString(R.string.stable_owner_long) - else -> "" - } - } - - private fun showQuestImage() { - binding.questImageWrapper.visibility = View.VISIBLE - binding.questImageView.loadImage("quest_" + quest?.key) - preferences?.edit { putBoolean("boss_art_collapsed", false) } - updateCaretImage() - } - - private fun hideQuestImage() { - binding.questImageWrapper.visibility = View.GONE - preferences?.edit { putBoolean("boss_art_collapsed", true) } - - updateCaretImage() - } - - private fun updateCaretImage() { - if (binding.questImageWrapper.visibility == View.VISIBLE) { - binding.caretView.setImageBitmap(HabiticaIconsHelper.imageOfCaret(quest?.colors?.extraLightColor ?: 0, true)) - } else { - binding.caretView.setImageBitmap(HabiticaIconsHelper.imageOfCaret(quest?.colors?.extraLightColor ?: 0, false)) - } - } -} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt index e861effd1..e76bc4d6f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt @@ -1,23 +1,15 @@ package com.habitrpg.android.habitica.ui.views.stable -import com.habitrpg.android.habitica.models.inventory.Animal -import com.habitrpg.android.habitica.models.inventory.Mount -import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.CubicBezierEasing import androidx.compose.animation.core.FastOutSlowInEasing import androidx.compose.animation.core.LinearOutSlowInEasing import androidx.compose.animation.core.RepeatMode import androidx.compose.animation.core.StartOffset import androidx.compose.animation.core.animateFloat -import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.infiniteRepeatable import androidx.compose.animation.core.keyframes import androidx.compose.animation.core.rememberInfiniteTransition import androidx.compose.animation.core.tween -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.compose.animation.scaleIn -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues @@ -26,37 +18,32 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width -import androidx.compose.material.LinearProgressIndicator import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip -import androidx.compose.ui.draw.scale import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap -import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.imageResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.zIndex import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.interactors.ShareMountUseCase +import com.habitrpg.android.habitica.models.inventory.Animal +import com.habitrpg.android.habitica.models.inventory.Mount import com.habitrpg.android.habitica.ui.theme.colors -import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.android.habitica.ui.views.BackgroundScene import com.habitrpg.android.habitica.ui.views.HabiticaButton import com.habitrpg.common.habitica.helpers.launchCatching +import com.habitrpg.common.habitica.theme.HabiticaTheme import kotlinx.coroutines.MainScope import java.util.Calendar -import kotlin.math.sin @Composable private fun getBackgroundPainter(): ImageBitmap { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountView.kt index cc669d2a9..db89e5964 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountView.kt @@ -6,7 +6,6 @@ import android.view.ViewGroup import android.widget.FrameLayout import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.viewinterop.AndroidView import com.habitrpg.android.habitica.models.inventory.Mount import com.habitrpg.common.habitica.extensions.loadImage diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/PetBottomSheet.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/PetBottomSheet.kt index 896527df8..d4dadf8af 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/PetBottomSheet.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/PetBottomSheet.kt @@ -1,6 +1,5 @@ package com.habitrpg.android.habitica.ui.views.stable -import android.graphics.Bitmap import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.CubicBezierEasing import androidx.compose.animation.core.FastOutSlowInEasing @@ -16,7 +15,6 @@ import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.scaleIn -import androidx.compose.foundation.Canvas import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -47,16 +45,8 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.scale import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap -import androidx.compose.ui.graphics.ImageShader -import androidx.compose.ui.graphics.Paint import androidx.compose.ui.graphics.StrokeCap -import androidx.compose.ui.graphics.TileMode -import androidx.compose.ui.graphics.asAndroidBitmap -import androidx.compose.ui.graphics.asImageBitmap -import androidx.compose.ui.graphics.drawscope.drawIntoCanvas -import androidx.compose.ui.graphics.nativeCanvas import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.imageResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight @@ -66,12 +56,10 @@ import androidx.compose.ui.unit.sp import androidx.compose.ui.zIndex import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.extensions.addCloseButton -import com.habitrpg.android.habitica.interactors.ShareMountUseCase import com.habitrpg.android.habitica.interactors.SharePetUseCase import com.habitrpg.android.habitica.models.inventory.Food import com.habitrpg.android.habitica.models.inventory.Pet import com.habitrpg.android.habitica.ui.theme.colors -import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.android.habitica.ui.views.BackgroundScene import com.habitrpg.android.habitica.ui.views.HabiticaButton import com.habitrpg.android.habitica.ui.views.PixelArtView @@ -79,6 +67,7 @@ import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.common.habitica.extensions.getThemeColor import com.habitrpg.common.habitica.helpers.MainNavigationController import com.habitrpg.common.habitica.helpers.launchCatching +import com.habitrpg.common.habitica.theme.HabiticaTheme import com.habitrpg.shared.habitica.models.responses.FeedResponse import kotlinx.coroutines.MainScope import kotlinx.coroutines.delay diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/BulkAllocateStatsDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/BulkAllocateStatsDialog.kt index cf13d08f6..d37460899 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/BulkAllocateStatsDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/BulkAllocateStatsDialog.kt @@ -100,7 +100,7 @@ class BulkAllocateStatsDialog(context: Context, private val userRepository: User if (diff > 0) { var highestSlider: StatsSliderView? = null if (excludedSlider != binding.strengthSliderView) { - highestSlider = getSliderWithHigherValue(highestSlider, binding.strengthSliderView) + highestSlider = getSliderWithHigherValue(null, binding.strengthSliderView) } if (excludedSlider != binding.intelligenceSliderView) { highestSlider = getSliderWithHigherValue(highestSlider, binding.intelligenceSliderView) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsSliderView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsSliderView.kt index 2a5862c38..3ed4e7878 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsSliderView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsSliderView.kt @@ -11,7 +11,7 @@ import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.StatsSliderViewBinding import com.habitrpg.android.habitica.extensions.AfterChangeTextWatcher -import com.habitrpg.android.habitica.extensions.setTintWith +import com.habitrpg.common.habitica.extensions.setTintWith import com.habitrpg.android.habitica.extensions.styledAttributes import com.habitrpg.common.habitica.extensions.layoutInflater diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsView.kt index dcbc70a25..e5f498ce7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stats/StatsView.kt @@ -33,7 +33,7 @@ import androidx.compose.ui.unit.sp import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.StatsViewBinding -import com.habitrpg.android.habitica.extensions.setTintWith +import com.habitrpg.common.habitica.extensions.setTintWith import com.habitrpg.android.habitica.helpers.HapticFeedbackManager import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import com.habitrpg.common.habitica.extensions.getThemeColor diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriberBenefitView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriberBenefitView.kt index fe6022458..3edb350da 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriberBenefitView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriberBenefitView.kt @@ -4,13 +4,10 @@ import android.content.Context import android.util.AttributeSet import android.widget.LinearLayout import androidx.core.view.isVisible -import androidx.lifecycle.lifecycleScope import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.SubscriptionBenefitsBinding import com.habitrpg.android.habitica.helpers.AppConfigManager -import com.habitrpg.android.habitica.helpers.PurchaseHandler -import com.habitrpg.android.habitica.interactors.InsufficientGemsUseCase import com.habitrpg.common.habitica.extensions.layoutInflater import com.habitrpg.common.habitica.extensions.loadImage import com.habitrpg.common.habitica.helpers.launchCatching diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionOptionView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionOptionView.kt index 5d3afd03a..a0c362179 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionOptionView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionOptionView.kt @@ -49,7 +49,7 @@ class SubscriptionOptionView(context: Context, attrs: AttributeSet) : FrameLayou } fun setFlagText(text: CharSequence?) { - if (text?.length ?: 0 == 0) { + if ((text?.length ?: 0) == 0) { binding.flagFlap.visibility = View.GONE binding.flagTextview.visibility = View.GONE } else { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/AssignSheet.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/AssignSheet.kt index 50dc6674f..ea7b13e53 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/AssignSheet.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/AssignSheet.kt @@ -98,7 +98,7 @@ fun AssignSheetRow( }, modifier = modifier .clickable { - member.id.let { onAssignClick(it) } + onAssignClick(member.id) } .padding(30.dp, 12.dp) .heightIn(min = 24.dp) 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 e5e1ad959..099d91d0c 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 @@ -79,13 +79,13 @@ class TaskFilterDialog(context: Context, private val repository: TagRepository, // Need to use this instead of RadioGroup.onCheckedChangeListener, because that fires twice per change binding.allTaskFilter.setOnClickListener { - onCheckedChanged(binding.taskFilterWrapper, binding.taskFilterWrapper.checkedRadioButtonId) + onCheckedChanged(binding.taskFilterWrapper.checkedRadioButtonId) } binding.secondTaskFilter.setOnClickListener { - onCheckedChanged(binding.taskFilterWrapper, binding.taskFilterWrapper.checkedRadioButtonId) + onCheckedChanged(binding.taskFilterWrapper.checkedRadioButtonId) } binding.thirdTaskFilter.setOnClickListener { - onCheckedChanged(binding.taskFilterWrapper, binding.taskFilterWrapper.checkedRadioButtonId) + onCheckedChanged(binding.taskFilterWrapper.checkedRadioButtonId) } binding.clearButton.setOnClickListener { @@ -345,7 +345,7 @@ class TaskFilterDialog(context: Context, private val repository: TagRepository, filtersChanged() } - private fun onCheckedChanged(group: RadioGroup, @IdRes checkedId: Int) { + private fun onCheckedChanged(@IdRes checkedId: Int) { val newFilter = when (checkedId) { R.id.second_task_filter -> when (taskType) { TaskType.HABIT -> Task.FILTER_WEAK diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt index fa42706f7..a042a7c51 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt @@ -70,7 +70,6 @@ fun HabitScoringSelector( } } -@OptIn(ExperimentalAnimationApi::class) @Composable private fun HabitScoringSelection( selected: Boolean, diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt index 2fc9e8690..dbf6481e0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt @@ -70,7 +70,6 @@ fun TaskDifficultySelector( } } -@OptIn(ExperimentalAnimationApi::class) @Composable private fun TaskDifficultySelection( value: TaskDifficulty, diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskFormSelector.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskFormSelector.kt index c0f863476..3ea71bed7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskFormSelector.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskFormSelector.kt @@ -68,7 +68,6 @@ fun TaskFormSelector( } } -@OptIn(ExperimentalAnimationApi::class) @Composable private fun TaskFormSelection( value: V, 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 fca57d36d..c3f361a59 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 @@ -345,11 +345,11 @@ class TaskSchedulingControls @JvmOverloads constructor( private fun generateSummary() { var frequencyQualifier = "" - when (frequency) { - Frequency.DAILY -> frequencyQualifier = if (everyX == 1) "day" else "days" - Frequency.WEEKLY -> frequencyQualifier = if (everyX == 1) "week" else "weeks" - Frequency.MONTHLY -> frequencyQualifier = if (everyX == 1) "month" else "months" - Frequency.YEARLY -> frequencyQualifier = if (everyX == 1) "year" else "years" + frequencyQualifier = when (frequency) { + Frequency.DAILY -> if (everyX == 1) "day" else "days" + Frequency.WEEKLY -> if (everyX == 1) "week" else "weeks" + Frequency.MONTHLY -> if (everyX == 1) "month" else "months" + Frequency.YEARLY -> if (everyX == 1) "year" else "years" } var weekdays = if (frequency == Frequency.WEEKLY) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/WorldStateSerialization.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/WorldStateSerialization.kt index 21a939d39..6362213fe 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/WorldStateSerialization.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/WorldStateSerialization.kt @@ -68,7 +68,7 @@ class WorldStateSerialization : JsonDeserializer { state.events = events } } - } catch (e: Exception) { + } catch (_: Exception) { } return state 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 a935bf274..f736f4e8c 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 @@ -195,11 +195,10 @@ class AvatarStatsWidgetProvider : BaseWidgetProvider() { ) if (showAvatar[widgetId] == true) { - val finalRemoteViews = remoteViews avatarView.setAvatar(user) avatarView.onAvatarImageReady { bitmap -> - finalRemoteViews.setImageViewBitmap(R.id.avatar_view, bitmap) - appWidgetManager.partiallyUpdateAppWidget(widgetId, finalRemoteViews) + remoteViews.setImageViewBitmap(R.id.avatar_view, bitmap) + appWidgetManager.partiallyUpdateAppWidget(widgetId, remoteViews) } } diff --git a/Habitica/src/test/java/com/habitrpg/android/habitica/utils/DateDeserializerTest.kt b/Habitica/src/test/java/com/habitrpg/android/habitica/utils/DateDeserializerTest.kt index 4f1f85949..1c2461938 100644 --- a/Habitica/src/test/java/com/habitrpg/android/habitica/utils/DateDeserializerTest.kt +++ b/Habitica/src/test/java/com/habitrpg/android/habitica/utils/DateDeserializerTest.kt @@ -7,7 +7,7 @@ import java.util.Date class DateDeserializerTest : SerializerSpec({ val deserializer = DateDeserializer() - val referenceTimestamp: Long = 1443445200000 + val referenceTimestamp = 1443445200000 "deserialize" should { "validate normal date" { diff --git a/common/src/main/java/com/habitrpg/common/habitica/api/Server.kt b/common/src/main/java/com/habitrpg/common/habitica/api/Server.kt index ee245f620..5f61e0f4d 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/api/Server.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/api/Server.kt @@ -3,7 +3,7 @@ package com.habitrpg.common.habitica.api class Server { private var addr: String - constructor(addr: String) : this(addr, true) {} + constructor(addr: String) : this(addr, true) private constructor(addr: String, attachSuffix: Boolean) { if (attachSuffix) { if (addr.endsWith("/api/v4") || addr.endsWith("/api/v4/")) { diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/BaseExtensions.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/BaseExtensions.kt index 651c60e54..057623a0d 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/extensions/BaseExtensions.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/BaseExtensions.kt @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica.extensions +package com.habitrpg.common.habitica.extensions import com.habitrpg.common.habitica.helpers.launchCatching import kotlinx.coroutines.MainScope diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/BaseViewModelExtensions.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/BaseViewModelExtensions.kt index fa5d26922..e6b304ee1 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/extensions/BaseViewModelExtensions.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/BaseViewModelExtensions.kt @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica.extensions +package com.habitrpg.common.habitica.extensions import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LiveData diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/DataBindingUtils.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/DataBindingUtils.kt index 4b6c83ee3..56ef209ef 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/extensions/DataBindingUtils.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/DataBindingUtils.kt @@ -12,7 +12,6 @@ import androidx.core.content.res.ResourcesCompat import androidx.core.graphics.drawable.toBitmap import coil.imageLoader import coil.request.ImageRequest -import com.habitrpg.android.habitica.extensions.setTintWith import com.habitrpg.common.habitica.R import com.habitrpg.common.habitica.helpers.AppConfigManager import com.habitrpg.common.habitica.views.PixelArtView @@ -108,10 +107,7 @@ object DataBindingUtils { if (imageName == null) { return false } - if (imageName == "shop_") { - return false - } - return true + return imageName != "shop_" } class LayoutWeightAnimation(internal var view: View, internal var targetWeight: Float) : Animation() { diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/DrawableExtendsions.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/DrawableExtendsions.kt index ee091eec0..fad856808 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/extensions/DrawableExtendsions.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/DrawableExtendsions.kt @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica.extensions +package com.habitrpg.common.habitica.extensions import android.content.Context import android.graphics.PorterDuff @@ -6,7 +6,7 @@ import android.graphics.drawable.Drawable import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.DrawableCompat -public fun Drawable.setTintWith( +fun Drawable.setTintWith( context: Context, colorResource: Int, tintMode: PorterDuff.Mode = PorterDuff.Mode.MULTIPLY @@ -15,7 +15,7 @@ public fun Drawable.setTintWith( DrawableCompat.setTint(this, ContextCompat.getColor(context, colorResource)) } -public fun Drawable.setTintWith(color: Int, tintMode: PorterDuff.Mode = PorterDuff.Mode.MULTIPLY) { +fun Drawable.setTintWith(color: Int, tintMode: PorterDuff.Mode = PorterDuff.Mode.MULTIPLY) { DrawableCompat.setTint(this, color) DrawableCompat.setTintMode(this, tintMode) } diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/Optional.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/Optional.kt deleted file mode 100644 index 7b2a62423..000000000 --- a/common/src/main/java/com/habitrpg/common/habitica/extensions/Optional.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.habitrpg.common.habitica.extensions - -data class Optional(val value: T?) { - val isEmpty = value == null - - val assertedValue: T - get() { - assert(!isEmpty) - return value!! - } -} -fun T?.asOptional() = Optional(this) diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/ViewExt.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/ViewExt.kt index 10689bf1d..954a567ce 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/extensions/ViewExt.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/ViewExt.kt @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica.extensions +package com.habitrpg.common.habitica.extensions import android.animation.ObjectAnimator import android.content.Context @@ -6,8 +6,6 @@ import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.view.View import android.view.ViewTreeObserver -import com.habitrpg.common.habitica.extensions.dpToPx -import com.habitrpg.common.habitica.extensions.isUsingNightModeResources fun View.setScaledPadding(context: Context?, left: Int, top: Int, right: Int, bottom: Int) { this.setPadding(left.dpToPx(context), top.dpToPx(context), right.dpToPx(context), bottom.dpToPx(context)) @@ -54,4 +52,3 @@ fun View.flash() { originalColor?.let { setBackgroundColor(it) } ?: setBackgroundResource(0) }, 100) } - diff --git a/common/src/main/java/com/habitrpg/common/habitica/helpers/Animations.kt b/common/src/main/java/com/habitrpg/common/habitica/helpers/Animations.kt index 478c02369..010d9b28e 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/helpers/Animations.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/helpers/Animations.kt @@ -14,6 +14,7 @@ import android.view.animation.LinearInterpolator import android.view.animation.RotateAnimation import android.view.animation.TranslateAnimation import androidx.core.animation.doOnEnd +import kotlin.math.hypot import kotlin.random.Random object Animations { @@ -53,7 +54,7 @@ object Animations { if (!view.isAttachedToWindow) return val cx = view.width / 2 val cy = view.height / 2 - val finalRadius = Math.hypot(cx.toDouble(), cy.toDouble()).toFloat() + val finalRadius = hypot(cx.toDouble(), cy.toDouble()).toFloat() val anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, 0f, finalRadius) anim.duration = duration anim.interpolator = AccelerateInterpolator() @@ -64,7 +65,7 @@ object Animations { fun circularHide(view: View, duration: Long = 300) { val cx = view.width / 2 val cy = view.height / 2 - val initialRadius = Math.hypot(cx.toDouble(), cy.toDouble()).toFloat() + val initialRadius = hypot(cx.toDouble(), cy.toDouble()).toFloat() val anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, initialRadius, 0f) anim.duration = duration anim.interpolator = AccelerateInterpolator() diff --git a/common/src/main/java/com/habitrpg/common/habitica/helpers/AppConfigManager.kt b/common/src/main/java/com/habitrpg/common/habitica/helpers/AppConfigManager.kt index 1a4cb4b61..e099430f3 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/helpers/AppConfigManager.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/helpers/AppConfigManager.kt @@ -1,6 +1,6 @@ package com.habitrpg.common.habitica.helpers -open class AppConfigManager() { +open class AppConfigManager { open fun spriteSubstitutions(): Map> { // TODO actual implementation diff --git a/common/src/main/java/com/habitrpg/common/habitica/helpers/RecyclerViewEmptySupport.kt b/common/src/main/java/com/habitrpg/common/habitica/helpers/RecyclerViewEmptySupport.kt index eadb59c66..ff8e6b477 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/helpers/RecyclerViewEmptySupport.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/helpers/RecyclerViewEmptySupport.kt @@ -3,7 +3,6 @@ package com.habitrpg.common.habitica.helpers import android.view.View import android.view.ViewGroup import android.view.animation.AlphaAnimation -import android.widget.ProgressBar import androidx.compose.foundation.layout.size import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView diff --git a/common/src/main/java/com/habitrpg/common/habitica/views/AvatarView.kt b/common/src/main/java/com/habitrpg/common/habitica/views/AvatarView.kt index e81c4d0c6..fda8480cf 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/views/AvatarView.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/views/AvatarView.kt @@ -83,7 +83,6 @@ class AvatarView : FrameLayout { ) avatarBitmap?.let { avatarCanvas = Canvas(it) } imageViewHolder.forEach { - val lp = it.layoutParams val bitmap = (it.drawable as? BitmapDrawable)?.bitmap ?: return@forEach avatarCanvas?.drawBitmap( bitmap, @@ -208,8 +207,8 @@ class AvatarView : FrameLayout { if (resetHasAttributes) { hasPet = false - hasMount = hasPet - hasBackground = hasMount + hasMount = false + hasBackground = false } var mountName = avatar.currentMount diff --git a/common/src/main/java/com/habitrpg/common/habitica/views/ComposableAvatarView.kt b/common/src/main/java/com/habitrpg/common/habitica/views/ComposableAvatarView.kt index d4f3863fc..4460df251 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/views/ComposableAvatarView.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/views/ComposableAvatarView.kt @@ -3,7 +3,6 @@ package com.habitrpg.common.habitica.views import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.viewinterop.AndroidView -import com.habitrpg.common.habitica.views.AvatarView import com.habitrpg.shared.habitica.models.Avatar @Composable diff --git a/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaCircularProgressView.kt b/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaCircularProgressView.kt index 10167ed39..b8d78fd96 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaCircularProgressView.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/views/HabiticaCircularProgressView.kt @@ -14,7 +14,7 @@ import androidx.compose.foundation.layout.size import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.State -import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -54,7 +54,7 @@ fun HabiticaCircularProgressView( ) ) } else { - rotateAnimation = remember { mutableStateOf(0f) } + rotateAnimation = remember { mutableFloatStateOf(0f) } } val backgroundColor = MaterialTheme.colorScheme.surface val brush = Brush.sweepGradient( diff --git a/common/src/main/res/values-b+es+419/strings.xml b/common/src/main/res/values-b+es+419/strings.xml index 1ddcacc98..d8c0a1d9b 100644 --- a/common/src/main/res/values-b+es+419/strings.xml +++ b/common/src/main/res/values-b+es+419/strings.xml @@ -21,26 +21,22 @@ Contraseña %d Recompensa - %d Recompensas - + %d Recompensas Confirmar contraseña Cerrar sesión Tienes que rellenar todos los campos. %d Hábito - %d Hábitos - + %d Hábitos %d Tarea diaria - %d Tareas diarias - + %d Tareas diarias %d Quehacer - %d Quehaceres - + %d Quehaceres Gemas oro @@ -70,4 +66,4 @@ Iniciar sesión con Google Salir de tu cuenta Error de validación - \ No newline at end of file + diff --git a/common/src/main/res/values-es/strings.xml b/common/src/main/res/values-es/strings.xml index a0d346f17..249cdb81b 100644 --- a/common/src/main/res/values-es/strings.xml +++ b/common/src/main/res/values-es/strings.xml @@ -47,7 +47,6 @@ Tienes que rellenar todos los campos. Añadir recompensa %d - Recompensas Para Añadir %d Recompensas Para Añadir %d Crea una tarea @@ -60,12 +59,10 @@ Reintentar %dHábito - %dHábitos Habito Numero %d Tarea diaria %d - %d Tareas diarias Tarea Numero %d Guardar %s @@ -75,13 +72,11 @@ oración trivial Vez Marcada %d - %d Veces Marcadas %d Veces Marcadas oración Intermedia Tarea Pendiente %d - %d Tareas Pendientes Tarea Pendiente Numero %d - \ No newline at end of file + diff --git a/common/src/main/res/values-fr/strings.xml b/common/src/main/res/values-fr/strings.xml index 39fe0388b..f36d12079 100644 --- a/common/src/main/res/values-fr/strings.xml +++ b/common/src/main/res/values-fr/strings.xml @@ -32,7 +32,6 @@ Réessayer %d Tâche quotidienne - %d Tâches quotidiennes %d Tâches quotidiennes Adresse email @@ -46,12 +45,10 @@ Vous devez remplir tous les champs. %d Récompense - %d Récompenses %d Récompenses Signalé %d fois - Signalé %d fois, caché Signalé %d fois, caché Gemmes @@ -73,15 +70,13 @@ Banal %d Habitude - %d Habitudes %d Habitudes Pseudo %d Tâche à faire - %d Tâches à faire %d Tâches à faire Terminer une Tâche Email/Nom d\'Utilisateur - \ No newline at end of file + diff --git a/common/src/main/res/values-pt-rBR/strings.xml b/common/src/main/res/values-pt-rBR/strings.xml index e5e300a30..66034c64f 100644 --- a/common/src/main/res/values-pt-rBR/strings.xml +++ b/common/src/main/res/values-pt-rBR/strings.xml @@ -49,8 +49,7 @@ Você precisa preencher todos os campos. %d Recompensa - %d Recompensas - + %d Recompensas Criar uma Tarefa Completar uma Tarefa @@ -60,28 +59,24 @@ Tentar novamente %d Hábito - %d Hábitos - + %d Hábitos %d Diária - %d Diárias - + %d Diárias %d Afazer - %d Afazeres - + %d Afazeres Salvar %s Sinalizado %d vez, oculto - Sinalizado %d vezes, oculto - + Sinalizado %d vezes, oculto q fácil médio difícil trivial - \ No newline at end of file + diff --git a/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/responses/HabiticaError.kt b/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/responses/HabiticaError.kt index 0a2dc4635..daf375b37 100644 --- a/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/responses/HabiticaError.kt +++ b/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/responses/HabiticaError.kt @@ -2,6 +2,5 @@ package com.habitrpg.shared.habitica.models.responses class HabiticaError { var message: String? = null - var param: String? = null var value: String? = null } diff --git a/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/Attribute.kt b/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/Attribute.kt index ac8397e2f..6acb2c5a1 100644 --- a/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/Attribute.kt +++ b/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/Attribute.kt @@ -1,6 +1,6 @@ package com.habitrpg.shared.habitica.models.tasks -enum class Attribute constructor(val value: String) { +enum class Attribute(val value: String) { STRENGTH("str"), INTELLIGENCE("int"), CONSTITUTION("con"), diff --git a/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/Frequency.kt b/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/Frequency.kt index 08ff4f9c4..322e780bf 100644 --- a/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/Frequency.kt +++ b/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/Frequency.kt @@ -1,6 +1,6 @@ package com.habitrpg.shared.habitica.models.tasks -enum class Frequency constructor(val value: String) { +enum class Frequency(val value: String) { WEEKLY("weekly"), DAILY("daily"), MONTHLY("monthly"), diff --git a/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/TaskType.kt b/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/TaskType.kt index b9eec67a1..9f2304a1e 100644 --- a/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/TaskType.kt +++ b/shared/src/commonMain/kotlin/com/habitrpg/shared/habitica/models/tasks/TaskType.kt @@ -1,6 +1,6 @@ package com.habitrpg.shared.habitica.models.tasks -enum class TaskType constructor(val value: String) { +enum class TaskType(val value: String) { HABIT("habit"), DAILY("daily"), TODO("todo"), diff --git a/wearos/build.gradle b/wearos/build.gradle index fcc931149..5d0378158 100644 --- a/wearos/build.gradle +++ b/wearos/build.gradle @@ -60,6 +60,16 @@ android { } } + bundle { + language { + // Specifies that the app bundle should not support + // configuration APKs for language resources. These + // resources are instead packaged with each base and + // dynamic feature APK. + enableSplit = false + } + } + flavorDimensions.add("buildType") productFlavors { @@ -141,7 +151,7 @@ dependencies { implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" implementation "androidx.preference:preference-ktx:$preferences_version" - implementation "androidx.navigation:navigation-fragment-ktx:2.7.3" + implementation "androidx.navigation:navigation-fragment-ktx:2.7.6" implementation "com.google.android.gms:play-services-auth:$play_auth_version" diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiClient.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiClient.kt index 56d03f0ae..afee39fc4 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiClient.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/data/ApiClient.kt @@ -210,12 +210,8 @@ class ApiClient @Inject constructor( suspend fun sleep() = process { apiService.sleep() } suspend fun revive() = process { apiService.revive() } - suspend fun loginLocal(auth: UserAuth) = process { apiService.connectLocal(auth) } suspend fun loginSocial(auth: UserAuthSocial) = process { apiService.connectSocial(auth) } - suspend fun addPushDevice(data: Map) = process { apiService.addPushDevice(data) } - suspend fun removePushDevice(id: String) = process { apiService.removePushDevice(id) } - suspend fun runCron() = process { apiService.runCron() } suspend fun getTasks(forced: Boolean = false) = if (forced) { diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/NetworkResult.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/NetworkResult.kt index 1f0d11f8d..ee45ad0ee 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/NetworkResult.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/NetworkResult.kt @@ -2,12 +2,9 @@ package com.habitrpg.wearos.habitica.models sealed class NetworkResult { val isResponseFresh: Boolean - get() = if (this is Success) { - this.isFresh - } else if (this is Error) { - this.isFresh - } else { - false + get() = when (this) { + is Success -> this.isFresh + is Error -> this.isFresh } val responseData: T? get() { diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/ChecklistItem.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/ChecklistItem.kt index 2d7660a77..c0912c7f4 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/ChecklistItem.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/ChecklistItem.kt @@ -6,7 +6,7 @@ import com.squareup.moshi.JsonClass import java.util.UUID @JsonClass(generateAdapter = true) -open class ChecklistItem constructor( +open class ChecklistItem( var id: String? = UUID.randomUUID().toString(), var text: String? = null, var completed: Boolean = false diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/RemindersItem.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/RemindersItem.kt index 59fc14237..658a8342c 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/RemindersItem.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/RemindersItem.kt @@ -5,7 +5,7 @@ import android.os.Parcelable import com.squareup.moshi.JsonClass @JsonClass(generateAdapter = true) -open class RemindersItem constructor() : Parcelable { +open class RemindersItem() : Parcelable { var id: String? = null var startDate: String? = null var time: String? = null diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/Task.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/Task.kt index cafb8e804..159a602d7 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/Task.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/tasks/Task.kt @@ -15,7 +15,7 @@ import org.json.JSONException import java.util.Date @JsonClass(generateAdapter = true) -open class Task constructor() : Parcelable, BaseTask { +open class Task() : Parcelable, BaseTask { @Json(name = "_id") var id: String? = null @@ -270,7 +270,7 @@ open class Task constructor() : Parcelable, BaseTask { weeksOfMonth.add(obj.getInt(i)) i += 1 } - } catch (e: JSONException) { + } catch (_: JSONException) { } } this.weeksOfMonth = weeksOfMonth.toList() @@ -298,7 +298,7 @@ open class Task constructor() : Parcelable, BaseTask { daysOfMonth.add(obj.getInt(i)) i += 1 } - } catch (e: JSONException) { + } catch (_: JSONException) { } } this.daysOfMonth = daysOfMonth diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LoginActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LoginActivity.kt index 86cbdb552..8ca3f6687 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LoginActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LoginActivity.kt @@ -6,9 +6,7 @@ import android.os.Bundle import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels import androidx.core.view.isVisible -import androidx.core.widget.doOnTextChanged import com.google.android.gms.auth.api.signin.GoogleSignIn -import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.ActivityLoginBinding import com.habitrpg.common.habitica.helpers.DeviceCommunication import com.habitrpg.wearos.habitica.ui.viewmodels.LoginViewModel diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/SettingsActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/SettingsActivity.kt index 20a6df1d1..3c57c87fa 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/SettingsActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/SettingsActivity.kt @@ -49,7 +49,7 @@ class SettingsActivity : BaseActivity() { override val viewModel: SplashViewModel by viewModels() diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt index 94381ba8f..ad9ea4715 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt @@ -130,7 +130,7 @@ class TaskResultActivity : BaseActivity TaskRewardChip.Size.SMALL else -> TaskRewardChip.Size.MEDIUM } - if (chips.size > 4 && hasDrop || (chips.size > 5 && !hasDrop)) { + if ((chips.size > 4 && hasDrop) || (chips.size > 5)) { chips = chips.subList(0, if (hasDrop) 4 else 5) } secondsToShow = max(chips.size, 2) diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/adapters/SettingsAdapter.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/adapters/SettingsAdapter.kt index 5a47319bb..3abd0d0b9 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/adapters/SettingsAdapter.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/adapters/SettingsAdapter.kt @@ -3,7 +3,7 @@ package com.habitrpg.wearos.habitica.ui.adapters import android.content.res.ColorStateList import android.view.View import android.view.ViewGroup -import android.widget.Switch +import androidx.appcompat.widget.SwitchCompat import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.habitrpg.android.habitica.R @@ -71,7 +71,7 @@ class SettingsViewHolder(itemView: View) : BindableViewHolder(item } if (data.type == SettingsItem.Types.TOGGLE) { - val switch = Switch(itemView.context) + val switch = SwitchCompat(itemView.context) switch.isChecked = data.value as? Boolean == true switch.isClickable = false switch.showText = false diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/DisconnectedViewHolder.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/DisconnectedViewHolder.kt index 7101ce15e..aa6aa25f7 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/DisconnectedViewHolder.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewHolders/DisconnectedViewHolder.kt @@ -3,4 +3,4 @@ package com.habitrpg.wearos.habitica.ui.viewHolders import androidx.recyclerview.widget.RecyclerView import com.habitrpg.android.habitica.databinding.RowDisconnectedBinding -class DisconnectedViewHolder(private val binding: RowDisconnectedBinding) : RecyclerView.ViewHolder(binding.root) +class DisconnectedViewHolder(binding: RowDisconnectedBinding) : RecyclerView.ViewHolder(binding.root) diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt index 86a50db88..5243cc801 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt @@ -20,7 +20,6 @@ import com.google.android.gms.common.UserRecoverableException import com.google.android.gms.common.api.ApiException import com.google.android.gms.tasks.Task import com.habitrpg.common.habitica.helpers.KeyHelper -import com.habitrpg.common.habitica.models.auth.UserAuth import com.habitrpg.common.habitica.models.auth.UserAuthResponse import com.habitrpg.common.habitica.models.auth.UserAuthSocial import com.habitrpg.common.habitica.models.auth.UserAuthSocialTokens diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/ConnectedActionChipView.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/ConnectedActionChipView.kt index 28413dd75..eeb69003f 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/ConnectedActionChipView.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/ConnectedActionChipView.kt @@ -2,8 +2,6 @@ package com.habitrpg.wearos.habitica.ui.views import android.content.Context import android.util.AttributeSet -import androidx.core.view.isVisible -import com.google.android.gms.tasks.Tasks import com.google.android.gms.wearable.CapabilityClient import com.google.android.gms.wearable.Wearable import kotlinx.coroutines.Dispatchers diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/HabiticaRecyclerView.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/HabiticaRecyclerView.kt index c8050c31a..d6a801285 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/HabiticaRecyclerView.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/HabiticaRecyclerView.kt @@ -51,12 +51,6 @@ class HabiticaRecyclerView @JvmOverloads constructor( } } - var emptyItem: EmptyItem? - get() = emptyAdapter.emptyItem - set(value) { - emptyAdapter.emptyItem = value - } - var emptyViewBuilder: (() -> View)? get() = emptyAdapter.emptyViewBuilder set(value) { diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TaskRewardChip.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TaskRewardChip.kt index 465d8161c..456a5f422 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TaskRewardChip.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TaskRewardChip.kt @@ -9,7 +9,7 @@ import android.widget.LinearLayout import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.TaskRewardChipBinding -import com.habitrpg.android.habitica.extensions.setScaledPadding +import com.habitrpg.common.habitica.extensions.setScaledPadding import com.habitrpg.common.habitica.extensions.layoutInflater import com.habitrpg.shared.habitica.extensions.round import java.math.RoundingMode diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextActionChipView.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextActionChipView.kt index eee2ef1c3..c0405167f 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextActionChipView.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextActionChipView.kt @@ -29,7 +29,7 @@ open class TextActionChipView @JvmOverloads constructor(context: Context, attrs: binding.chipTextview.gravity = Gravity.START binding.chipImageview.isVisible = true } else { - binding.chipImageview.setImageDrawable(icon) + binding.chipImageview.setImageDrawable(null) binding.chipTextview.gravity = Gravity.START binding.chipImageview.isVisible = false } diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextViewWrapper.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextViewWrapper.kt index 3be1f62e2..2d7bc1e72 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextViewWrapper.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextViewWrapper.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.example.android.wearable.timetext +package com.habitrpg.wearos.habitica.ui.views import android.view.View import android.widget.TextView diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TimeText.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TimeText.kt index 8d88acddc..6f81925b5 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TimeText.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TimeText.kt @@ -32,9 +32,6 @@ import androidx.annotation.VisibleForTesting import androidx.core.content.res.use import androidx.core.os.ConfigurationCompat import androidx.core.view.isGone -import com.example.android.wearable.timetext.CurvedTextViewWrapper -import com.example.android.wearable.timetext.NormalTextViewWrapper -import com.example.android.wearable.timetext.TextViewWrapper import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.CurvedTimeTextBinding import com.habitrpg.android.habitica.databinding.StraightTimeTextBinding diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/util/DateJSONAdapter.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/util/DateJSONAdapter.kt index 799a3f804..1986c1996 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/util/DateJSONAdapter.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/util/DateJSONAdapter.kt @@ -1,6 +1,5 @@ package com.habitrpg.wearos.habitica.util -import android.os.Build import com.habitrpg.shared.habitica.models.tasks.Attribute import com.habitrpg.shared.habitica.models.tasks.Frequency import com.habitrpg.shared.habitica.models.tasks.TaskType @@ -43,11 +42,7 @@ var customDateAdapter: Any = object : Any() { addFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") addFormat("E MMM dd yyyy HH:mm:ss zzzz") addFormat("yyyy-MM-dd'T'HH:mm:sszzz") - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - addFormat("yyyy-MM-dd'T'HH:mmX") - } else { - addFormat("yyyy-MM-dd'T'HH:mm") - } + addFormat("yyyy-MM-dd'T'HH:mmX") addFormat("yyyy-MM-dd") } diff --git a/wearos/src/test/java/com/habitrpg/wearos/habitica/models/NetworkResultTest.kt b/wearos/src/test/java/com/habitrpg/wearos/habitica/models/NetworkResultTest.kt index 57272b9bd..9467c5568 100644 --- a/wearos/src/test/java/com/habitrpg/wearos/habitica/models/NetworkResultTest.kt +++ b/wearos/src/test/java/com/habitrpg/wearos/habitica/models/NetworkResultTest.kt @@ -6,7 +6,7 @@ import io.kotest.matchers.shouldBe class NetworkResultTest : WordSpec({ "isSuccess" should { "be true if it's successful" { - val response = NetworkResult.Success("", true) + val response = NetworkResult.Success("", true) response.isSuccess shouldBe true } @@ -23,19 +23,19 @@ class NetworkResultTest : WordSpec({ } "be false if it's successful" { - val response = NetworkResult.Success("", true) + val response = NetworkResult.Success("", true) response.isError shouldBe false } } "isResponseFresh" should { "be true if it's a fresh response" { - val response = NetworkResult.Success("", true) + val response = NetworkResult.Success("", true) response.isResponseFresh shouldBe true } "be false if it errored" { - val response = NetworkResult.Success("", false) + val response = NetworkResult.Success("", false) response.isResponseFresh shouldBe false } }