@@ -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