From 31ec2652dea727b967a1f142eb5f584b686ab6dc Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 2 Apr 2024 15:32:16 +0200 Subject: [PATCH] Improve handling npc sprites --- .../android/habitica/helpers/AppConfigManager.kt | 2 +- .../android/habitica/models/WorldState.kt | 15 +++++++++++++++ .../android/habitica/ui/views/NPCBannerView.kt | 5 ++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt index 332c73eb6..53317a1b5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt @@ -36,7 +36,7 @@ class AppConfigManager(contentRepository: ContentRepository?) : com.habitrpg.com private val remoteConfig = FirebaseRemoteConfig.getInstance() fun shopSpriteSuffix(): String? { - return worldState?.npcImageSuffix + return worldState?.findNpcImageSuffix() } fun maxChatLength(): Long { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldState.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldState.kt index 62a704df4..374a80999 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldState.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/WorldState.kt @@ -21,4 +21,19 @@ open class WorldState : RealmObject(), BaseObject { @SerializedName("currentEventList") var events: RealmList = RealmList() + + fun findNpcImageSuffix(): String? { + if (!npcImageSuffix.isNullOrBlank()) { + return npcImageSuffix + } else if (!currentEvent?.npcImageSuffix.isNullOrBlank()) { + return currentEvent?.npcImageSuffix + } else { + for (event in events) { + if (!event.npcImageSuffix.isNullOrBlank()) { + return event.npcImageSuffix + } + } + } + return null + } } 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 84b86894b..54d93149a 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,10 @@ class NPCBannerView(context: Context, attrs: AttributeSet?) : FrameLayout(contex var shopSpriteSuffix: String? = null set(value) { - field = if (value.isNullOrEmpty() || value.startsWith("_")) { + + field = if (value.isNullOrEmpty()) { + "" + } else if (value.startsWith("_")) { value } else { "_$value"