mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-24 02:39:55 +01:00
Allow restoration over cellular
This commit is contained in:
committed by
Greyson Parrelli
parent
0c86ff1f84
commit
a7d7c1da8d
@@ -141,6 +141,7 @@ class RemoteBackupsSettingsFragment : ComposeFragment() {
|
||||
backupsEnabled = state.backupsEnabled,
|
||||
lastBackupTimestamp = state.lastBackupTimestamp,
|
||||
canBackUpUsingCellular = state.canBackUpUsingCellular,
|
||||
canRestoreUsingCellular = state.canRestoreUsingCellular,
|
||||
backupsFrequency = state.backupsFrequency,
|
||||
requestedDialog = state.dialog,
|
||||
requestedSnackbar = state.snackbar,
|
||||
@@ -239,6 +240,10 @@ class RemoteBackupsSettingsFragment : ComposeFragment() {
|
||||
override fun onLearnMoreAboutBackupFailure() {
|
||||
BackupAlertBottomSheet.create(BackupAlert.BackupFailed).show(parentFragmentManager, null)
|
||||
}
|
||||
|
||||
override fun onRestoreUsingCellularClick(canUseCellular: Boolean) {
|
||||
viewModel.setCanRestoreUsingCellular(canUseCellular)
|
||||
}
|
||||
}
|
||||
|
||||
private fun displayBackupKey() {
|
||||
@@ -321,6 +326,7 @@ private interface ContentCallbacks {
|
||||
fun onLearnMoreAboutLostSubscription() = Unit
|
||||
fun onContactSupport() = Unit
|
||||
fun onLearnMoreAboutBackupFailure() = Unit
|
||||
fun onRestoreUsingCellularClick(canUseCellular: Boolean) = Unit
|
||||
}
|
||||
|
||||
@Composable
|
||||
@@ -330,6 +336,7 @@ private fun RemoteBackupsSettingsContent(
|
||||
backupRestoreState: BackupRestoreState,
|
||||
lastBackupTimestamp: Long,
|
||||
canBackUpUsingCellular: Boolean,
|
||||
canRestoreUsingCellular: Boolean,
|
||||
backupsFrequency: BackupFrequency,
|
||||
requestedDialog: RemoteBackupsSettingsState.Dialog,
|
||||
requestedSnackbar: RemoteBackupsSettingsState.Snackbar,
|
||||
@@ -403,6 +410,14 @@ private fun RemoteBackupsSettingsContent(
|
||||
onLearnMoreClick = contentCallbacks::onLearnMoreAboutBackupFailure
|
||||
)
|
||||
}
|
||||
|
||||
item {
|
||||
Rows.ToggleRow(
|
||||
checked = canRestoreUsingCellular,
|
||||
text = stringResource(id = R.string.RemoteBackupsSettingsFragment__restore_using_cellular),
|
||||
onCheckChanged = contentCallbacks::onRestoreUsingCellularClick
|
||||
)
|
||||
}
|
||||
} else if (backupRestoreState is BackupRestoreState.Ready && backupState is RemoteBackupsSettingsState.BackupState.Canceled) {
|
||||
item {
|
||||
BackupReadyToDownloadRow(
|
||||
@@ -420,6 +435,7 @@ private fun RemoteBackupsSettingsContent(
|
||||
backupSize = backupSize,
|
||||
backupsFrequency = backupsFrequency,
|
||||
canBackUpUsingCellular = canBackUpUsingCellular,
|
||||
canRestoreUsingCellular = canRestoreUsingCellular,
|
||||
contentCallbacks = contentCallbacks
|
||||
)
|
||||
} else {
|
||||
@@ -540,6 +556,7 @@ private fun LazyListScope.appendBackupDetailsItems(
|
||||
backupSize: Long,
|
||||
backupsFrequency: BackupFrequency,
|
||||
canBackUpUsingCellular: Boolean,
|
||||
canRestoreUsingCellular: Boolean,
|
||||
contentCallbacks: ContentCallbacks
|
||||
) {
|
||||
item {
|
||||
@@ -1205,6 +1222,7 @@ private fun RemoteBackupsSettingsContentPreview() {
|
||||
backupsEnabled = true,
|
||||
lastBackupTimestamp = -1,
|
||||
canBackUpUsingCellular = false,
|
||||
canRestoreUsingCellular = false,
|
||||
backupsFrequency = BackupFrequency.MANUAL,
|
||||
requestedDialog = RemoteBackupsSettingsState.Dialog.NONE,
|
||||
requestedSnackbar = RemoteBackupsSettingsState.Snackbar.NONE,
|
||||
|
||||
@@ -14,6 +14,7 @@ import kotlin.time.Duration.Companion.seconds
|
||||
data class RemoteBackupsSettingsState(
|
||||
val backupsEnabled: Boolean,
|
||||
val canBackUpUsingCellular: Boolean = false,
|
||||
val canRestoreUsingCellular: Boolean = false,
|
||||
val backupState: BackupState = BackupState.Loading,
|
||||
val backupSize: Long = 0,
|
||||
val backupsFrequency: BackupFrequency = BackupFrequency.DAILY,
|
||||
|
||||
@@ -61,7 +61,8 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
lastBackupTimestamp = SignalStore.backup.lastBackupTime,
|
||||
backupSize = SignalStore.backup.totalBackupSize,
|
||||
backupsFrequency = SignalStore.backup.backupFrequency,
|
||||
canBackUpUsingCellular = SignalStore.backup.backupWithCellular
|
||||
canBackUpUsingCellular = SignalStore.backup.backupWithCellular,
|
||||
canRestoreUsingCellular = SignalStore.backup.restoreWithCellular
|
||||
)
|
||||
)
|
||||
|
||||
@@ -109,6 +110,11 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
_state.update { it.copy(canBackUpUsingCellular = canBackUpUsingCellular) }
|
||||
}
|
||||
|
||||
fun setCanRestoreUsingCellular(canRestoreUsingCellular: Boolean) {
|
||||
SignalStore.backup.restoreWithCellular = canRestoreUsingCellular
|
||||
_state.update { it.copy(canRestoreUsingCellular = canRestoreUsingCellular) }
|
||||
}
|
||||
|
||||
fun setBackupsFrequency(backupsFrequency: BackupFrequency) {
|
||||
SignalStore.backup.backupFrequency = backupsFrequency
|
||||
_state.update { it.copy(backupsFrequency = backupsFrequency) }
|
||||
|
||||
Reference in New Issue
Block a user