Sync backup tier to account record.

This commit is contained in:
Michelle Tang
2025-06-18 14:37:00 -04:00
parent fc1ed8934c
commit c75a6c9715
7 changed files with 62 additions and 0 deletions

View File

@@ -100,6 +100,7 @@ import org.thoughtcrime.securesms.notifications.NotificationChannels
import org.thoughtcrime.securesms.notifications.NotificationIds
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.recipients.RecipientId
import org.thoughtcrime.securesms.storage.StorageSyncHelper
import org.thoughtcrime.securesms.util.RemoteConfig
import org.thoughtcrime.securesms.util.ServiceUtil
import org.thoughtcrime.securesms.util.toMillis
@@ -168,6 +169,7 @@ object BackupRepository {
Log.w(TAG, "Local device thought it was on PAID tier. Downgrading to FREE tier.")
SignalStore.backup.backupTier = MessageBackupTier.FREE
SignalStore.backup.backupExpiredAndDowngraded = true
scheduleSyncForAccountChange()
}
SignalStore.uiHints.markHasEverEnabledRemoteBackups()
@@ -1137,6 +1139,7 @@ object BackupRepository {
SignalStore.backup.lastCheckInMillis = System.currentTimeMillis()
SignalStore.backup.lastCheckInSnoozeMillis = 0
SignalStore.backup.clearDownloadNotifierState()
scheduleSyncForAccountChange()
}
/**
@@ -1655,6 +1658,11 @@ object BackupRepository {
RemoteConfig.restoreAfterRegistration
}
private fun scheduleSyncForAccountChange() {
SignalDatabase.recipients.markNeedsSync(Recipient.self().id)
StorageSyncHelper.scheduleSyncForDataChange()
}
private fun File.deleteAllFilesWithPrefix(prefix: String) {
this.listFiles()?.filter { it.name.startsWith(prefix) }?.forEach { it.delete() }
}

View File

@@ -44,6 +44,7 @@ import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.jobs.InAppPaymentPurchaseTokenJob
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.storage.StorageSyncHelper
import org.thoughtcrime.securesms.util.RemoteConfig
import org.whispersystems.signalservice.api.storage.IAPSubscriptionId
import org.whispersystems.signalservice.internal.push.SubscriptionsConfiguration
@@ -236,6 +237,10 @@ class MessageBackupsFlowViewModel(
private fun validateTypeAndUpdateState(state: MessageBackupsFlowState): MessageBackupsFlowState {
return when (state.selectedMessageBackupTier!!) {
MessageBackupTier.FREE -> {
viewModelScope.launch(SignalDispatchers.IO) {
SignalDatabase.recipients.markNeedsSync(Recipient.self().id)
StorageSyncHelper.scheduleSyncForDataChange()
}
SignalStore.backup.backupTier = MessageBackupTier.FREE
SignalStore.uiHints.markHasEverEnabledRemoteBackups()