Skip to content

Commit f24bcf2

Browse files
committed
Enable Both slot Flash options
1 parent 852b108 commit f24bcf2

File tree

1 file changed

+75
-29
lines changed

1 file changed

+75
-29
lines changed

app/src/main/java/com/github/capntrips/kernelflasher/MainActivity.kt

Lines changed: 75 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -196,43 +196,76 @@ class MainActivity : ComponentActivity() {
196196
val updatesViewModel = mainViewModel.updates
197197
val rebootViewModel = mainViewModel.reboot
198198
BackHandler(enabled = mainViewModel.isRefreshing, onBack = {})
199-
val slotContent: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
200-
val slotSuffix = backStackEntry.arguments?.getString("slotSuffix") ?: ""
201-
val slotViewModel = if (slotSuffix == "_b") slotViewModelB else slotViewModelA
202-
if (slotViewModel!!.wasFlashSuccess != null && listOf("slot{slotSuffix}", "slot").any { navController.currentDestination!!.route.equals(it) }) {
199+
val slotContentA: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
200+
val slotViewModel = slotViewModelA
201+
if (slotViewModel!!.wasFlashSuccess != null && listOf("slot_a", "slot").any { navController.currentDestination!!.route.equals(it) }) {
203202
slotViewModel.clearFlash(this@MainActivity)
204203
}
205204
RefreshableScreen(mainViewModel, navController, swipeEnabled = true) {
206-
SlotContent(slotViewModel, slotSuffix, navController)
205+
SlotContent(slotViewModel, "_a", navController)
207206
}
208207

209208
}
210-
val slotFlashContent: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
211-
val slotSuffix = backStackEntry.arguments?.getString("slotSuffix") ?: ""
212-
val slotViewModel = if (slotSuffix == "_b") slotViewModelB else slotViewModelA
209+
val slotContentB: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
210+
val slotViewModel = slotViewModelB
211+
if (slotViewModel!!.wasFlashSuccess != null && listOf("slot_b", "slot").any { navController.currentDestination!!.route.equals(it) }) {
212+
slotViewModel.clearFlash(this@MainActivity)
213+
}
214+
RefreshableScreen(mainViewModel, navController, swipeEnabled = true) {
215+
SlotContent(slotViewModel, "_b", navController)
216+
}
217+
218+
}
219+
val slotFlashContentA: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
220+
val slotViewModel = slotViewModelA
213221
RefreshableScreen(mainViewModel, navController) {
214-
SlotFlashContent(slotViewModel!!, slotSuffix, navController)
222+
SlotFlashContent(slotViewModel!!, "_a", navController)
215223
}
216224
}
217-
val slotBackupsContent: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
218-
val slotSuffix = backStackEntry.arguments?.getString("slotSuffix") ?: ""
219-
val slotViewModel = if (slotSuffix == "_b") slotViewModelB else slotViewModelA
225+
val slotFlashContentB: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
226+
val slotViewModel = slotViewModelB
227+
RefreshableScreen(mainViewModel, navController) {
228+
SlotFlashContent(slotViewModel!!, "_b", navController)
229+
}
230+
}
231+
val slotBackupsContentA: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
232+
val slotViewModel = slotViewModelA
220233
if (backStackEntry.arguments?.getString("backupId") != null) {
221234
backupsViewModel.currentBackup = backStackEntry.arguments?.getString("backupId")
222235
} else {
223236
backupsViewModel.clearCurrent()
224237
}
225238
RefreshableScreen(mainViewModel, navController) {
226-
SlotBackupsContent(slotViewModel!!, backupsViewModel, slotSuffix, navController)
239+
SlotBackupsContent(slotViewModel!!, backupsViewModel, "_a", navController)
227240
}
228241
}
229-
val slotBackupFlashContent: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
230-
val slotSuffix = backStackEntry.arguments?.getString("slotSuffix") ?: ""
231-
val slotViewModel = if (slotSuffix == "_b") slotViewModelB else slotViewModelA
242+
val slotBackupsContentB: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
243+
val slotViewModel = slotViewModelB
244+
if (backStackEntry.arguments?.getString("backupId") != null) {
245+
backupsViewModel.currentBackup = backStackEntry.arguments?.getString("backupId")
246+
} else {
247+
backupsViewModel.clearCurrent()
248+
}
249+
RefreshableScreen(mainViewModel, navController) {
250+
SlotBackupsContent(slotViewModel!!, backupsViewModel, "_b", navController)
251+
}
252+
}
253+
val slotBackupFlashContentA: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
254+
val slotViewModel = slotViewModelA
255+
backupsViewModel.currentBackup = backStackEntry.arguments?.getString("backupId")
256+
if (backupsViewModel.backups.containsKey(backupsViewModel.currentBackup)) {
257+
RefreshableScreen(mainViewModel, navController) {
258+
SlotFlashContent(slotViewModel!!, "_a", navController)
259+
}
260+
}
261+
262+
}
263+
val slotBackupFlashContentB: @Composable AnimatedVisibilityScope.(NavBackStackEntry) -> Unit = { backStackEntry ->
264+
val slotViewModel = slotViewModelB
232265
backupsViewModel.currentBackup = backStackEntry.arguments?.getString("backupId")
233266
if (backupsViewModel.backups.containsKey(backupsViewModel.currentBackup)) {
234267
RefreshableScreen(mainViewModel, navController) {
235-
SlotFlashContent(slotViewModel!!, slotSuffix, navController)
268+
SlotFlashContent(slotViewModel!!, "_b", navController)
236269
}
237270
}
238271

@@ -244,18 +277,31 @@ class MainActivity : ComponentActivity() {
244277
}
245278
}
246279
if (mainViewModel.isAb) {
247-
composable("slot{slotSuffix}", content = slotContent)
248-
composable("slot{slotSuffix}/flash", content = slotFlashContent)
249-
composable("slot{slotSuffix}/flash/ak3", content = slotFlashContent)
250-
composable("slot{slotSuffix}/flash/image", content = slotFlashContent)
251-
composable("slot{slotSuffix}/flash/image/flash", content = slotFlashContent)
252-
composable("slot{slotSuffix}/backup", content = slotFlashContent)
253-
composable("slot{slotSuffix}/backup/backup", content = slotFlashContent)
254-
composable("slot{slotSuffix}/backups", content = slotBackupsContent)
255-
composable("slot{slotSuffix}/backups/{backupId}", content = slotBackupsContent)
256-
composable("slot{slotSuffix}/backups/{backupId}/restore", content = slotBackupsContent)
257-
composable("slot{slotSuffix}/backups/{backupId}/restore/restore", content = slotBackupsContent)
258-
composable("slot{slotSuffix}/backups/{backupId}/flash/ak3", content = slotBackupFlashContent)
280+
composable("slot_a", content = slotContentA)
281+
composable("slot_a/flash", content = slotFlashContentA)
282+
composable("slot_a/flash/ak3", content = slotFlashContentA)
283+
composable("slot_a/flash/image", content = slotFlashContentA)
284+
composable("slot_a/flash/image/flash", content = slotFlashContentA)
285+
composable("slot_a/backup", content = slotFlashContentA)
286+
composable("slot_a/backup/backup", content = slotFlashContentA)
287+
composable("slot_a/backups", content = slotBackupsContentA)
288+
composable("slot_a/backups/{backupId}", content = slotBackupsContentA)
289+
composable("slot_a/backups/{backupId}/restore", content = slotBackupsContentA)
290+
composable("slot_a/backups/{backupId}/restore/restore", content = slotBackupsContentA)
291+
composable("slot_a/backups/{backupId}/flash/ak3", content = slotBackupFlashContentA)
292+
293+
composable("slot_b", content = slotContentB)
294+
composable("slot_b/flash", content = slotFlashContentB)
295+
composable("slot_b/flash/ak3", content = slotFlashContentB)
296+
composable("slot_b/flash/image", content = slotFlashContentB)
297+
composable("slot_b/flash/image/flash", content = slotFlashContentB)
298+
composable("slot_b/backup", content = slotFlashContentB)
299+
composable("slot_b/backup/backup", content = slotFlashContentB)
300+
composable("slot_b/backups", content = slotBackupsContentB)
301+
composable("slot_b/backups/{backupId}", content = slotBackupsContentB)
302+
composable("slot_b/backups/{backupId}/restore", content = slotBackupsContentB)
303+
composable("slot_b/backups/{backupId}/restore/restore", content = slotBackupsContentB)
304+
composable("slot_b/backups/{backupId}/flash/ak3", content = slotBackupFlashContentB)
259305
} else {
260306
composable("slot", content = slotContent)
261307
composable("slot/flash", content = slotFlashContent)

0 commit comments

Comments
 (0)