@@ -62,6 +62,10 @@ fun PatcherScreen(
6262 onBackClick : () -> Unit ,
6363 viewModel : PatcherViewModel
6464) {
65+ fun onLeave () {
66+ viewModel.onBack()
67+ onBackClick()
68+ }
6569
6670 val context = LocalContext .current
6771 val exportApkLauncher =
@@ -72,7 +76,14 @@ fun PatcherScreen(
7276 var showInstallPicker by rememberSaveable { mutableStateOf(false ) }
7377 var showDismissConfirmationDialog by rememberSaveable { mutableStateOf(false ) }
7478
75- BackHandler (onBack = { showDismissConfirmationDialog = true })
79+ fun onPageBack () {
80+ if (patcherSucceeded == null )
81+ showDismissConfirmationDialog = true
82+ else
83+ onLeave()
84+ }
85+
86+ BackHandler (onBack = ::onPageBack)
7687
7788 val steps by remember {
7889 derivedStateOf {
@@ -99,10 +110,7 @@ fun PatcherScreen(
99110 if (showDismissConfirmationDialog) {
100111 ConfirmDialog (
101112 onDismiss = { showDismissConfirmationDialog = false },
102- onConfirm = {
103- viewModel.onBack()
104- onBackClick()
105- },
113+ onConfirm = ::onLeave,
106114 title = stringResource(R .string.patcher_stop_confirm_title),
107115 description = stringResource(R .string.patcher_stop_confirm_description),
108116 icon = Icons .Outlined .Cancel
@@ -150,7 +158,7 @@ fun PatcherScreen(
150158 AppTopBar (
151159 title = stringResource(R .string.patcher),
152160 scrollBehavior = scrollBehavior,
153- onBackClick = { showDismissConfirmationDialog = true }
161+ onBackClick = ::onPageBack
154162 )
155163 },
156164 bottomBar = {
@@ -229,4 +237,4 @@ fun PatcherScreen(
229237 }
230238 }
231239 }
232- }
240+ }
0 commit comments