From bd3994b1afd889138ccf4b4c45a8fb6b700362f7 Mon Sep 17 00:00:00 2001 From: Goooler Date: Tue, 23 Apr 2024 15:08:54 +0800 Subject: [PATCH] Handle navigation back double clicks Double-clicks the back button on Chat screen, and we can see the window goes to a white screen as the back stack is empty, we can handle the failed pop back ref to https://developer.android.com/guide/navigation/backstack#handle-failure --- .../java/com/google/android/samples/socialite/ui/Main.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/google/android/samples/socialite/ui/Main.kt b/app/src/main/java/com/google/android/samples/socialite/ui/Main.kt index 6f923a8c..7838f78d 100644 --- a/app/src/main/java/com/google/android/samples/socialite/ui/Main.kt +++ b/app/src/main/java/com/google/android/samples/socialite/ui/Main.kt @@ -116,7 +116,12 @@ fun MainNavigation( ChatScreen( chatId = chatId, foreground = true, - onBackPressed = { navController.popBackStack() }, + onBackPressed = { + if (!navController.popBackStack()) { + // https://developer.android.com/guide/navigation/backstack#handle-failure + activity.finish() + } + }, onCameraClick = { navController.navigate("chat/$chatId/camera") }, onPhotoPickerClick = { navController.navigateToPhotoPicker(chatId) }, onVideoClick = { uri -> navController.navigate("videoPlayer?uri=$uri") },