diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index 7064d612ba..a23b2e5e9b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -55,6 +55,7 @@ import org.thoughtcrime.securesms.backup.v2.stream.EncryptedBackupWriter import org.thoughtcrime.securesms.backup.v2.stream.PlainTextBackupReader import org.thoughtcrime.securesms.backup.v2.stream.PlainTextBackupWriter import org.thoughtcrime.securesms.backup.v2.ui.subscription.MessageBackupsType +import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentsRepository import org.thoughtcrime.securesms.components.settings.app.subscription.RecurringInAppPaymentRepository import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider import org.thoughtcrime.securesms.crypto.DatabaseSecretProvider @@ -350,12 +351,18 @@ object BackupRepository { fun turnOffAndDisableBackups(): Boolean { return try { Log.d(TAG, "Attempting to disable backups.") - if (SignalStore.backup.backupTier == MessageBackupTier.PAID) { + + val backupsSubscriber = InAppPaymentsRepository.getSubscriber(InAppPaymentSubscriberRecord.Type.BACKUP) + if (SignalStore.backup.backupTier == MessageBackupTier.PAID && backupsSubscriber != null) { Log.d(TAG, "User is currently on a paid tier. Canceling.") RecurringInAppPaymentRepository.cancelActiveSubscriptionSync(InAppPaymentSubscriberRecord.Type.BACKUP) Log.d(TAG, "Successfully canceled paid tier.") } + if (backupsSubscriber == null) { + Log.w(TAG, "No backup subscriber in the database. Proceeding with disabling backups anyway.") + } + Log.d(TAG, "Disabling backups.") SignalStore.backup.disableBackups() SignalDatabase.attachments.clearAllArchiveData() diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt index 576ba81b6a..114c18557b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt @@ -270,10 +270,15 @@ class RemoteBackupsSettingsViewModel : ViewModel() { return } hasActiveSignalSubscription && hasActiveGooglePlayBillingSubscription -> { - Log.d(TAG, "Found erroneous mismatch. Clearing.") + Log.d(TAG, "Found active signal subscription and active google play subscription. Clearing mismatch.") + SignalStore.backup.subscriptionStateMismatchDetected = false + } + !hasActiveSignalSubscription && !hasActiveGooglePlayBillingSubscription -> { + Log.d(TAG, "Found inactive signal subscription and inactive google play subscription. Clearing mismatch.") SignalStore.backup.subscriptionStateMismatchDetected = false } else -> { + Log.w(TAG, "Hit unexpected subscription mismatch state: signal:false, google:true") return } }