diff --git a/Habitica/res/layout/fragment_bottomsheet_subscription.xml b/Habitica/res/layout/fragment_bottomsheet_subscription.xml
index d8c025b31..3caa6a459 100644
--- a/Habitica/res/layout/fragment_bottomsheet_subscription.xml
+++ b/Habitica/res/layout/fragment_bottomsheet_subscription.xml
@@ -109,7 +109,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="@dimen/spacing_small"
android:gravity="center"
android:lineSpacingExtra="4dp"
android:text="@string/subscribe_prompt_2"
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index a7c03d81a..66644415d 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -1415,10 +1415,12 @@
Get two chances at new equipment from the Armoire for the price of one
Subscribe to open again for free!
Get an extra chance at the Armoire each time you buy it with a subscription
+ Subscribers get extra chances at the Armoire and these other benefits!
Open again for free!
Second chance: Hold on with 1HP!
SUB PERK
Get a second chance each day to avoid running out of HP with a subscription
+ Subscribers get a second chance at life each day and these other benefits!
You already used your second chance today. It’s available again in %s
You got a second chance with 1HP!
Watch ad to hold on with 1HP!
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt
index 33c44d11a..0bb373701 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt
@@ -16,8 +16,14 @@ import com.habitrpg.android.habitica.databinding.ActivityArmoireBinding
import com.habitrpg.android.habitica.extensions.observeOnce
import com.habitrpg.android.habitica.helpers.AdHandler
import com.habitrpg.android.habitica.helpers.AdType
+import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.helpers.AppConfigManager
+import com.habitrpg.android.habitica.helpers.EventCategory
+import com.habitrpg.android.habitica.helpers.HitType
import com.habitrpg.android.habitica.helpers.ReviewManager
+import com.habitrpg.android.habitica.ui.fragments.purchases.EventOutcomeSubscriptionBottomSheetFragment
+import com.habitrpg.android.habitica.ui.fragments.purchases.EventOutcomeSubscriptionBottomSheetFragment.Companion.EVENT_ARMOIRE_OPENED
+import com.habitrpg.android.habitica.ui.fragments.purchases.SubscriptionBottomSheetFragment
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
import com.habitrpg.android.habitica.ui.views.ads.AdButton
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaBottomSheetDialog
@@ -130,7 +136,10 @@ class ArmoireActivity : BaseActivity() {
}
binding.subscribeModalButton.setOnClickListener {
- MainNavigationController.navigate(R.id.subscriptionPurchaseActivity)
+ val subscriptionBottomSheet = EventOutcomeSubscriptionBottomSheetFragment().apply {
+ eventType = EVENT_ARMOIRE_OPENED
+ }
+ subscriptionBottomSheet.show(supportFragmentManager, EventOutcomeSubscriptionBottomSheetFragment.TAG)
}
binding.closeButton.setOnClickListener {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt
index aecab449a..318dde577 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt
@@ -16,6 +16,7 @@ import com.habitrpg.android.habitica.extensions.observeOnce
import com.habitrpg.android.habitica.helpers.AdHandler
import com.habitrpg.android.habitica.helpers.AdType
import com.habitrpg.android.habitica.helpers.AppConfigManager
+import com.habitrpg.android.habitica.ui.fragments.purchases.EventOutcomeSubscriptionBottomSheetFragment
import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
@@ -115,6 +116,12 @@ class DeathActivity : BaseActivity() {
} else if (it?.isSubscribed == false) {
binding.reviveSubscriberWrapper.visibility = View.GONE
binding.unsubbedWrapper.visibility = View.VISIBLE
+ binding.subscribeModalButton.setOnClickListener {
+ val subscriptionBottomSheet = EventOutcomeSubscriptionBottomSheetFragment().apply {
+ eventType = EventOutcomeSubscriptionBottomSheetFragment.EVENT_DEATH_SCREEN
+ }
+ subscriptionBottomSheet.show(supportFragmentManager, EventOutcomeSubscriptionBottomSheetFragment.TAG)
+ }
}
}
} else {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/EventOutcomeSubscriptionBottomSheetFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/EventOutcomeSubscriptionBottomSheetFragment.kt
new file mode 100644
index 000000000..5840eb1aa
--- /dev/null
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/EventOutcomeSubscriptionBottomSheetFragment.kt
@@ -0,0 +1,35 @@
+package com.habitrpg.android.habitica.ui.fragments.purchases
+
+import android.os.Bundle
+import android.view.View
+import com.habitrpg.android.habitica.R
+
+class EventOutcomeSubscriptionBottomSheetFragment : SubscriptionBottomSheetFragment() {
+
+ var eventType: String = ""
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ when (eventType) {
+ EVENT_ARMOIRE_OPENED -> setArmoireEventSubscriptionViews()
+ EVENT_DEATH_SCREEN -> setDeathScreenEventSubscriptionViews()
+ }
+
+ }
+
+ private fun setArmoireEventSubscriptionViews() {
+ binding.subscriberBenefitBanner.visibility = View.GONE
+ binding.subscribeBenefits.text = getString(R.string.subscribe_second_armoire_open_text)
+ }
+
+ private fun setDeathScreenEventSubscriptionViews() {
+ binding.subscriberBenefitBanner.visibility = View.GONE
+ binding.subscribeBenefits.text = getString(R.string.subscribe_second_chance_incentive_text)
+ }
+
+ companion object {
+ const val TAG = "EventOutcomeSubscriptionBottomSheet"
+ const val EVENT_ARMOIRE_OPENED = "armoire_opened"
+ const val EVENT_DEATH_SCREEN = "death_screen"
+ }
+}
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionBottomSheetFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionBottomSheetFragment.kt
index 1605a699b..2bb3c9a2f 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionBottomSheetFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionBottomSheetFragment.kt
@@ -1,20 +1,12 @@
package com.habitrpg.android.habitica.ui.fragments.purchases
import android.app.Dialog
-import android.content.Context
import android.content.DialogInterface
-import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.EditText
-import androidx.compose.foundation.layout.padding
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.draw.clip
-import androidx.compose.ui.unit.dp
import androidx.core.view.isVisible
-import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import com.android.billingclient.api.ProductDetails
import com.google.android.material.bottomsheet.BottomSheetBehavior
@@ -23,23 +15,13 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.data.UserRepository
-import com.habitrpg.android.habitica.databinding.DialogHabiticaAccountBinding
import com.habitrpg.android.habitica.databinding.FragmentBottomsheetSubscriptionBinding
-import com.habitrpg.android.habitica.databinding.FragmentSubscriptionBinding
-import com.habitrpg.android.habitica.extensions.addCancelButton
import com.habitrpg.android.habitica.helpers.Analytics
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.PurchaseHandler
import com.habitrpg.android.habitica.helpers.PurchaseTypes
import com.habitrpg.android.habitica.models.user.User
-import com.habitrpg.android.habitica.ui.activities.GiftSubscriptionActivity
-import com.habitrpg.android.habitica.ui.fragments.PromoInfoFragment
-import com.habitrpg.android.habitica.ui.theme.HabiticaTheme
-import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
-import com.habitrpg.android.habitica.ui.views.promo.BirthdayBanner
import com.habitrpg.android.habitica.ui.views.subscriptions.SubscriptionOptionView
-import com.habitrpg.common.habitica.extensions.isUsingNightModeResources
-import com.habitrpg.common.habitica.extensions.layoutInflater
import com.habitrpg.common.habitica.extensions.loadImage
import com.habitrpg.common.habitica.helpers.ExceptionHandler
import com.habitrpg.common.habitica.helpers.MainNavigationController
@@ -52,10 +34,10 @@ import kotlinx.coroutines.withContext
import javax.inject.Inject
@AndroidEntryPoint
-class SubscriptionBottomSheetFragment : BottomSheetDialogFragment() {
+open class SubscriptionBottomSheetFragment : BottomSheetDialogFragment() {
private var _binding: FragmentBottomsheetSubscriptionBinding? = null
- private val binding get() = _binding!!
+ val binding get() = _binding!!
@Inject
lateinit var userRepository: UserRepository