From cfd01af74a7f6324a1cfe974cf4afc6510e879d5 Mon Sep 17 00:00:00 2001 From: Percy Wegmann Date: Wed, 27 Mar 2024 15:04:14 -0500 Subject: [PATCH] android/ui: navigate back home after switching users Updates tailscale/corp#18202 Signed-off-by: Percy Wegmann --- android/src/main/java/com/tailscale/ipn/MainActivity.kt | 6 +++++- .../java/com/tailscale/ipn/ui/view/UserSwitcherView.kt | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/tailscale/ipn/MainActivity.kt b/android/src/main/java/com/tailscale/ipn/MainActivity.kt index 0d89aab..0b71d86 100644 --- a/android/src/main/java/com/tailscale/ipn/MainActivity.kt +++ b/android/src/main/java/com/tailscale/ipn/MainActivity.kt @@ -131,7 +131,11 @@ class MainActivity : ComponentActivity() { composable("about") { AboutView(nav = backNav) } composable("mdmSettings") { MDMSettingsDebugView(nav = backNav) } composable("managedBy") { ManagedByView(nav = backNav) } - composable("userSwitcher") { UserSwitcherView(nav = backNav) } + composable("userSwitcher") { + UserSwitcherView( + nav = backNav, + onNavigateHome = { navController.popBackStack(route = "main", inclusive = false) }) + } composable("permissions") { PermissionsView(nav = backNav, openApplicationSettings = ::openApplicationSettings) } diff --git a/android/src/main/java/com/tailscale/ipn/ui/view/UserSwitcherView.kt b/android/src/main/java/com/tailscale/ipn/ui/view/UserSwitcherView.kt index 471e8d0..c338b84 100644 --- a/android/src/main/java/com/tailscale/ipn/ui/view/UserSwitcherView.kt +++ b/android/src/main/java/com/tailscale/ipn/ui/view/UserSwitcherView.kt @@ -25,7 +25,11 @@ import com.tailscale.ipn.ui.viewModel.UserSwitcherViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable -fun UserSwitcherView(nav: BackNavigation, viewModel: UserSwitcherViewModel = viewModel()) { +fun UserSwitcherView( + nav: BackNavigation, + onNavigateHome: () -> Unit, + viewModel: UserSwitcherViewModel = viewModel() +) { val users = viewModel.loginProfiles.collectAsState().value val currentUser = viewModel.loggedInUser.collectAsState().value @@ -64,6 +68,8 @@ fun UserSwitcherView(nav: BackNavigation, viewModel: UserSwitcherViewModel = vie if (it.isFailure) { viewModel.showDialog.set(ErrorDialogType.LOGOUT_FAILED) nextUserId.value = null + } else { + onNavigateHome() } } })