Allow staging users to utilize internal backup switch.

This commit is contained in:
Alex Hart
2025-06-06 12:53:12 -03:00
committed by Greyson Parrelli
parent 882a11c420
commit 23d8969015
4 changed files with 36 additions and 3 deletions

View File

@@ -46,11 +46,13 @@ import org.signal.core.ui.compose.SignalPreview
import org.signal.core.ui.compose.Texts
import org.signal.core.util.money.FiatMoney
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.backup.DeletionState
import org.thoughtcrime.securesms.backup.v2.MessageBackupTier
import org.thoughtcrime.securesms.backup.v2.ui.subscription.MessageBackupsType
import org.thoughtcrime.securesms.components.compose.TextWithBetaLabel
import org.thoughtcrime.securesms.components.settings.app.subscription.MessageBackupsCheckoutLauncher.createBackupsCheckoutLauncher
import org.thoughtcrime.securesms.compose.ComposeFragment
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.payments.FiatMoneyUtil
import org.thoughtcrime.securesms.util.DateUtils
import org.thoughtcrime.securesms.util.navigation.safeNavigate
@@ -382,9 +384,12 @@ private fun InternalBackupOverrideRow(
)
}
val deletionState by SignalStore.backup.deletionStateFlow.collectAsStateWithLifecycle(SignalStore.backup.deletionState)
Row(verticalAlignment = Alignment.CenterVertically) {
options.forEach { option ->
RadioButton(
enabled = deletionState == DeletionState.NONE || deletionState == DeletionState.COMPLETE,
selected = option.value == backupsSettingsState.backupTierInternalOverride,
onClick = { onBackupTierInternalOverrideChanged(option.value) }
)

View File

@@ -21,12 +21,14 @@ import kotlinx.coroutines.rx3.asFlow
import org.signal.core.util.concurrent.SignalDispatchers
import org.signal.core.util.logging.Log
import org.signal.core.util.money.FiatMoney
import org.thoughtcrime.securesms.backup.DeletionState
import org.thoughtcrime.securesms.backup.v2.BackupRepository
import org.thoughtcrime.securesms.backup.v2.MessageBackupTier
import org.thoughtcrime.securesms.backup.v2.ui.subscription.MessageBackupsType
import org.thoughtcrime.securesms.components.settings.app.subscription.RecurringInAppPaymentRepository
import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.util.Environment
import org.thoughtcrime.securesms.util.InternetConnectionObserver
import org.thoughtcrime.securesms.util.RemoteConfig
import java.util.Currency
@@ -90,13 +92,20 @@ class BackupsSettingsViewModel : ViewModel() {
}
Log.d(TAG, "Found enabled state $enabledState. Updating UI state.")
internalStateFlow.update { it.copy(enabledState = enabledState, showBackupTierInternalOverride = RemoteConfig.internalUser, backupTierInternalOverride = SignalStore.backup.backupTierInternalOverride) }
internalStateFlow.update {
it.copy(
enabledState = enabledState,
showBackupTierInternalOverride = RemoteConfig.internalUser || Environment.IS_STAGING,
backupTierInternalOverride = SignalStore.backup.backupTierInternalOverride
)
}
}
}
}
fun onBackupTierInternalOverrideChanged(tier: MessageBackupTier?) {
SignalStore.backup.backupTierInternalOverride = tier
SignalStore.backup.deletionState = DeletionState.NONE
refreshState()
}