From b4a32dd1ecd8037121a67f7848d0fc2a4a2c62e3 Mon Sep 17 00:00:00 2001 From: Lorenzo Vainigli Date: Sat, 9 Dec 2023 14:14:38 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=94=20Little=20UI=20adjustments?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/composable/MyScaffold.kt | 34 ++++++++++++------- .../view/composable/MyTopAppBar.kt | 20 +++++------ .../view/composable/screen/InsertScreen.kt | 8 ++--- .../view/composable/screen/MainScreen.kt | 2 +- .../view/composable/screen/SettingsScreen.kt | 2 +- 5 files changed, 36 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/MyScaffold.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/MyScaffold.kt index ffb398c..cba441b 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/MyScaffold.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/MyScaffold.kt @@ -3,7 +3,6 @@ package com.lorenzovainigli.foodexpirationdates.view.composable import android.os.Build import android.util.Log import androidx.annotation.RequiresApi -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding @@ -11,6 +10,7 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.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.SnackbarDuration @@ -97,23 +97,33 @@ fun MyScaffold( activity = activity, title = when (destination) { Screen.AboutScreen.route -> stringResource(id = R.string.about_this_app) - Screen.InsertScreen.route -> stringResource(id = R.string.insert) Screen.SettingsScreen.route -> stringResource(id = R.string.settings) - else -> stringResource(id = R.string.app_name) + else -> { + if (destination?.contains(Screen.InsertScreen.route) == true) { + if (currentBackStackEntry?.arguments?.getString("itemId") != null){ + stringResource(id = R.string.edit_item) + } else { + stringResource(id = R.string.add_item) + } + } else { + stringResource(id = R.string.app_name) + } + } }, actions = { AppIcon(size = 48.dp) }, navigationIcon = { - if (currentBackStackEntry?.destination?.route == Screen.InsertScreen.route) { - Icon( - modifier = Modifier.clickable { - navController.popBackStack() - }, - imageVector = Icons.Filled.ArrowBack, - contentDescription = stringResource(id = R.string.back), - tint = MaterialTheme.colorScheme.primary - ) + if (destination?.contains(Screen.InsertScreen.route) == true) { + IconButton( + onClick = { navController.popBackStack() } + ) { + Icon( + imageVector = Icons.Filled.ArrowBack, + contentDescription = stringResource(id = R.string.back), + tint = MaterialTheme.colorScheme.primary + ) + } } }, scrollBehavior = scrollBehavior diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/MyTopAppBar.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/MyTopAppBar.kt index 8f983c4..c9f8bf1 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/MyTopAppBar.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/MyTopAppBar.kt @@ -1,28 +1,25 @@ package com.lorenzovainigli.foodexpirationdates.view.composable import androidx.compose.foundation.layout.RowScope -import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton import androidx.compose.material3.LargeTopAppBar import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState -import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.PreviewLightDark -import androidx.compose.ui.unit.dp import com.lorenzovainigli.foodexpirationdates.R import com.lorenzovainigli.foodexpirationdates.model.repository.PreferencesRepository import com.lorenzovainigli.foodexpirationdates.ui.theme.FoodExpirationDatesTheme import com.lorenzovainigli.foodexpirationdates.view.MainActivity -import com.lorenzovainigli.foodexpirationdates.viewmodel.PreferencesViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -32,15 +29,12 @@ fun MyTopAppBar( actions: @Composable RowScope.() -> Unit = {}, navigationIcon: @Composable () -> Unit = {}, scrollBehavior: TopAppBarScrollBehavior? = null, - prefsViewModel: PreferencesViewModel? = null ) { val context = LocalContext.current val topBarFontState = activity?.preferencesViewModel?.getTopBarFont(context)?.collectAsState()?.value ?: PreferencesRepository.Companion.TopBarFont.NORMAL.ordinal LargeTopAppBar( - modifier = Modifier - .padding(bottom = 4.dp), title = { Text( text = title, @@ -70,11 +64,13 @@ fun MyTopAppBarPreview(){ activity = null, title = "Lorem Ipsum", navigationIcon = { - Icon( - imageVector = Icons.Filled.ArrowBack, - contentDescription = stringResource(id = R.string.back), - tint = MaterialTheme.colorScheme.primary - ) + IconButton(onClick = {}) { + Icon( + imageVector = Icons.Filled.ArrowBack, + contentDescription = stringResource(id = R.string.back), + tint = MaterialTheme.colorScheme.primary + ) + } } ) } diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/InsertScreen.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/InsertScreen.kt index 980a3e5..3b1dfeb 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/InsertScreen.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/InsertScreen.kt @@ -88,10 +88,10 @@ fun InsertScreen( Button( modifier = Modifier.testTag("Insert date"), onClick = { isDialogOpen = false }, -// colors = ButtonDefaults.buttonColors( -// containerColor = MaterialTheme.colorScheme.tertiary, -// contentColor = MaterialTheme.colorScheme.onTertiary -// ) + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.tertiary, + contentColor = MaterialTheme.colorScheme.onTertiary + ) ) { Text(text = stringResource(id = R.string.insert)) } diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/MainScreen.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/MainScreen.kt index 55d9078..086383d 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/MainScreen.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/MainScreen.kt @@ -46,7 +46,7 @@ fun MainScreen( ) { Box( modifier = Modifier - .padding(4.dp) + .padding(start = 4.dp, end = 4.dp) .fillMaxSize() ) { val itemsState = activity?.viewModel?.getDates()?.collectAsState(emptyList()) diff --git a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/SettingsScreen.kt b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/SettingsScreen.kt index e150b82..120d34d 100644 --- a/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/SettingsScreen.kt +++ b/app/src/main/java/com/lorenzovainigli/foodexpirationdates/view/composable/screen/SettingsScreen.kt @@ -50,7 +50,7 @@ fun SettingsScreen( val context = LocalContext.current val prefsViewModel = activity?.preferencesViewModel val darkThemeState = prefsViewModel?.getThemeMode(context)?.collectAsState()?.value - ?: PreferencesRepository.Companion.ThemeMode.SYSTEM + ?: PreferencesRepository.Companion.ThemeMode.SYSTEM.ordinal val dynamicColorsState = prefsViewModel?.getDynamicColors(context)?.collectAsState()?.value ?: false val topBarFontState = prefsViewModel?.getTopBarFont(context)?.collectAsState()?.value