From 2c1ff4d2cdd4a25326a77b0626224a9839013225 Mon Sep 17 00:00:00 2001 From: Brosssh <44944126+Brosssh@users.noreply.github.com> Date: Wed, 21 May 2025 18:24:16 +0200 Subject: [PATCH] fix: Patch process cancelation dialog conditions (#2554) --- .../manager/ui/screen/PatcherScreen.kt | 22 +++++++++++++------ gradle/libs.versions.toml | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/app/revanced/manager/ui/screen/PatcherScreen.kt b/app/src/main/java/app/revanced/manager/ui/screen/PatcherScreen.kt index 065f919f..af09bfa5 100644 --- a/app/src/main/java/app/revanced/manager/ui/screen/PatcherScreen.kt +++ b/app/src/main/java/app/revanced/manager/ui/screen/PatcherScreen.kt @@ -62,6 +62,10 @@ fun PatcherScreen( onBackClick: () -> Unit, viewModel: PatcherViewModel ) { + fun onLeave() { + viewModel.onBack() + onBackClick() + } val context = LocalContext.current val exportApkLauncher = @@ -72,7 +76,14 @@ fun PatcherScreen( var showInstallPicker by rememberSaveable { mutableStateOf(false) } var showDismissConfirmationDialog by rememberSaveable { mutableStateOf(false) } - BackHandler(onBack = { showDismissConfirmationDialog = true }) + fun onPageBack() { + if(patcherSucceeded == null) + showDismissConfirmationDialog = true + else + onLeave() + } + + BackHandler(onBack = ::onPageBack) val steps by remember { derivedStateOf { @@ -99,10 +110,7 @@ fun PatcherScreen( if (showDismissConfirmationDialog) { ConfirmDialog( onDismiss = { showDismissConfirmationDialog = false }, - onConfirm = { - viewModel.onBack() - onBackClick() - }, + onConfirm = ::onLeave, title = stringResource(R.string.patcher_stop_confirm_title), description = stringResource(R.string.patcher_stop_confirm_description), icon = Icons.Outlined.Cancel @@ -150,7 +158,7 @@ fun PatcherScreen( AppTopBar( title = stringResource(R.string.patcher), scrollBehavior = scrollBehavior, - onBackClick = { showDismissConfirmationDialog = true } + onBackClick = ::onPageBack ) }, bottomBar = { @@ -229,4 +237,4 @@ fun PatcherScreen( } } } -} +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index adda34a8..245dda89 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ appcompat = "1.7.0" preferences-datastore = "1.1.2" work-runtime = "2.10.1" compose-bom = "2025.05.00" -navigation = "2.9.0" +navigation = "2.8.6" accompanist = "0.37.0" placeholder = "1.1.2" reorderable = "2.4.3"