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
}
}