mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-25 19:29:54 +01:00
Make backup jobs cancelable.
This commit is contained in:
@@ -29,6 +29,7 @@ import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Checkbox
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.DropdownMenu
|
||||
@@ -56,6 +57,7 @@ import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
@@ -185,7 +187,8 @@ class InternalBackupPlaygroundFragment : ComposeFragment() {
|
||||
.setPositiveButton("Wipe and restore") { _, _ -> viewModel.wipeAllDataAndRestoreFromRemote() }
|
||||
.show()
|
||||
},
|
||||
onBackupTierSelected = { tier -> viewModel.onBackupTierSelected(tier) }
|
||||
onBackupTierSelected = { tier -> viewModel.onBackupTierSelected(tier) },
|
||||
onHaltAllJobs = { viewModel.haltAllJobs() }
|
||||
)
|
||||
},
|
||||
mediaContent = { snackbarHostState ->
|
||||
@@ -279,7 +282,8 @@ fun Screen(
|
||||
onCheckRemoteBackupStateClicked: () -> Unit = {},
|
||||
onTriggerBackupJobClicked: () -> Unit = {},
|
||||
onWipeDataAndRestoreClicked: () -> Unit = {},
|
||||
onBackupTierSelected: (MessageBackupTier?) -> Unit = {}
|
||||
onBackupTierSelected: (MessageBackupTier?) -> Unit = {},
|
||||
onHaltAllJobs: () -> Unit = {}
|
||||
) {
|
||||
val scrollState = rememberScrollState()
|
||||
val options = remember {
|
||||
@@ -320,12 +324,19 @@ fun Screen(
|
||||
Text("Enqueue remote backup")
|
||||
}
|
||||
|
||||
Buttons.LargeTonal(
|
||||
onClick = onWipeDataAndRestoreClicked
|
||||
Button(
|
||||
onClick = onWipeDataAndRestoreClicked,
|
||||
colors = ButtonDefaults.buttonColors(containerColor = Color(0xFFC33C00))
|
||||
) {
|
||||
Text("Wipe data and restore")
|
||||
}
|
||||
|
||||
Buttons.LargeTonal(
|
||||
onClick = onHaltAllJobs
|
||||
) {
|
||||
Text("Halt all backup jobs")
|
||||
}
|
||||
|
||||
Dividers.Default()
|
||||
|
||||
Row(
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.thoughtcrime.securesms.database.MessageType
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.jobs.AttachmentUploadJob
|
||||
import org.thoughtcrime.securesms.jobs.BackfillDigestJob
|
||||
import org.thoughtcrime.securesms.jobs.BackupMessagesJob
|
||||
import org.thoughtcrime.securesms.jobs.BackupRestoreJob
|
||||
import org.thoughtcrime.securesms.jobs.BackupRestoreMediaJob
|
||||
@@ -514,4 +515,11 @@ class InternalBackupPlaygroundViewModel : ViewModel() {
|
||||
fun <T> MutableState<T>.set(update: T.() -> T) {
|
||||
this.value = this.value.update()
|
||||
}
|
||||
|
||||
fun haltAllJobs() {
|
||||
AppDependencies.jobManager.cancelAllInQueue(BackfillDigestJob.QUEUE)
|
||||
AppDependencies.jobManager.cancelAllInQueue("ArchiveAttachmentJobs_0")
|
||||
AppDependencies.jobManager.cancelAllInQueue("ArchiveAttachmentJobs_1")
|
||||
AppDependencies.jobManager.cancelAllInQueue("ArchiveThumbnailUploadJob")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user