From 71b5645801b938b6cd64ca3da5e848fe8969e472 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 1 Dec 2023 10:41:43 -0500 Subject: [PATCH] Do not show donate megaphone if currently awaiting a donation to clear. --- .../app/subscription/manage/DonationRedemptionJobWatcher.kt | 6 ++++++ .../securesms/megaphone/RemoteMegaphoneRepository.kt | 2 ++ 2 files changed, 8 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/DonationRedemptionJobWatcher.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/DonationRedemptionJobWatcher.kt index e776f66ac2..8668f07224 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/DonationRedemptionJobWatcher.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/DonationRedemptionJobWatcher.kt @@ -24,6 +24,12 @@ object DonationRedemptionJobWatcher { ONE_TIME } + @JvmStatic + @WorkerThread + fun hasPendingRedemptionJob(): Boolean { + return getDonationRedemptionJobStatus(RedemptionType.SUBSCRIPTION).isInProgress() || getDonationRedemptionJobStatus(RedemptionType.ONE_TIME).isInProgress() + } + fun watchSubscriptionRedemption(): Observable = watch(RedemptionType.SUBSCRIPTION) @JvmStatic diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/RemoteMegaphoneRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/megaphone/RemoteMegaphoneRepository.kt index d76cb385cf..fd4d346be5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/RemoteMegaphoneRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/RemoteMegaphoneRepository.kt @@ -12,6 +12,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.badges.models.Badge import org.thoughtcrime.securesms.components.settings.app.subscription.InAppDonations import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonateToSignalActivity +import org.thoughtcrime.securesms.components.settings.app.subscription.manage.DonationRedemptionJobWatcher import org.thoughtcrime.securesms.database.RemoteMegaphoneTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.RemoteMegaphoneRecord @@ -123,6 +124,7 @@ object RemoteMegaphoneRepository { private fun shouldShowDonateMegaphone(): Boolean { return VersionTracker.getDaysSinceFirstInstalled(context) >= 7 && InAppDonations.hasAtLeastOnePaymentMethodAvailable() && + !DonationRedemptionJobWatcher.hasPendingRedemptionJob() && Recipient.self() .badges .stream()