From 3c1907f58d96f845405e3ebe356924e625b903f1 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 10 Nov 2020 17:15:19 +0100 Subject: [PATCH] Fix opening mystery item --- .../local/implementation/RealmInventoryLocalRepository.kt | 5 +++-- .../habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt | 8 +++----- .../ui/fragments/inventory/items/ItemRecyclerFragment.kt | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) 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 15d3a34ea..c1ed67576 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 @@ -242,12 +242,13 @@ class RealmInventoryLocalRepository(realm: Realm) : RealmContentLocalRepository( return } val item = realm.where(OwnedItem::class.java).equalTo("combinedKey", "${user.id}specialinventory_present").findFirst() + val liveUser = getLiveObject(user) executeTransaction { if (item != null && item.isValid) { item.numberOwned = item.numberOwned - 1 } - if (user.isValid) { - user.purchased?.plan?.mysteryItemCount = (user.purchased?.plan?.mysteryItemCount ?: 0) - 1 + if (liveUser?.isValid == true) { + liveUser.purchased?.plan?.mysteryItemCount = (user.purchased?.plan?.mysteryItemCount ?: 0) - 1 } } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt index 97ae5dabc..f438c1253 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.kt @@ -27,7 +27,7 @@ import org.greenrobot.eventbus.EventBus import java.text.SimpleDateFormat import java.util.* -class ItemRecyclerAdapter(data: OrderedRealmCollection?, autoUpdate: Boolean, val context: Context) : BaseRecyclerViewAdapter() { +class ItemRecyclerAdapter(val context: Context) : BaseRecyclerViewAdapter() { var isHatching: Boolean = false var isFeeding: Boolean = false @@ -67,10 +67,8 @@ class ItemRecyclerAdapter(data: OrderedRealmCollection?, autoUpdate: } override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { - data?.let { - val ownedItem = it[position] - holder.bind(ownedItem, items?.get(ownedItem.key)) - } + val ownedItem = data[position] + holder.bind(ownedItem, items?.get(ownedItem.key)) } fun setExistingPets(pets: RealmResults) { 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 a5f773b0b..7fb6b1f07 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 @@ -73,7 +73,7 @@ class ItemRecyclerFragment : BaseFragment(), SwipeRefreshL adapter = binding?.recyclerView?.adapter as? ItemRecyclerAdapter if (adapter == null) { context?.let { - adapter = ItemRecyclerAdapter(null, true, context) + adapter = ItemRecyclerAdapter(context) adapter?.isHatching = this.isHatching adapter?.isFeeding = this.isFeeding adapter?.fragment = this