From b37bca4c5c9298cb3a25d651a7bbadd2a705d595 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Nicolas <6371790+pynicolas@users.noreply.github.com> Date: Sat, 12 Jul 2025 18:04:31 +0200 Subject: [PATCH] Refactoring: BackButton --- .../main/java/org/mydomain/myscan/view/AboutScreen.kt | 8 +------- app/src/main/java/org/mydomain/myscan/view/Buttons.kt | 11 +++++++++++ .../java/org/mydomain/myscan/view/DocumentScreen.kt | 10 +--------- .../java/org/mydomain/myscan/view/LibrariesScreen.kt | 11 +---------- 4 files changed, 14 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/org/mydomain/myscan/view/AboutScreen.kt b/app/src/main/java/org/mydomain/myscan/view/AboutScreen.kt index 416a756..bbd052a 100644 --- a/app/src/main/java/org/mydomain/myscan/view/AboutScreen.kt +++ b/app/src/main/java/org/mydomain/myscan/view/AboutScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.filled.Close import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider @@ -65,12 +64,7 @@ fun AboutScreen(onBack: () -> Unit, onViewLibraries: () -> Unit) { topBar = { TopAppBar( title = { Text(stringResource(R.string.about)) }, - navigationIcon = { - IconButton(onClick = onBack) { - Icon(Icons.AutoMirrored.Filled.ArrowBack, - contentDescription = stringResource(R.string.back)) - } - }, + navigationIcon = { BackButton(onBack) }, ) } ) { paddingValues -> diff --git a/app/src/main/java/org/mydomain/myscan/view/Buttons.kt b/app/src/main/java/org/mydomain/myscan/view/Buttons.kt index f9d493e..105f829 100644 --- a/app/src/main/java/org/mydomain/myscan/view/Buttons.kt +++ b/app/src/main/java/org/mydomain/myscan/view/Buttons.kt @@ -18,6 +18,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.outlined.Info import androidx.compose.material3.Button import androidx.compose.material3.FilledIconButton @@ -72,6 +73,16 @@ fun SecondaryActionButton( } } +@Composable +fun BackButton(onClick: () -> Unit) { + IconButton(onClick = onClick) { + Icon( + Icons.AutoMirrored.Filled.ArrowBack, + contentDescription = stringResource(R.string.back) + ) + } +} + @Composable fun AboutScreenNavButton( onClick: () -> Unit, diff --git a/app/src/main/java/org/mydomain/myscan/view/DocumentScreen.kt b/app/src/main/java/org/mydomain/myscan/view/DocumentScreen.kt index e4f5914..1f58c58 100644 --- a/app/src/main/java/org/mydomain/myscan/view/DocumentScreen.kt +++ b/app/src/main/java/org/mydomain/myscan/view/DocumentScreen.kt @@ -31,7 +31,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.PictureAsPdf import androidx.compose.material.icons.filled.RestartAlt @@ -39,8 +38,6 @@ import androidx.compose.material.icons.outlined.Delete import androidx.compose.material3.AlertDialog import androidx.compose.material3.BottomAppBar import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text @@ -105,12 +102,7 @@ fun DocumentScreen( titleContentColor = MaterialTheme.colorScheme.onSurface, ), title = { Text(stringResource(R.string.document)) }, - navigationIcon = { - IconButton(onClick = navigation.toCameraScreen) { - Icon(Icons.AutoMirrored.Filled.ArrowBack, - contentDescription = stringResource(R.string.back)) - } - }, + navigationIcon = { BackButton(navigation.back) }, actions = { AboutScreenNavButton(onClick = navigation.toAboutScreen) } diff --git a/app/src/main/java/org/mydomain/myscan/view/LibrariesScreen.kt b/app/src/main/java/org/mydomain/myscan/view/LibrariesScreen.kt index cb756e2..6214f7e 100644 --- a/app/src/main/java/org/mydomain/myscan/view/LibrariesScreen.kt +++ b/app/src/main/java/org/mydomain/myscan/view/LibrariesScreen.kt @@ -16,11 +16,7 @@ package org.mydomain.myscan.view import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface @@ -42,12 +38,7 @@ fun LibrariesScreen(onBack: () -> Unit) { topBar = { TopAppBar( title = { Text(stringResource(R.string.libraries_open_source)) }, - navigationIcon = { - IconButton(onClick = onBack) { - Icon(Icons.AutoMirrored.Default.ArrowBack, - contentDescription = stringResource(R.string.back)) - } - } + navigationIcon = { BackButton(onClick = onBack) } ) } ) { padding ->