From 4c23e539835e1290f6459203f0d6659cda776d06 Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:03:10 +0630 Subject: [PATCH] password screen added --- .../utsmyanmar/ui/navigation/AppNavGraph.kt | 102 ++++++++++++++++-- 1 file changed, 92 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/navigation/AppNavGraph.kt b/app/src/main/java/com/mob/utsmyanmar/ui/navigation/AppNavGraph.kt index a8ea1b1..76c9657 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/navigation/AppNavGraph.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/navigation/AppNavGraph.kt @@ -25,6 +25,8 @@ import com.mob.utsmyanmar.ui.device_info.DeviceInfoViewModel import com.mob.utsmyanmar.ui.functions.FunctionsScreen import com.mob.utsmyanmar.ui.history_functions.HistoryRoute import com.mob.utsmyanmar.ui.input_amount.AmountRoute +import com.mob.utsmyanmar.ui.password_input.InputPassword +import com.mob.utsmyanmar.ui.password_input.PasswordType import com.mob.utsmyanmar.ui.pinpad.PinPadRoute import com.mob.utsmyanmar.ui.pinpad.PinPadViewModel import com.mob.utsmyanmar.ui.print_receipt.PrintReceiptScreen @@ -118,7 +120,12 @@ fun AppNavGraph( } else -> { - navController.navigate(Routes.Amount.createRoute(action)) { + navController.navigate( + Routes.Password.createRoute( + destination = Routes.Amount.createRoute(action), + passwordType = PasswordType.SYSTEM + ) + ) { launchSingleTop = true } } @@ -128,20 +135,35 @@ fun AppNavGraph( when (action) { "Void" -> { sharedViewModel.transactionsType.value = TransactionsType.VOID - navController.navigate(Routes.VoidTrace.route) { + navController.navigate( + Routes.Password.createRoute( + destination = Routes.VoidTrace.route, + passwordType = PasswordType.SYSTEM + ) + ) { launchSingleTop = true } } "Pre-Auth Complete Void" -> { sharedViewModel.transactionsType.value = TransactionsType.PRE_AUTH_COMPLETE_VOID - navController.navigate(Routes.VoidTrace.route) { + navController.navigate( + Routes.Password.createRoute( + destination = Routes.VoidTrace.route, + passwordType = PasswordType.SYSTEM + ) + ) { launchSingleTop = true } } else -> { - navController.navigate(Routes.Amount.createRoute(action)) { + navController.navigate( + Routes.Password.createRoute( + destination = Routes.Amount.createRoute(action), + passwordType = PasswordType.SYSTEM + ) + ) { launchSingleTop = true } } @@ -154,15 +176,32 @@ fun AppNavGraph( }, onNavigateSettlement = { - navController.navigate(Routes.Settlement.route) { + navController.navigate( + Routes.Password.createRoute( + destination = Routes.Settlement.route, + passwordType = PasswordType.SYSTEM + ) + ) { launchSingleTop = true } }, onNavigateVersion = { - navController.navigate(Routes.Version.route) + navController.navigate( + Routes.Password.createRoute( + destination = Routes.Version.route, + passwordType = PasswordType.SYSTEM + ) + ) { + launchSingleTop = true + } }, onNavigateFunctions = { - navController.navigate(Routes.Functions.route) { + navController.navigate( + Routes.Password.createRoute( + destination = Routes.Functions.route, + passwordType = PasswordType.SYSTEM + ) + ) { launchSingleTop = true } }, @@ -180,18 +219,33 @@ fun AppNavGraph( when (action) { "Void" -> { sharedViewModel.transactionsType.value = TransactionsType.VOID - navController.navigate(Routes.VoidTrace.route) { + navController.navigate( + Routes.Password.createRoute( + destination = Routes.VoidTrace.route, + passwordType = PasswordType.SYSTEM + ) + ) { launchSingleTop = true } } "Pre-Auth Complete Void" -> { sharedViewModel.transactionsType.value = TransactionsType.PRE_AUTH_COMPLETE_VOID - navController.navigate(Routes.VoidTrace.route) { + navController.navigate( + Routes.Password.createRoute( + destination = Routes.VoidTrace.route, + passwordType = PasswordType.SYSTEM + ) + ) { launchSingleTop = true } } else -> { - navController.navigate(Routes.Amount.createRoute(action)) { + navController.navigate( + Routes.Password.createRoute( + destination = Routes.Amount.createRoute(action), + passwordType = PasswordType.SYSTEM + ) + ) { launchSingleTop = true } } @@ -208,6 +262,34 @@ fun AppNavGraph( ) } + composable( + route = Routes.Password.route, + arguments = listOf( + navArgument("destination") { + type = NavType.StringType + }, + navArgument("passwordType") { + type = NavType.StringType + } + ) + ) { backStackEntry -> + val destination = backStackEntry.arguments?.getString("destination").orEmpty() + val passwordType = backStackEntry.arguments?.getString("passwordType").orEmpty() + + InputPassword( + passwordType = passwordType, + onBack = { navController.popBackStack() }, + onPasswordCorrect = { + navController.navigate(destination) { + popUpTo(Routes.Password.route) { + inclusive = true + } + launchSingleTop = true + } + } + ) + } + composable(Routes.Functions.route) { FunctionsScreen( onBack = { navController.popBackStack() }