diff --git a/Habitica/res/values-de/strings.xml b/Habitica/res/values-de/strings.xml
index 48a91771e..36e921f5f 100644
--- a/Habitica/res/values-de/strings.xml
+++ b/Habitica/res/values-de/strings.xml
@@ -1024,6 +1024,7 @@ Die Quest-Schriftrolle wird an den Quest-Besitzer zurückgegeben.
Haustier schlüpfen
Einstiegsaufgaben ansehen
Ausrüsten
+ Unausrüsten
Du hast bereits alles, was Du für alle %s Haustiere benötigst. Bist Du Dir sicher, dass Du %d %ss kaufen willst\?
%d kaufen
Du brauchst nur %d %s um alle möglichen Haustiere zu schlüpfen. Bist Du Dir sicher, dass Du %d kaufen willst\?
@@ -1103,4 +1104,4 @@ Die Quest-Schriftrolle wird an den Quest-Besitzer zurückgegeben.
Zwischen 29. Oktober und 2. November kannst Du wie gewohnt ein Edelstein-Paket kaufen, Deinem Konto wird aber der Aktions-Betrag Edelsteine hinzugefügt. Mehr Edelsteine zum ausgeben, teilen oder aufsparen für spätere Neuerungen!
Edelstein-Pakete anzeigen
Die Herbstgala ist in vollem Gange. Deshalb haben wir gedacht, dass dies der perfekte Zeitpunkt für den allerersten Edelstein-Sonderverkauf ist! Jetzt bekommst Du mit jedem Einkauf mehr Edelsteine als je zuvor.
-
\ No newline at end of file
+
diff --git a/Habitica/res/values-en-rGB/strings.xml b/Habitica/res/values-en-rGB/strings.xml
index 178723137..9938c1757 100644
--- a/Habitica/res/values-en-rGB/strings.xml
+++ b/Habitica/res/values-en-rGB/strings.xml
@@ -1041,6 +1041,7 @@
You still need a %s Egg to hatch this pet
View Onboarding Tasks
Equip
+ Unequip
You already have everything you need for all %s pets. Are you sure you want to purchase %d %ss\?
Purchase %d
You only need %d %s to hatch all possible pets. Are you sure you want to purchase %d\?
diff --git a/Habitica/res/values-es/strings.xml b/Habitica/res/values-es/strings.xml
index 2edaffca8..255955e50 100644
--- a/Habitica/res/values-es/strings.xml
+++ b/Habitica/res/values-es/strings.xml
@@ -905,6 +905,7 @@
Aún necesitas una poción %s para eclosionar esta mascota
Aún necesitas un huevo %s para eclosionar esta mascota
Equipar
+ Desequipar
Ya tienes todo lo que necesitas para todas las mascotas %s. ¿Estás seguro de que quieres comprar %d %ss\?
Exceso de objetos
¡Has encontrado nuevos objetos!
diff --git a/Habitica/res/values-fr/strings.xml b/Habitica/res/values-fr/strings.xml
index f1a589b0a..bafa774f7 100644
--- a/Habitica/res/values-fr/strings.xml
+++ b/Habitica/res/values-fr/strings.xml
@@ -1046,6 +1046,7 @@
Vous avez besoin d\'un œuf de %s pour faire éclore ce familier
Voir les tâches d’intégration
Équiper
+ Déséquiper
Vous avez déjà tout le nécessaire pour tous les familiers %s. Voulez vous vraiment acheter %d %ss \?
Acheter %d
Vous avez seulement besoin de %d %@s pour faire éclore tous les familiers possibles. Voulez-vous vraiment acheter %d \?
diff --git a/Habitica/res/values-it/strings.xml b/Habitica/res/values-it/strings.xml
index 5152ae485..3cdd38845 100644
--- a/Habitica/res/values-it/strings.xml
+++ b/Habitica/res/values-it/strings.xml
@@ -1073,6 +1073,7 @@
Hai bisogno di un uovo %s per poter schiudere questo animale
Visualizza le attività introduttive
Equipaggia
+ Disequip
Hai già tutto il necessario per tutti gli animali %@. Sei sicuro di voler acquistare %d %ss\?
Acquista %d
Hai solo bisogno di %d %s per schiudere tutti i possibili animali. Sei sicuro di voler acquistare %d\?
@@ -1098,4 +1099,4 @@
Come funziona
%s a %s
Solitamente %d Gemme
-
\ No newline at end of file
+
diff --git a/Habitica/res/values-ja/strings.xml b/Habitica/res/values-ja/strings.xml
index f864dd831..653d76b9a 100644
--- a/Habitica/res/values-ja/strings.xml
+++ b/Habitica/res/values-ja/strings.xml
@@ -1074,6 +1074,7 @@
ペットをかえす
「初心者入門のタスク」を見る
装備
+ 装備解除
すでに%sペットは全て所有しています。本当に%d%ssを購入しますか?
%dを買う
今孵せるペットに必要なのは%d%sだけです。本当に%dを購入しますか?
diff --git a/Habitica/res/values-nl/strings.xml b/Habitica/res/values-nl/strings.xml
index 30be173a4..00df810a7 100644
--- a/Habitica/res/values-nl/strings.xml
+++ b/Habitica/res/values-nl/strings.xml
@@ -999,6 +999,7 @@
Je hebt je Onboarding Taken afgerond!
Bekijk Onboarding Taken
Aantrekken
+ Niet uitrusten
Alle Habitica karakters hebben vier statistieken die ieder invloed hebben op aspecten van de gameplay van Habitica.
\n
\n**Kracht (KRA)** beïnvloedt voltreffers en verhoogt de schade toegebracht aan Quest Eindbazen. Krijgers en Dieven krijgen extra KRA van hun klasse-specifieke uitrusting.
@@ -1023,4 +1024,4 @@
\n**Verdien Goud** door taken en kweestes af te ronden, en met sommige klassevaardigheden. Een hogere **Perceptie stat** zorgt voor een hogere goudopbrengst.
\n
\nAls je een abonnement neemt op Habitica, kun je Goud zelfs gebruiken om een aantal Edelstenen te kopen, gebaseerd op de tijdsduur van je abonnement.
-
\ No newline at end of file
+
diff --git a/Habitica/res/values-pt-rBR/strings.xml b/Habitica/res/values-pt-rBR/strings.xml
index f337136de..2381f6c12 100644
--- a/Habitica/res/values-pt-rBR/strings.xml
+++ b/Habitica/res/values-pt-rBR/strings.xml
@@ -1037,6 +1037,7 @@
Você ainda precisa de um Ovo de %s para chocar esse mascote
Ver Tarefas Iniciais
Equipar
+ Desequipar
Você já tem tudo o que precisa para todos os %s mascotes. Você tem certeza que quer comprar %d %ss\?
Comprar %d
Você só precisa %d %s para chocar todos os mascotes possíveis. Você tem certeza que quer comprar %d\?
@@ -1100,4 +1101,4 @@
Como funciona
%s a %s
Usualmente %d Gemas
-
\ No newline at end of file
+
diff --git a/Habitica/res/values-ru/strings.xml b/Habitica/res/values-ru/strings.xml
index 5ade32e4b..5ce4515be 100644
--- a/Habitica/res/values-ru/strings.xml
+++ b/Habitica/res/values-ru/strings.xml
@@ -914,6 +914,7 @@
Волшебные эликсиры
Посмотреть первые задания
Надеть
+ Необорудовать
Купить: %d
Лишние предметы
Вы выполнили свои первые задания!
@@ -969,4 +970,4 @@
Вы получили %1$d сообщений от %2$s
Удалить напоминание
Удалить
-
\ No newline at end of file
+
diff --git a/Habitica/res/values-tr/strings.xml b/Habitica/res/values-tr/strings.xml
index bafb85adc..a4dc127c7 100644
--- a/Habitica/res/values-tr/strings.xml
+++ b/Habitica/res/values-tr/strings.xml
@@ -886,6 +886,7 @@
Ayrıl ve Görevi Sil
Mücadele Görevi Silinsin mi\?
Yanına Al
+ Boşalt
Daha fazlasını istiyorsanız Başarılar\'a göz atın ve toplamaya başlayın!
Yeni eşyalar buldun!
Eşyalara Git
diff --git a/Habitica/res/values-uk/strings.xml b/Habitica/res/values-uk/strings.xml
index 211484fcc..cd0cd8a6b 100755
--- a/Habitica/res/values-uk/strings.xml
+++ b/Habitica/res/values-uk/strings.xml
@@ -963,6 +963,7 @@
Не можу знайти користувача
Дивні
Одягнути
+ Неоснащення
Ім\'я користувача підтверджено
Ім\'я користувача не підтверджено
Двуручний
diff --git a/Habitica/res/values-vi/strings.xml b/Habitica/res/values-vi/strings.xml
index 2265871fc..9ff3fb62c 100755
--- a/Habitica/res/values-vi/strings.xml
+++ b/Habitica/res/values-vi/strings.xml
@@ -1040,6 +1040,7 @@
Bạn còn cần một %s Trứng để ấp thú cưng này
Xem Công việc Nhập môn
Trang bị
+ Giải đáp thắc mắc
Bạn đã có mọi thứ bạn cần cho tất cả %s thú cưng. Bạn có chắc muốn mua %d %ss\?
Mua %d
Bạn chỉ cần %d %s để ấp tất cả thú cưng mà bạn có thể. Bạn có chắc muốn mua %d\?
@@ -1103,4 +1104,4 @@
Khuyến mãi này chỉ áp dụng trong thời gian giới hạn của sự kiện. Sự kiện này bắt đầu vào ngày 29 tháng Mười lúc 8:00 AM EDT (12:00 UTC) và sẽ kết thúc vào ngày 2 tháng Mười Một vào lúc 8:00 PM EDT (00:00 UTC). Khuyến mãi chỉ áp dụng khi mua Gem cho bản thân bạn.
Từ ngày 29 tháng 10 đến ngày 2 tháng 11, đơn giản là mua bất kỳ gói Gem nào như thường lệ và tài khoản của bạn sẽ cộng được thêm một khoảng Gem. Thêm nhiều Gem để xài, chia sẻ hay để dành cho những lần ra mắt trong tương lai!
Chương trình giảm giá Gem trở lại và tiếp diễn đến khi kết thúc Dạ tiệc Mùa Thu! Đây là cơ hội cuối cùng để nhận nhiều Gem hơn bao giờ hết, vì thế hãy mua dự trữ khi chương trình đang diễn ra!
-
\ No newline at end of file
+
diff --git a/Habitica/res/values-zh-rTW/strings.xml b/Habitica/res/values-zh-rTW/strings.xml
index beebffe82..d1061fb9f 100644
--- a/Habitica/res/values-zh-rTW/strings.xml
+++ b/Habitica/res/values-zh-rTW/strings.xml
@@ -1040,6 +1040,7 @@
你還需要一個%s寵物蛋來孵化這個寵物任務
查看新手任務
裝備
+ 取消裝備
你已經有得到所有%s寵物所需的一切物品。你確定你要買%d個%s?
買%d個
你只需要%d個%s即可孵化所有可得到的這種寵物。你確定你想要買%d個?
@@ -1084,4 +1085,4 @@
退出挑戰,並刪除挑戰任務
退出挑戰,並保留挑戰任務
在退出挑戰之後,你可以在自己的任務列表裡保留參加挑戰時的任務,也可以刪除它們
-
\ No newline at end of file
+
diff --git a/Habitica/res/values-zh/strings.xml b/Habitica/res/values-zh/strings.xml
index dca7f5d29..fd3fe0f5f 100644
--- a/Habitica/res/values-zh/strings.xml
+++ b/Habitica/res/values-zh/strings.xml
@@ -1018,6 +1018,7 @@
你还需要一个%s宠物蛋来孵化这个宠物
查看新手任务
装备
+ 取消装备
你已经有得到所有%s宠物所需的一切物品。你确定你要买%d个%s?
你只需要%d个%s即可孵化所有可得到的这种宠物。你确定你想要买%d个?
买%d个
@@ -1101,4 +1102,4 @@
如何工作
%s到%s
通常%d颗宝石
-
\ No newline at end of file
+
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index c70456b6e..679c57eb7 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -1061,6 +1061,7 @@
Purchase %d
You already have everything you need for all %s pets. Are you sure you want to purchase %d %ss?
Equip
+ Unequip
View Onboarding Tasks
You still need a %s Egg to hatch this pet
You still need a %s Potion to hatch this pet
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt
index 61824d3c0..9fee5c580 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt
@@ -4,6 +4,7 @@ import android.view.ViewGroup
import com.habitrpg.android.habitica.models.inventory.Mount
import com.habitrpg.android.habitica.models.inventory.StableSection
import com.habitrpg.android.habitica.models.user.OwnedMount
+import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.viewHolders.MountViewHolder
import com.habitrpg.android.habitica.ui.viewHolders.SectionViewHolder
import io.reactivex.rxjava3.core.BackpressureStrategy
@@ -14,6 +15,7 @@ class MountDetailRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Ada
private var ownedMounts: Map? = null
private val equipEvents = PublishSubject.create()
+ private var user: User? = null
private var itemList: List = ArrayList()
@@ -35,7 +37,7 @@ class MountDetailRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Ada
override fun onBindViewHolder(holder: androidx.recyclerview.widget.RecyclerView.ViewHolder, position: Int) {
when (val obj = this.itemList[position]) {
is StableSection -> (holder as? SectionViewHolder)?.bind(obj)
- is Mount -> (holder as? MountViewHolder)?.bind(obj, ownedMounts?.get(obj.key ?: "")?.owned == true)
+ is Mount -> (holder as? MountViewHolder)?.bind(obj, ownedMounts?.get(obj.key ?: "")?.owned == true, user)
}
}
@@ -47,4 +49,9 @@ class MountDetailRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Ada
this.ownedMounts = ownedMounts
notifyDataSetChanged()
}
+
+ fun setUser(user: User) {
+ this.user = user
+ notifyDataSetChanged()
+ }
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt
index b7d76edba..919d13df7 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt
@@ -5,6 +5,7 @@ import com.habitrpg.android.habitica.models.inventory.*
import com.habitrpg.android.habitica.models.user.OwnedItem
import com.habitrpg.android.habitica.models.user.OwnedMount
import com.habitrpg.android.habitica.models.user.OwnedPet
+import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.viewHolders.PetViewHolder
import com.habitrpg.android.habitica.ui.viewHolders.SectionViewHolder
import io.reactivex.rxjava3.core.BackpressureStrategy
@@ -17,6 +18,7 @@ class PetDetailRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapt
private var ownedPets: Map? = null
private var ownedMounts: Map? = null
private var ownedItems: Map? = null
+ private var user: User? = null
private val equipEvents = PublishSubject.create()
private var ownsSaddles: Boolean = false
@@ -27,6 +29,11 @@ class PetDetailRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapt
this.notifyDataSetChanged()
}
+ fun setUser(user: User) {
+ this.user = user
+ notifyDataSetChanged()
+ }
+
fun getEquipFlowable(): Flowable {
return equipEvents.toFlowable(BackpressureStrategy.DROP)
}
@@ -69,7 +76,8 @@ class PetDetailRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapt
ownsSaddles,
ownedItems?.get(obj.animal + "-eggs") != null,
ownedItems?.get(obj.color + "-hatchingPotions") != null,
- ownedMounts?.containsKey(obj.key) == true
+ ownedMounts?.containsKey(obj.key) == true,
+ user
)
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt
index 35fe8f3b2..22d92b9e2 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt
@@ -13,8 +13,8 @@ import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.models.inventory.*
import com.habitrpg.android.habitica.models.user.OwnedItem
+import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.models.user.OwnedMount
-import com.habitrpg.android.habitica.models.user.OwnedPet
import com.habitrpg.android.habitica.ui.fragments.inventory.stable.StableFragmentDirections
import com.habitrpg.android.habitica.ui.helpers.loadImage
import com.habitrpg.android.habitica.ui.viewHolders.MountViewHolder
@@ -32,17 +32,23 @@ class StableRecyclerAdapter : RecyclerView.Adapter() {
private var eggs: Map = mapOf()
var animalIngredientsRetriever: ((Animal, ((Pair) -> Unit)) -> Unit)? = null
var itemType: String? = null
+ private var user: User? = null
private val equipEvents = PublishSubject.create()
-
private var existingMounts: RealmResults? = null
private var ownedMounts: Map? = null
private var ownedItems: Map? = null
private var ownsSaddles: Boolean = false
+ private var itemList: List = ArrayList()
fun getEquipFlowable(): Flowable {
return equipEvents.toFlowable(BackpressureStrategy.DROP)
}
+ fun setUser(user: User){
+ this.user = user
+ notifyDataSetChanged()
+ }
+
private fun canRaiseToMount(pet: Pet): Boolean {
for (mount in existingMounts ?: emptyList()) {
if (mount.key == pet.key) {
@@ -55,6 +61,7 @@ class StableRecyclerAdapter : RecyclerView.Adapter() {
private fun eggCount(pet: Pet): Int {
return ownedItems?.get(pet.animal + "-eggs")?.numberOwned ?: 0
}
+
private fun potionCount(pet: Pet): Int {
return ownedItems?.get(pet.color + "-hatchingPotions")?.numberOwned ?: 0
}
@@ -75,11 +82,9 @@ class StableRecyclerAdapter : RecyclerView.Adapter() {
notifyDataSetChanged()
}
- private var itemList: List = ArrayList()
-
fun setItemList(itemList: List) {
this.itemList = itemList
- this.notifyDataSetChanged()
+ notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder =
@@ -107,17 +112,20 @@ class StableRecyclerAdapter : RecyclerView.Adapter() {
val isIndividualAnimal = item.type == "special" || item.type == "wacky"
if (isIndividualAnimal) {
if (item is Pet) {
- (holder as? PetViewHolder)?.bind(item,
- item.numberOwned,
- eggCount(item),
- potionCount(item),
- canRaiseToMount(item),
- ownsSaddles,
- ownedItems?.get(item.animal + "-eggs") != null,
- ownedItems?.get(item.color + "-hatchingPotions") != null,
- ownedMounts?.containsKey(item.key) == true)
+ (holder as? PetViewHolder)?.bind(
+ item = item,
+ trained = item.numberOwned,
+ eggCount = eggCount(item),
+ potionCount = potionCount(item),
+ canRaiseToMount = canRaiseToMount(item),
+ ownsSaddles = ownsSaddles,
+ hasUnlockedEgg = ownedItems?.get(item.animal + "-eggs") != null,
+ hasUnlockedPotion = ownedItems?.get(item.color + "-hatchingPotions") != null,
+ hasMount = ownedMounts?.containsKey(item.key) == true,
+ user = user
+ )
} else if (item is Mount) {
- (holder as? MountViewHolder)?.bind(item, item.numberOwned > 0)
+ (holder as? MountViewHolder)?.bind(item, item.numberOwned > 0, user)
}
return
}
@@ -153,6 +161,7 @@ class StableRecyclerAdapter : RecyclerView.Adapter() {
}
override fun getItemCount(): Int = itemList.size
+
fun setEggs(eggs: Map) {
this.eggs = eggs
notifyDataSetChanged()
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.kt
index 002ea37a1..702be0320 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.kt
@@ -84,7 +84,9 @@ class MountDetailRecyclerFragment : BaseMainFragment inventoryRepository.equip(user, "mount", key) }
- ?.subscribe({ }, RxErrorHandler.handleEmptyError())?.let { compositeSubscription.add(it) }
+ ?.subscribe({
+ user?.let { updatedUser -> adapter?.setUser(updatedUser) }
+ }, RxErrorHandler.handleEmptyError())?.let { compositeSubscription.add(it) }
}
if (savedInstanceState != null) {
@@ -124,6 +126,7 @@ class MountDetailRecyclerFragment : BaseMainFragment adapter?.setUser(updatedUser) }
}, { unsortedAnimals, ownedAnimals ->
val items = mutableListOf()
var lastMount: Mount? = null
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 ca7b0abd3..27f038c9a 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
@@ -22,7 +22,6 @@ import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment
import com.habitrpg.android.habitica.ui.fragments.inventory.items.ItemRecyclerFragment
import com.habitrpg.android.habitica.ui.helpers.MarginDecoration
import com.habitrpg.android.habitica.ui.helpers.SafeDefaultItemAnimator
-import io.reactivex.rxjava3.core.Flowable
import io.reactivex.rxjava3.core.Maybe
import io.reactivex.rxjava3.kotlin.Flowables
import org.greenrobot.eventbus.Subscribe
@@ -104,7 +103,9 @@ class PetDetailRecyclerFragment : BaseMainFragment(
compositeSubscription.add(adapter.getEquipFlowable()
.flatMap { key -> inventoryRepository.equip(user, "pet", key) }
- .subscribe({ }, RxErrorHandler.handleEmptyError()))
+ .subscribe({
+ user?.let { updatedUser -> adapter.setUser(updatedUser) }
+ }, RxErrorHandler.handleEmptyError()))
view.post { setGridSpanCount(view.width) }
@@ -151,6 +152,7 @@ class PetDetailRecyclerFragment : BaseMainFragment(
return@map petMap
}.doOnNext {
adapter.setOwnedPets(it)
+ user?.let { updatedUser -> adapter.setUser(updatedUser) }
}).map {
val items = mutableListOf()
var lastPet: Pet? = null
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt
index f4b907b4b..030c365a6 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt
@@ -88,6 +88,7 @@ class StableRecyclerFragment : BaseFragment() {
adapter = binding?.recyclerView?.adapter as? StableRecyclerAdapter
if (adapter == null) {
adapter = StableRecyclerAdapter()
+ user?.let { adapter?.setUser(it) }
adapter?.animalIngredientsRetriever = { animal, callback ->
Maybe.zip(
inventoryRepository.getItems(Egg::class.java, arrayOf(animal.animal)).firstElement(),
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 9ceeae1c7..3471f9ba5 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/MountViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/MountViewHolder.kt
@@ -9,6 +9,7 @@ import com.habitrpg.android.habitica.databinding.MountOverviewItemBinding
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.inventory.Mount
+import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
import com.habitrpg.android.habitica.ui.menu.BottomSheetMenu
import com.habitrpg.android.habitica.ui.menu.BottomSheetMenuItem
@@ -20,6 +21,7 @@ class MountViewHolder(parent: ViewGroup, private val equipEvents: PublishSubject
private var binding: MountOverviewItemBinding = MountOverviewItemBinding.bind(itemView)
private var owned: Boolean = false
var animal: Mount? = null
+ private var user: User? = null
var resources: Resources = itemView.resources
@@ -27,9 +29,10 @@ class MountViewHolder(parent: ViewGroup, private val equipEvents: PublishSubject
itemView.setOnClickListener(this)
}
- fun bind(item: Mount, owned: Boolean) {
+ fun bind(item: Mount, owned: Boolean, user: User?) {
animal = item
this.owned = owned
+ this.user = user
binding.titleTextView.visibility = View.GONE
binding.ownedTextView.visibility = View.GONE
val imageName = "stable_Mount_Icon_" + item.animal + "-" + item.color
@@ -54,10 +57,13 @@ class MountViewHolder(parent: ViewGroup, private val equipEvents: PublishSubject
}
val menu = BottomSheetMenu(itemView.context)
menu.setTitle(animal?.text)
- menu.addMenuItem(BottomSheetMenuItem(resources.getString(R.string.equip)))
+
+ val hasCurrentMount = user?.currentMount.equals(animal?.key)
+ val labelId = if (hasCurrentMount) R.string.unequip else R.string.equip
+ menu.addMenuItem(BottomSheetMenuItem(resources.getString(labelId)))
menu.setSelectionRunnable {
animal?.let { equipEvents.onNext(it.key ?: "") }
}
menu.show()
}
-}
\ No newline at end of file
+}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt
index e597c9134..8aaa9e763 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/PetViewHolder.kt
@@ -10,6 +10,7 @@ import com.habitrpg.android.habitica.events.commands.FeedCommand
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.inventory.*
+import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
import com.habitrpg.android.habitica.ui.menu.BottomSheetMenu
import com.habitrpg.android.habitica.ui.menu.BottomSheetMenuItem
@@ -27,6 +28,7 @@ class PetViewHolder(parent: ViewGroup, private val equipEvents: PublishSubject 0
binding.imageView.alpha = 1.0f
@@ -60,6 +65,7 @@ class PetViewHolder(parent: ViewGroup, private val equipEvents: PublishSubject