From 9b0ecc914e65457f4cafbd08f276183bdb5f8ff8 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 28 Jul 2022 09:57:19 +0200 Subject: [PATCH] Improve account delete flow for subscribed users --- Habitica/res/values/strings.xml | 3 +++ .../preferences/AccountPreferenceFragment.kt | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 51b0dc76b..b1abb3e7b 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -1231,4 +1231,7 @@ Avatar Hair Style Customization Display This set includes all beards and mustaches + Unable to delete + You can\'t delete your account while you have an active subscription. Please cancel the subscription first. + Go to subscription diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt index e50018e24..42ec9c54f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/AccountPreferenceFragment.kt @@ -20,6 +20,8 @@ import com.habitrpg.android.habitica.HabiticaBaseApplication import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.extensions.addCancelButton +import com.habitrpg.android.habitica.extensions.addCloseButton +import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.user.User import com.habitrpg.android.habitica.ui.activities.FixCharacterValuesActivity @@ -404,6 +406,15 @@ class AccountPreferenceFragment : } private fun showAccountDeleteConfirmation(user: User?) { + if (user?.purchased?.plan?.isActive == true && user.purchased?.plan?.dateTerminated == null) { + val dialog = context?.let { HabiticaAlertDialog(it) } + dialog?.setTitle(R.string.unable_to_delete) + dialog?.setMessage(R.string.delete_account_subscription_active) + dialog?.addButton(R.string.go_to_subscription, false) { _, _ -> + MainNavigationController.navigate(R.id.subscriptionPurchaseActivity) + } + dialog?.addCloseButton() + } val habiticaAccountDialog = context?.let { HabiticaAccountDialog(it) } habiticaAccountDialog?.accountAction = "delete_account" habiticaAccountDialog?.accountUpdateConfirmed = this