diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalFragment.kt index 6755a8be14..09c03ae671 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalFragment.kt @@ -30,6 +30,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsText import org.thoughtcrime.securesms.components.settings.app.subscription.boost.Boost import org.thoughtcrime.securesms.components.settings.app.subscription.models.CurrencySelection import org.thoughtcrime.securesms.components.settings.app.subscription.models.NetworkFailure +import org.thoughtcrime.securesms.components.settings.app.subscription.thanks.ThanksForYourSupportBottomSheetDialogFragment import org.thoughtcrime.securesms.components.settings.configure import org.thoughtcrime.securesms.database.InAppPaymentTable import org.thoughtcrime.securesms.databinding.DonateToSignalFragmentBinding @@ -50,7 +51,8 @@ class DonateToSignalFragment : DSLSettingsFragment( layoutId = R.layout.donate_to_signal_fragment ), - DonationCheckoutDelegate.Callback { + DonationCheckoutDelegate.Callback, + ThanksForYourSupportBottomSheetDialogFragment.Callback { companion object { private val TAG = Log.tag(DonateToSignalFragment::class.java) @@ -490,4 +492,8 @@ class DonateToSignalFragment : override fun navigateToDonationPending(inAppPayment: InAppPaymentTable.InAppPayment) { findNavController().safeNavigate(DonateToSignalFragmentDirections.actionDonateToSignalFragmentToDonationPendingBottomSheet(inAppPayment)) } + + override fun onBoostThanksSheetDismissed() { + findNavController().popBackStack() + } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/thanks/ThanksForYourSupportBottomSheetDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/thanks/ThanksForYourSupportBottomSheetDialogFragment.kt index 49c09a54b9..346fbe8a97 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/thanks/ThanksForYourSupportBottomSheetDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/thanks/ThanksForYourSupportBottomSheetDialogFragment.kt @@ -9,7 +9,7 @@ import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.core.content.ContextCompat -import androidx.navigation.fragment.findNavController +import androidx.core.text.method.LinkMovementMethodCompat import com.airbnb.lottie.LottieAnimationView import com.airbnb.lottie.LottieDrawable import com.google.android.material.button.MaterialButton @@ -25,6 +25,7 @@ import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.SpanUtil +import org.thoughtcrime.securesms.util.fragments.findListener import org.thoughtcrime.securesms.util.visible class ThanksForYourSupportBottomSheetDialogFragment : FixedRoundedCornerBottomSheetDialogFragment() { @@ -67,6 +68,7 @@ class ThanksForYourSupportBottomSheetDialogFragment : FixedRoundedCornerBottomSh if (Recipient.self().badges.any { !it.isBoost() }) { subhead.setText(R.string.SubscribeThanksForYourSupportBottomSheetDialogFragment__youve_earned_a_donor_badge) } else { + subhead.movementMethod = LinkMovementMethodCompat.getInstance() subhead.text = SpannableStringBuilder(getString(R.string.SubscribeThanksForYourSupportBottomSheetDialogFragment__youve_earned_a_donor_badge)) .append(" ") .append(getString(R.string.SubscribeThanksForYourSupportBottomSheetDialogFragment__you_can_also)) @@ -106,7 +108,7 @@ class ThanksForYourSupportBottomSheetDialogFragment : FixedRoundedCornerBottomSh controlState = ControlState.DISPLAY } - if (args.isBoost) { + if (args.badge.isBoost()) { badgeView.visibility = View.INVISIBLE lottie.visible = true lottie.playAnimation() @@ -146,15 +148,19 @@ class ThanksForYourSupportBottomSheetDialogFragment : FixedRoundedCornerBottomSh ) } - if (args.isBoost) { - findNavController().popBackStack() - } else { + if (args.badge.isSubscription()) { requireActivity().finish() requireActivity().startActivity(AppSettingsActivity.manageSubscriptions(requireContext())) + } else { + findListener()?.onBoostThanksSheetDismissed() } } companion object { private val TAG = Log.tag(ThanksForYourSupportBottomSheetDialogFragment::class.java) } + + interface Callback { + fun onBoostThanksSheetDismissed() + } } diff --git a/app/src/main/res/navigation/donate_to_signal.xml b/app/src/main/res/navigation/donate_to_signal.xml index 989bef033c..dba68d5d37 100644 --- a/app/src/main/res/navigation/donate_to_signal.xml +++ b/app/src/main/res/navigation/donate_to_signal.xml @@ -122,10 +122,6 @@ app:argType="org.thoughtcrime.securesms.badges.models.Badge" app:nullable="false" /> -