From ebb6b4bf6654ac899d17d82d62fd0516b0c33680 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 13 Nov 2017 19:23:43 +0100 Subject: [PATCH] correctly remove purchased equipment. Fixes #859 --- .../extensions/ViewGroup-Extensions.kt | 2 +- .../fragments/inventory/shops/ShopFragment.kt | 4 ++- .../habitica/ui/views/shops/PurchaseDialog.kt | 25 ++++++++----------- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewGroup-Extensions.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewGroup-Extensions.kt index 392ad445f..8cf4d16eb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewGroup-Extensions.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/extensions/ViewGroup-Extensions.kt @@ -6,4 +6,4 @@ import android.view.View import android.view.ViewGroup fun ViewGroup.inflate(layoutId: Int, attachToRoot: Boolean = false): View = - LayoutInflater.from(context).inflate(layoutId, this, attachToRoot) \ No newline at end of file + context.layoutInflater.inflate(layoutId, this, attachToRoot) \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt index 0802eeefd..b8b727397 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt @@ -188,7 +188,9 @@ class ShopFragment : BaseFragment() { @Subscribe fun onItemPurchased(event: GearPurchasedEvent) { - loadShopInventory() + if (Shop.MARKET == shopIdentifier) { + loadMarketGear() + } } } 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 c256d44e3..475d70c17 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 @@ -10,7 +10,6 @@ import android.view.ViewGroup import android.widget.ImageButton import android.widget.ScrollView import android.widget.TextView - import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.AppComponent import com.habitrpg.android.habitica.data.InventoryRepository @@ -18,8 +17,11 @@ import com.habitrpg.android.habitica.data.UserRepository import com.habitrpg.android.habitica.events.GearPurchasedEvent import com.habitrpg.android.habitica.events.ShowSnackbarEvent import com.habitrpg.android.habitica.events.commands.OpenGemPurchaseFragmentCommand +import com.habitrpg.android.habitica.extensions.bindView import com.habitrpg.android.habitica.helpers.RemoteConfigManager import com.habitrpg.android.habitica.helpers.RxErrorHandler +import com.habitrpg.android.habitica.models.inventory.Equipment +import com.habitrpg.android.habitica.models.inventory.QuestContent import com.habitrpg.android.habitica.models.shops.Shop import com.habitrpg.android.habitica.models.shops.ShopItem import com.habitrpg.android.habitica.models.user.User @@ -30,19 +32,12 @@ import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientGemsDialog import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientGoldDialog import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientHourglassesDialog - import org.greenrobot.eventbus.EventBus - -import java.util.Date - -import javax.inject.Inject - -import com.habitrpg.android.habitica.extensions.bindView -import com.habitrpg.android.habitica.models.inventory.Equipment -import com.habitrpg.android.habitica.models.inventory.QuestContent import rx.Observable import rx.functions.Action1 import rx.subscriptions.CompositeSubscription +import java.util.* +import javax.inject.Inject class PurchaseDialog(context: Context, component: AppComponent, val item: ShopItem) : AlertDialog(context) { @@ -248,17 +243,17 @@ class PurchaseDialog(context: Context, component: AppComponent, val item: ShopIt } .flatMap { userRepository.retrieveUser(false, true) } .flatMap { inventoryRepository.retrieveInAppRewards() } - .subscribe({ }) { throwable -> + .subscribe({ + if (item.isTypeGear) { + EventBus.getDefault().post(GearPurchasedEvent(item)) + } + }) { throwable -> if (throwable.javaClass.isAssignableFrom(retrofit2.HttpException::class.java)) { val error = throwable as retrofit2.HttpException if (error.code() == 401 && shopItem.currency == "gems") { EventBus.getDefault().post(OpenGemPurchaseFragmentCommand()) } } - - if (item.isTypeGear) { - EventBus.getDefault().post(GearPurchasedEvent(item)) - } } } else { when {