mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Remove backup frequency setting.
This commit is contained in:
@@ -100,8 +100,6 @@ import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.groups.GroupId
|
||||
import org.thoughtcrime.securesms.jobmanager.Job
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.DataRestoreConstraint
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.WifiConstraint
|
||||
import org.thoughtcrime.securesms.jobs.ArchiveAttachmentBackfillJob
|
||||
import org.thoughtcrime.securesms.jobs.AvatarGroupsV2DownloadJob
|
||||
import org.thoughtcrime.securesms.jobs.BackupDeleteJob
|
||||
@@ -381,29 +379,6 @@ object BackupRepository {
|
||||
}
|
||||
}
|
||||
|
||||
fun displayManualBackupNotCreatedInThresholdNotification() {
|
||||
if (SignalStore.backup.lastBackupTime <= 0) {
|
||||
return
|
||||
}
|
||||
|
||||
val daysSinceLastBackup = (System.currentTimeMillis().milliseconds - SignalStore.backup.lastBackupTime.milliseconds).inWholeDays.toInt()
|
||||
val context = AppDependencies.application
|
||||
val pendingIntent = PendingIntent.getActivity(context, 0, AppSettingsActivity.remoteBackups(context), cancelCurrent())
|
||||
val notification = NotificationCompat.Builder(context, NotificationChannels.getInstance().APP_ALERTS)
|
||||
.setSmallIcon(R.drawable.ic_notification)
|
||||
.setContentTitle(context.resources.getQuantityString(R.plurals.Notification_no_backup_for_d_days, daysSinceLastBackup, daysSinceLastBackup))
|
||||
.setContentText(context.resources.getQuantityString(R.plurals.Notification_you_have_not_completed_a_backup, daysSinceLastBackup, daysSinceLastBackup))
|
||||
.setContentIntent(pendingIntent)
|
||||
.setAutoCancel(true)
|
||||
.build()
|
||||
|
||||
ServiceUtil.getNotificationManager(context).notify(NotificationIds.MANUAL_BACKUP_NOT_CREATED, notification)
|
||||
}
|
||||
|
||||
fun cancelManualBackupNotCreatedInThresholdNotification() {
|
||||
ServiceUtil.getNotificationManager(AppDependencies.application).cancel(NotificationIds.MANUAL_BACKUP_NOT_CREATED)
|
||||
}
|
||||
|
||||
@Discouraged("This is only public to allow internal settings to call it directly.")
|
||||
fun displayInitialBackupFailureNotification() {
|
||||
val context = AppDependencies.application
|
||||
@@ -527,45 +502,6 @@ object BackupRepository {
|
||||
SignalStore.backup.hasBackupAlreadyRedeemedError = false
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether or not the "No backup" for manual backups should be displayed.
|
||||
* This should only be displayed after a set threshold has passed and the user
|
||||
* has set the MANUAL backups frequency.
|
||||
*/
|
||||
fun shouldDisplayNoManualBackupForTimeoutSheet(): Boolean {
|
||||
if (shouldNotDisplayBackupFailedMessaging()) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (SignalStore.backup.backupFrequency != BackupFrequency.MANUAL) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (SignalStore.backup.lastBackupTime <= 0) {
|
||||
return false
|
||||
}
|
||||
|
||||
val isNetworkConstraintMet = if (SignalStore.backup.backupWithCellular) {
|
||||
NetworkConstraint.isMet(AppDependencies.application)
|
||||
} else {
|
||||
WifiConstraint.isMet(AppDependencies.application)
|
||||
}
|
||||
|
||||
if (!isNetworkConstraintMet) {
|
||||
return false
|
||||
}
|
||||
|
||||
val durationSinceLastBackup = System.currentTimeMillis().milliseconds - SignalStore.backup.lastBackupTime.milliseconds
|
||||
if (durationSinceLastBackup < MANUAL_BACKUP_NOTIFICATION_THRESHOLD) {
|
||||
return false
|
||||
}
|
||||
|
||||
val display = !SignalStore.backup.isNoBackupForManualUploadNotified
|
||||
SignalStore.backup.isNoBackupForManualUploadNotified = false
|
||||
|
||||
return display
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the watermark for the indicator display.
|
||||
*/
|
||||
|
||||
@@ -38,10 +38,6 @@ object BackupAlertDelegate {
|
||||
} else if (BackupRepository.shouldDisplayBackupExpiredAndDowngradedSheet()) {
|
||||
Log.d(TAG, "Displaying ExpiredAndDowngraded sheet.")
|
||||
BackupAlertBottomSheet.create(BackupAlert.ExpiredAndDowngraded).show(fragmentManager, FRAGMENT_TAG)
|
||||
} else if (BackupRepository.shouldDisplayNoManualBackupForTimeoutSheet()) {
|
||||
Log.d(TAG, "Displaying NoManualBackupBottomSheet.")
|
||||
NoManualBackupBottomSheet().show(fragmentManager, FRAGMENT_TAG)
|
||||
BackupRepository.displayManualBackupNotCreatedInThresholdNotification()
|
||||
} else if (BackupRepository.shouldDisplayOutOfRemoteStorageSpaceSheet()) {
|
||||
Log.d(TAG, "Displaying NoRemoteStorageSpaceAvailableBottomSheet.")
|
||||
NoRemoteStorageSpaceAvailableBottomSheet().show(fragmentManager, FRAGMENT_TAG)
|
||||
|
||||
@@ -16,7 +16,6 @@ import androidx.compose.animation.core.tween
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Arrangement.spacedBy
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
@@ -30,7 +29,6 @@ import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.LazyListScope
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
@@ -40,7 +38,6 @@ import androidx.compose.material3.LinearProgressIndicator
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
@@ -191,7 +188,7 @@ class RemoteBackupsSettingsFragment : ComposeFragment() {
|
||||
viewModel.requestDialog(RemoteBackupsSettingsState.Dialog.TURN_OFF_AND_DELETE_BACKUPS)
|
||||
}
|
||||
|
||||
override fun onChangeBackupFrequencyClick() {
|
||||
override fun onBackupFrequencyClick() {
|
||||
viewModel.requestDialog(RemoteBackupsSettingsState.Dialog.BACKUP_FREQUENCY)
|
||||
}
|
||||
|
||||
@@ -203,10 +200,6 @@ class RemoteBackupsSettingsFragment : ComposeFragment() {
|
||||
viewModel.requestSnackbar(RemoteBackupsSettingsState.Snackbar.NONE)
|
||||
}
|
||||
|
||||
override fun onSelectBackupsFrequencyChange(newFrequency: BackupFrequency) {
|
||||
viewModel.setBackupsFrequency(newFrequency)
|
||||
}
|
||||
|
||||
override fun onTurnOffAndDeleteBackupsConfirm() {
|
||||
viewModel.turnOffAndDeleteBackups()
|
||||
}
|
||||
@@ -365,10 +358,9 @@ private interface ContentCallbacks {
|
||||
fun onBackupNowClick() = Unit
|
||||
fun onCancelUploadClick() = Unit
|
||||
fun onTurnOffAndDeleteBackupsClick() = Unit
|
||||
fun onChangeBackupFrequencyClick() = Unit
|
||||
fun onBackupFrequencyClick() = Unit
|
||||
fun onDialogDismissed() = Unit
|
||||
fun onSnackbarDismissed() = Unit
|
||||
fun onSelectBackupsFrequencyChange(newFrequency: BackupFrequency) = Unit
|
||||
fun onTurnOffAndDeleteBackupsConfirm() = Unit
|
||||
fun onViewBackupKeyClick() = Unit
|
||||
fun onStartMediaRestore() = Unit
|
||||
@@ -527,7 +519,6 @@ private fun RemoteBackupsSettingsContent(
|
||||
canBackupMessagesRun = state.canBackupMessagesJobRun,
|
||||
lastBackupTimestamp = state.lastBackupTimestamp,
|
||||
backupMediaSize = state.backupMediaSize,
|
||||
backupsFrequency = state.backupsFrequency,
|
||||
canBackUpUsingCellular = state.canBackUpUsingCellular,
|
||||
canRestoreUsingCellular = state.canRestoreUsingCellular,
|
||||
canBackUpNow = !state.isOutOfStorageSpace,
|
||||
@@ -581,10 +572,11 @@ private fun RemoteBackupsSettingsContent(
|
||||
}
|
||||
|
||||
RemoteBackupsSettingsState.Dialog.BACKUP_FREQUENCY -> {
|
||||
BackupFrequencyDialog(
|
||||
selected = state.backupsFrequency,
|
||||
onSelected = contentCallbacks::onSelectBackupsFrequencyChange,
|
||||
onDismiss = contentCallbacks::onDialogDismissed
|
||||
Dialogs.SimpleAlertDialog(
|
||||
title = stringResource(R.string.RemoteBackupsSettingsFragment__backup_frequency),
|
||||
body = stringResource(R.string.RemoteBackupsSettingsFragment__backup_frequency_dialog_body),
|
||||
confirm = stringResource(android.R.string.ok),
|
||||
onConfirm = contentCallbacks::onDialogDismissed
|
||||
)
|
||||
}
|
||||
|
||||
@@ -834,7 +826,6 @@ private fun LazyListScope.appendBackupDetailsItems(
|
||||
canBackupMessagesRun: Boolean,
|
||||
lastBackupTimestamp: Long,
|
||||
backupMediaSize: Long,
|
||||
backupsFrequency: BackupFrequency,
|
||||
canBackUpUsingCellular: Boolean,
|
||||
canRestoreUsingCellular: Boolean,
|
||||
canBackUpNow: Boolean,
|
||||
@@ -938,13 +929,13 @@ private fun LazyListScope.appendBackupDetailsItems(
|
||||
color = MaterialTheme.colorScheme.onSurface
|
||||
)
|
||||
Text(
|
||||
text = getTextForFrequency(backupsFrequency = backupsFrequency),
|
||||
text = stringResource(id = R.string.RemoteBackupsSettingsFragment__daily),
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||
)
|
||||
}
|
||||
},
|
||||
onClick = contentCallbacks::onChangeBackupFrequencyClick
|
||||
onClick = contentCallbacks::onBackupFrequencyClick
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1658,64 +1649,6 @@ private fun ResumeRestoreOverCellularDialog(
|
||||
)
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
private fun BackupFrequencyDialog(
|
||||
selected: BackupFrequency,
|
||||
onSelected: (BackupFrequency) -> Unit,
|
||||
onDismiss: () -> Unit
|
||||
) {
|
||||
BasicAlertDialog(
|
||||
onDismissRequest = onDismiss
|
||||
) {
|
||||
Surface(
|
||||
color = Dialogs.Defaults.containerColor,
|
||||
shape = Dialogs.Defaults.shape,
|
||||
shadowElevation = Dialogs.Defaults.TonalElevation
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Text(
|
||||
text = stringResource(id = R.string.RemoteBackupsSettingsFragment__backup_frequency),
|
||||
style = MaterialTheme.typography.headlineMedium,
|
||||
color = MaterialTheme.colorScheme.onSurface,
|
||||
modifier = Modifier.padding(24.dp)
|
||||
)
|
||||
|
||||
BackupFrequency.entries.forEach {
|
||||
Rows.RadioRow(
|
||||
selected = selected == it,
|
||||
text = getTextForFrequency(backupsFrequency = it),
|
||||
label = when (it) {
|
||||
BackupFrequency.MANUAL -> stringResource(id = R.string.RemoteBackupsSettingsFragment__by_tapping_back_up_now)
|
||||
else -> null
|
||||
},
|
||||
modifier = Modifier
|
||||
.padding(end = 24.dp)
|
||||
.clickable(onClick = {
|
||||
onSelected(it)
|
||||
onDismiss()
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
Box(
|
||||
contentAlignment = Alignment.CenterEnd,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = 24.dp)
|
||||
.padding(bottom = 24.dp)
|
||||
) {
|
||||
TextButton(onClick = onDismiss) {
|
||||
Text(text = stringResource(id = android.R.string.cancel))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun BackupReadyToDownloadRow(
|
||||
ready: BackupRestoreState.Ready,
|
||||
@@ -1772,7 +1705,6 @@ private fun RemoteBackupsSettingsContentPreview() {
|
||||
lastBackupTimestamp = -1,
|
||||
canBackUpUsingCellular = false,
|
||||
canRestoreUsingCellular = false,
|
||||
backupsFrequency = BackupFrequency.MANUAL,
|
||||
dialog = RemoteBackupsSettingsState.Dialog.NONE,
|
||||
snackbar = RemoteBackupsSettingsState.Snackbar.NONE,
|
||||
backupMediaSize = 2300000,
|
||||
@@ -1801,7 +1733,6 @@ private fun RemoteBackupsSettingsInternalUserContentPreview() {
|
||||
lastBackupTimestamp = -1,
|
||||
canBackUpUsingCellular = false,
|
||||
canRestoreUsingCellular = false,
|
||||
backupsFrequency = BackupFrequency.MANUAL,
|
||||
dialog = RemoteBackupsSettingsState.Dialog.NONE,
|
||||
snackbar = RemoteBackupsSettingsState.Snackbar.NONE,
|
||||
backupMediaSize = 2300000,
|
||||
@@ -2108,18 +2039,6 @@ private fun SkipDownloadDialogPreview() {
|
||||
}
|
||||
}
|
||||
|
||||
@SignalPreview
|
||||
@Composable
|
||||
private fun BackupFrequencyDialogPreview() {
|
||||
Previews.Preview {
|
||||
BackupFrequencyDialog(
|
||||
selected = BackupFrequency.DAILY,
|
||||
onSelected = {},
|
||||
onDismiss = {}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@SignalPreview
|
||||
@Composable
|
||||
private fun BackupDeletionCardPreview() {
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
package org.thoughtcrime.securesms.components.settings.app.backups.remote
|
||||
|
||||
import org.signal.core.util.ByteSize
|
||||
import org.thoughtcrime.securesms.backup.v2.BackupFrequency
|
||||
import org.thoughtcrime.securesms.backup.v2.MessageBackupTier
|
||||
import org.thoughtcrime.securesms.components.settings.app.backups.BackupState
|
||||
|
||||
@@ -24,7 +23,6 @@ data class RemoteBackupsSettingsState(
|
||||
val totalAllowedStorageSpace: String = "",
|
||||
val backupState: BackupState,
|
||||
val backupMediaSize: Long = -1L,
|
||||
val backupsFrequency: BackupFrequency = BackupFrequency.DAILY,
|
||||
val lastBackupTimestamp: Long = 0,
|
||||
val dialog: Dialog = Dialog.NONE,
|
||||
val snackbar: Snackbar = Snackbar.NONE,
|
||||
|
||||
@@ -30,7 +30,6 @@ import org.signal.core.util.throttleLatest
|
||||
import org.signal.donations.InAppPaymentType
|
||||
import org.thoughtcrime.securesms.backup.ArchiveUploadProgress
|
||||
import org.thoughtcrime.securesms.backup.DeletionState
|
||||
import org.thoughtcrime.securesms.backup.v2.BackupFrequency
|
||||
import org.thoughtcrime.securesms.backup.v2.BackupRepository
|
||||
import org.thoughtcrime.securesms.backup.v2.MessageBackupTier
|
||||
import org.thoughtcrime.securesms.backup.v2.ui.status.BackupStatusData
|
||||
@@ -45,7 +44,6 @@ import org.thoughtcrime.securesms.jobmanager.impl.BackupMessagesConstraint
|
||||
import org.thoughtcrime.securesms.jobs.BackupMessagesJob
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.keyvalue.protos.ArchiveUploadProgressState
|
||||
import org.thoughtcrime.securesms.service.MessageBackupListener
|
||||
import org.thoughtcrime.securesms.util.Environment
|
||||
import org.thoughtcrime.securesms.util.RemoteConfig
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||
@@ -70,7 +68,6 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
canBackupMessagesJobRun = BackupMessagesConstraint.isMet(AppDependencies.application),
|
||||
canViewBackupKey = !TextSecurePreferences.isUnauthorizedReceived(AppDependencies.application),
|
||||
lastBackupTimestamp = SignalStore.backup.lastBackupTime,
|
||||
backupsFrequency = SignalStore.backup.backupFrequency,
|
||||
canBackUpUsingCellular = SignalStore.backup.backupWithCellular,
|
||||
canRestoreUsingCellular = SignalStore.backup.restoreWithCellular,
|
||||
includeDebuglog = SignalStore.internal.includeDebuglogInBackup.takeIf { RemoteConfig.internalUser }
|
||||
@@ -185,13 +182,6 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
_state.update { it.copy(canRestoreUsingCellular = true) }
|
||||
}
|
||||
|
||||
fun setBackupsFrequency(backupsFrequency: BackupFrequency) {
|
||||
SignalStore.backup.backupFrequency = backupsFrequency
|
||||
_state.update { it.copy(backupsFrequency = backupsFrequency) }
|
||||
MessageBackupListener.setNextBackupTimeToIntervalFromNow()
|
||||
MessageBackupListener.schedule(AppDependencies.application)
|
||||
}
|
||||
|
||||
fun beginMediaRestore() {
|
||||
BackupRepository.resumeMediaRestore()
|
||||
}
|
||||
@@ -302,7 +292,6 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
|
||||
lastBackupTimestamp = SignalStore.backup.lastBackupTime,
|
||||
canBackupMessagesJobRun = BackupMessagesConstraint.isMet(AppDependencies.application),
|
||||
backupMediaSize = getBackupMediaSize(),
|
||||
backupsFrequency = SignalStore.backup.backupFrequency,
|
||||
canBackUpUsingCellular = SignalStore.backup.backupWithCellular,
|
||||
canRestoreUsingCellular = SignalStore.backup.restoreWithCellular,
|
||||
isOutOfStorageSpace = BackupRepository.shouldDisplayOutOfRemoteStorageSpaceUx(),
|
||||
|
||||
@@ -6,8 +6,6 @@ import okio.withLock
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.backup.DeletionState
|
||||
import org.thoughtcrime.securesms.backup.RestoreState
|
||||
import org.thoughtcrime.securesms.backup.v2.BackupFrequency
|
||||
import org.thoughtcrime.securesms.backup.v2.BackupRepository
|
||||
import org.thoughtcrime.securesms.backup.v2.MessageBackupTier
|
||||
import org.thoughtcrime.securesms.components.settings.app.backups.BackupStateObserver
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.BackupMessagesConstraintObserver
|
||||
@@ -53,7 +51,6 @@ class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
private const val KEY_LAST_BACKUP_TIME = "backup.lastBackupTime"
|
||||
private const val KEY_LAST_ATTACHMENT_RECONCILIATION_TIME = "backup.lastBackupMediaSyncTime"
|
||||
private const val KEY_TOTAL_RESTORABLE_ATTACHMENT_SIZE = "backup.totalRestorableAttachmentSize"
|
||||
private const val KEY_BACKUP_FREQUENCY = "backup.backupFrequency"
|
||||
private const val KEY_LAST_BACKUP_PROTO_VERSION = "backup.lastBackupProtoVersion"
|
||||
|
||||
private const val KEY_CDN_MEDIA_PATH = "backup.cdn.mediaPath"
|
||||
@@ -143,8 +140,6 @@ class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
get() = getLong(KEY_LAST_BACKUP_TIME, -1)
|
||||
set(value) {
|
||||
putLong(KEY_LAST_BACKUP_TIME, value)
|
||||
isNoBackupForManualUploadNotified = false
|
||||
BackupRepository.cancelManualBackupNotCreatedInThresholdNotification()
|
||||
clearMessageBackupFailureSheetWatermark()
|
||||
}
|
||||
|
||||
@@ -154,7 +149,6 @@ class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
val daysSinceLastBackup: Int get() = (System.currentTimeMillis().milliseconds - lastBackupTime.milliseconds).inWholeDays.toInt()
|
||||
|
||||
var lastAttachmentReconciliationTime: Long by longValue(KEY_LAST_ATTACHMENT_RECONCILIATION_TIME, -1)
|
||||
var backupFrequency: BackupFrequency by enumValue(KEY_BACKUP_FREQUENCY, BackupFrequency.DAILY, BackupFrequency.Serializer)
|
||||
|
||||
var userManuallySkippedMediaRestore: Boolean by booleanValue(KEY_USER_MANUALLY_SKIPPED_MEDIA_RESTORE, false)
|
||||
|
||||
@@ -479,14 +473,7 @@ class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
}
|
||||
|
||||
private fun getNextBackupFailureSheetSnoozeTime(previous: Duration): Duration {
|
||||
val timeoutPerSnooze = when (SignalStore.backup.backupFrequency) {
|
||||
BackupFrequency.DAILY -> 7.days
|
||||
BackupFrequency.WEEKLY -> 14.days
|
||||
BackupFrequency.MONTHLY -> 14.days
|
||||
BackupFrequency.MANUAL -> Int.MAX_VALUE.days
|
||||
}
|
||||
|
||||
return previous + timeoutPerSnooze
|
||||
return previous + 7.days
|
||||
}
|
||||
|
||||
class SerializedCredentials(
|
||||
|
||||
@@ -36,7 +36,6 @@ class LogSectionRemoteBackups : LogSection {
|
||||
output.append("Can backup with cellular: ${SignalStore.backup.backupWithCellular}\n")
|
||||
output.append("Has backup been uploaded: ${SignalStore.backup.hasBackupBeenUploaded}\n")
|
||||
output.append("Has backup failure: ${SignalStore.backup.hasBackupFailure}\n")
|
||||
output.append("Backup frequency: ${SignalStore.backup.backupFrequency.name}\n")
|
||||
output.append("Optimize storage: ${SignalStore.backup.optimizeStorage}\n")
|
||||
output.append("Detected subscription state mismatch: ${SignalStore.backup.subscriptionStateMismatchDetected}\n")
|
||||
output.append("Last verified key time: ${SignalStore.backup.lastVerifyKeyTime}\n")
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
package org.thoughtcrime.securesms.service
|
||||
|
||||
import android.content.Context
|
||||
import org.thoughtcrime.securesms.backup.v2.BackupFrequency
|
||||
import org.thoughtcrime.securesms.jobs.BackupMessagesJob
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.util.RemoteConfig
|
||||
@@ -58,13 +57,7 @@ class MessageBackupListener : PersistentAlarmManagerListener() {
|
||||
val now = LocalDateTime.now()
|
||||
val hour = SignalStore.settings.backupHour
|
||||
val minute = SignalStore.settings.backupMinute
|
||||
var next = getNextDailyBackupTimeFromNowWithJitter(now, hour, minute, maxJitterSeconds)
|
||||
next = when (SignalStore.backup.backupFrequency) {
|
||||
BackupFrequency.MANUAL -> next.plusDays(364)
|
||||
BackupFrequency.MONTHLY -> next.plusDays(29)
|
||||
BackupFrequency.WEEKLY -> next.plusDays(6)
|
||||
else -> next
|
||||
}
|
||||
val next = getNextDailyBackupTimeFromNowWithJitter(now, hour, minute, maxJitterSeconds).plusDays(1)
|
||||
val nextTime = next.toMillis()
|
||||
SignalStore.backup.nextBackupTime = nextTime
|
||||
return nextTime
|
||||
|
||||
@@ -8142,6 +8142,8 @@
|
||||
<string name="RemoteBackupsSettingsFragment__loading">Loading…</string>
|
||||
<!-- Row label for backup frequency -->
|
||||
<string name="RemoteBackupsSettingsFragment__backup_frequency">Backup frequency</string>
|
||||
<!-- The body of a pop-up dialog explaining that backups are performed every day. -->
|
||||
<string name="RemoteBackupsSettingsFragment__backup_frequency_dialog_body">New media and messages you receive are backed up daily.</string>
|
||||
<!-- Toggle row label for allowing backups to occur while on cellular connection -->
|
||||
<string name="RemoteBackupsSettingsFragment__back_up_using_cellular">Back up using cellular</string>
|
||||
<!-- Row label for viewing recovery key -->
|
||||
|
||||
Reference in New Issue
Block a user