From 46324bb0eb44688dc7cebec46e4723e8d00c5d7c Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Fri, 4 Oct 2019 16:50:56 +0200 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20automatically=20dismiss=20purch?= =?UTF-8?q?ase=20dialog=20if=20insufficient=20currency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../habitica/ui/views/dialogs/HabiticaAlertDialog.kt | 8 +++++--- .../android/habitica/ui/views/shops/PurchaseDialog.kt | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt index 02a497384..cd0d9248a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt @@ -168,11 +168,11 @@ open class HabiticaAlertDialog(context: Context) : AlertDialog(context, R.style. button.text = string button.minWidth = 147.dpToPx(context) button.setScaledPadding(context, 20, 0, 20, 0) - return addButton(button, function) as Button + return addButton(button, true, function) as Button } - fun addButton(buttonView: View, function: ((HabiticaAlertDialog, Int) -> Unit)? = null): View { + fun addButton(buttonView: View, autoDismiss: Boolean = true, function: ((HabiticaAlertDialog, Int) -> Unit)? = null): View { val weakThis = WeakReference(this) val buttonIndex = buttonsWrapper.childCount buttonView.setOnClickListener { @@ -180,7 +180,9 @@ open class HabiticaAlertDialog(context: Context) : AlertDialog(context, R.style. if (function != null) { function(it1, buttonIndex) } - dismiss() + if (autoDismiss) { + dismiss() + } } } configureButtonLayoutParams(buttonView) 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 5d78c6573..c76b3eea4 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 @@ -4,7 +4,6 @@ import android.content.Context import android.graphics.drawable.BitmapDrawable import android.view.LayoutInflater import android.view.View -import android.view.ViewGroup import android.widget.Button import android.widget.TextView import androidx.core.content.ContextCompat @@ -55,7 +54,7 @@ class PurchaseDialog(context: Context, component: UserComponent?, val item: Shop } private val currencyView: CurrencyViews by bindView(customHeader, R.id.currencyView) private val limitedTextView: TextView by bindView(customHeader, R.id.limitedTextView) - private val buyButton: ViewGroup + private val buyButton: View private val priceLabel: CurrencyView private val buyLabel: TextView private val pinButton: Button by bindView(customHeader, R.id.pin_button) @@ -142,9 +141,9 @@ class PurchaseDialog(context: Context, component: UserComponent?, val item: Shop setCustomHeaderView(customHeader) addCloseButton() - buyButton = addButton(layoutInflater.inflate(R.layout.dialog_purchase_shopitem_button, null)) { _, _ -> + buyButton = addButton(layoutInflater.inflate(R.layout.dialog_purchase_shopitem_button, null), autoDismiss = false) { _, _ -> onBuyButtonClicked() - } as ViewGroup + } priceLabel = buyButton.findViewById(R.id.priceLabel) buyLabel = buyButton.findViewById(R.id.buy_label) pinButton.setOnClickListener { inventoryRepository.togglePinnedItem(shopItem).subscribe(Consumer { isPinned = !this.isPinned }, RxErrorHandler.handleEmptyError()) } @@ -276,6 +275,7 @@ class PurchaseDialog(context: Context, component: UserComponent?, val item: Shop "hourglasses" == shopItem.currency -> InsufficientHourglassesDialog(context) else -> null }?.show() + return } } dismiss()