From 8eeddb71f9d5d5d7e5d092e37f524b39456b6a8b Mon Sep 17 00:00:00 2001 From: Pierre-Yves Nicolas <6371790+pynicolas@users.noreply.github.com> Date: Mon, 18 May 2026 13:48:11 +0200 Subject: [PATCH] Avoid displaying the back button when back should be handled by the system (#179) After removing the home screen, displaying the back button on the camera screen didn't make sense anymore. --- app/src/main/java/org/fairscan/app/MainActivity.kt | 4 ++++ .../main/java/org/fairscan/app/ui/Navigation.kt | 1 + .../main/java/org/fairscan/app/ui/PreviewUtils.kt | 2 +- .../org/fairscan/app/ui/components/Scaffold.kt | 14 ++++++++------ 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/fairscan/app/MainActivity.kt b/app/src/main/java/org/fairscan/app/MainActivity.kt index a73e1f5..4e69359 100644 --- a/app/src/main/java/org/fairscan/app/MainActivity.kt +++ b/app/src/main/java/org/fairscan/app/MainActivity.kt @@ -486,6 +486,10 @@ class MainActivity : ComponentActivity() { setResult(RESULT_CANCELED) finish() } + }, + shouldDisplayBackButton = { + viewModel.currentScreen.value !is Screen.Main.Camera + || launchMode == LaunchMode.EXTERNAL_SCAN_TO_PDF } ) } diff --git a/app/src/main/java/org/fairscan/app/ui/Navigation.kt b/app/src/main/java/org/fairscan/app/ui/Navigation.kt index 79f7732..360fceb 100644 --- a/app/src/main/java/org/fairscan/app/ui/Navigation.kt +++ b/app/src/main/java/org/fairscan/app/ui/Navigation.kt @@ -37,6 +37,7 @@ data class Navigation( val toLibrariesScreen: () -> Unit, val toSettingsScreen: (() -> Unit)?, val back: () -> Unit, + val shouldDisplayBackButton: () -> Boolean, ) @ConsistentCopyVisibility diff --git a/app/src/main/java/org/fairscan/app/ui/PreviewUtils.kt b/app/src/main/java/org/fairscan/app/ui/PreviewUtils.kt index 2fa0c86..3235b62 100644 --- a/app/src/main/java/org/fairscan/app/ui/PreviewUtils.kt +++ b/app/src/main/java/org/fairscan/app/ui/PreviewUtils.kt @@ -25,7 +25,7 @@ import org.fairscan.app.ui.state.PageThumbnail import org.fairscan.imageprocessing.ColorMode fun dummyNavigation(): Navigation { - return Navigation({}, {}, {}, {}, {}, {}, {}, {}) + return Navigation({}, {}, {}, {}, {}, {}, {}, {}, { -> true}) } fun fakeDocument(pageIds: ImmutableList, context: Context): DocumentUiModel { diff --git a/app/src/main/java/org/fairscan/app/ui/components/Scaffold.kt b/app/src/main/java/org/fairscan/app/ui/components/Scaffold.kt index 142dfa4..7912457 100644 --- a/app/src/main/java/org/fairscan/app/ui/components/Scaffold.kt +++ b/app/src/main/java/org/fairscan/app/ui/components/Scaffold.kt @@ -85,12 +85,14 @@ fun MyScaffold( } } } - BackButton( - navigation.back, - modifier = Modifier - .align(Alignment.TopStart) - .windowInsetsPadding(WindowInsets.safeDrawing) - ) + if (navigation.shouldDisplayBackButton()) { + BackButton( + navigation.back, + modifier = Modifier + .align(Alignment.TopStart) + .windowInsetsPadding(WindowInsets.safeDrawing) + ) + } AppOverflowMenu( navigation, modifier = Modifier