From 2572dac8a7d3bfa88ff3412f8da629f0d9b97698 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 3 Sep 2025 12:14:58 -0400 Subject: [PATCH] Remove backup frequency setting. --- .../securesms/backup/v2/BackupRepository.kt | 64 ------------ .../backup/v2/ui/BackupAlertDelegate.kt | 4 - .../remote/RemoteBackupsSettingsFragment.kt | 99 ++----------------- .../remote/RemoteBackupsSettingsState.kt | 2 - .../remote/RemoteBackupsSettingsViewModel.kt | 11 --- .../securesms/keyvalue/BackupValues.kt | 15 +-- .../logsubmit/LogSectionRemoteBackups.kt | 1 - .../service/MessageBackupListener.kt | 9 +- app/src/main/res/values/strings.xml | 2 + 9 files changed, 13 insertions(+), 194 deletions(-) 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 6d592af935..81806eaa58 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 @@ -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. */ diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/BackupAlertDelegate.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/BackupAlertDelegate.kt index 1bec25cd4c..37f648fff3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/BackupAlertDelegate.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/BackupAlertDelegate.kt @@ -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) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt index 8fa7f50299..22da68197e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt @@ -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() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsState.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsState.kt index 8c31808419..8674000a5d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsState.kt @@ -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, 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 f9dc3ebbd3..84deabb101 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 @@ -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(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt index 8ebec2ebfc..ab0c52bb0a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt @@ -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( diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionRemoteBackups.kt b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionRemoteBackups.kt index d42a2b4f4e..5aa1b3cf1d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionRemoteBackups.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionRemoteBackups.kt @@ -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") diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/MessageBackupListener.kt b/app/src/main/java/org/thoughtcrime/securesms/service/MessageBackupListener.kt index fd0a28c0e0..5d03b776c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/MessageBackupListener.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/MessageBackupListener.kt @@ -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 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ab42207fbb..de320108e9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8142,6 +8142,8 @@ Loading… Backup frequency + + New media and messages you receive are backed up daily. Back up using cellular