diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundFragment.kt index 6d04408b1e..97a7ebabd8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundFragment.kt @@ -71,14 +71,15 @@ import org.signal.core.util.getLength import org.thoughtcrime.securesms.MainActivity import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.backup.v2.BackupRepository -import org.thoughtcrime.securesms.backup.v2.MessageBackupTier import org.thoughtcrime.securesms.backup.v2.ui.BackupAlert import org.thoughtcrime.securesms.backup.v2.ui.BackupAlertBottomSheet import org.thoughtcrime.securesms.components.settings.app.internal.backup.InternalBackupPlaygroundViewModel.DialogState import org.thoughtcrime.securesms.components.settings.app.internal.backup.InternalBackupPlaygroundViewModel.ScreenState import org.thoughtcrime.securesms.compose.ComposeFragment import org.thoughtcrime.securesms.dependencies.AppDependencies +import org.thoughtcrime.securesms.jobs.ArchiveAttachmentBackfillJob import org.thoughtcrime.securesms.jobs.ArchiveAttachmentReconciliationJob +import org.thoughtcrime.securesms.jobs.ArchiveThumbnailBackfillJob import org.thoughtcrime.securesms.jobs.BackupRestoreMediaJob import org.thoughtcrime.securesms.jobs.LocalBackupJob import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -155,6 +156,8 @@ class InternalBackupPlaygroundFragment : ComposeFragment() { onCheckRemoteBackupStateClicked = { viewModel.checkRemoteBackupState() }, onEnqueueRemoteBackupClicked = { viewModel.triggerBackupJob() }, onEnqueueReconciliationClicked = { AppDependencies.jobManager.add(ArchiveAttachmentReconciliationJob(forced = true)) }, + onEnqueueAttachmentBackfillJob = { AppDependencies.jobManager.add(ArchiveAttachmentBackfillJob()) }, + onEnqueueThumbnailBackfillJob = { AppDependencies.jobManager.add(ArchiveThumbnailBackfillJob()) }, onEnqueueMediaRestoreClicked = { AppDependencies.jobManager.add(BackupRestoreMediaJob()) }, onHaltAllBackupJobsClicked = { viewModel.haltAllJobs() }, onValidateBackupClicked = { viewModel.validateBackup() }, @@ -338,6 +341,8 @@ fun Screen( onEnqueueRemoteBackupClicked: () -> Unit = {}, onEnqueueReconciliationClicked: () -> Unit = {}, onEnqueueMediaRestoreClicked: () -> Unit = {}, + onEnqueueAttachmentBackfillJob: () -> Unit = {}, + onEnqueueThumbnailBackfillJob: () -> Unit = {}, onWipeDataAndRestoreFromRemoteClicked: () -> Unit = {}, onHaltAllBackupJobsClicked: () -> Unit = {}, onSavePlaintextCopyOfRemoteBackupClicked: () -> Unit = {}, @@ -353,13 +358,6 @@ fun Screen( ) { val context = LocalContext.current val scrollState = rememberScrollState() - val options = remember { - mapOf( - "None" to null, - "Free" to MessageBackupTier.FREE, - "Paid" to MessageBackupTier.PAID - ) - } when (state.dialog) { DialogState.None -> Unit @@ -409,6 +407,18 @@ fun Screen( onClick = onEnqueueReconciliationClicked ) + Rows.TextRow( + text = "Enqueue attachment backfill job", + label = "Schedules a job that will upload any attachments that haven't been uploaded yet.", + onClick = onEnqueueAttachmentBackfillJob + ) + + Rows.TextRow( + text = "Enqueue thumbnail backfill job", + label = "Schedules a job that will generate and upload any thumbnails that been uploaded yet.", + onClick = onEnqueueThumbnailBackfillJob + ) + Rows.TextRow( text = "Enqueue media restore job", label = "Schedules a job that will restore any NEEDS_RESTORE media.",