From c4a552ad8cfc40878a58b6ec451b75f533c9a08e Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Fri, 20 Jan 2023 23:14:59 +0100 Subject: [PATCH] Move theme to top composable. Increase button size. --- .../me/zobrist/tichucounter/MainActivity.kt | 103 +++++++++--------- .../tichucounter/ui/counter/KeyboardView.kt | 12 +- 2 files changed, 57 insertions(+), 58 deletions(-) diff --git a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt index c23f2ba..cfd40a1 100644 --- a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt +++ b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt @@ -54,7 +54,11 @@ class MainActivity : BaseActivity() { super.onCreate(savedInstanceState) setContent { - NavigationDrawer() + AppTheme() { + val systemUiController = rememberSystemUiController() + systemUiController.setStatusBarColor(MaterialTheme.colorScheme.background) + NavigationDrawer() + } } } @@ -66,59 +70,54 @@ class MainActivity : BaseActivity() { navController: NavHostController ) { - AppTheme() { - val systemUiController = rememberSystemUiController() - systemUiController.setStatusBarColor(MaterialTheme.colorScheme.background) + Scaffold( + topBar = { + TopBar( + mainViewModel.topBarTitle, + mainViewModel.topBarIcon, + { mainViewModel.onNavigateClicked() }, + mainViewModel.topBarActions + ) + }) { - Scaffold( - topBar = { - TopBar( - mainViewModel.topBarTitle, - mainViewModel.topBarIcon, - { mainViewModel.onNavigateClicked() }, - mainViewModel.topBarActions - ) - }) { + NavHost( + navController = navController, + startDestination = "counter", + modifier = Modifier.padding(it) + ) { + composable("counter") { + Counter(counterViewModel) + mainViewModel.topBarActions = (listOf( + TopBarAction( + Icons.Outlined.Undo, + mainViewModel.isUndoActionActive + ) { mainViewModel.undoLastRound() }, + TopBarAction( + Icons.Outlined.Redo, + mainViewModel.isRedoActionActive + ) { mainViewModel.redoLastRound() } - NavHost( - navController = navController, - startDestination = "counter", - modifier = Modifier.padding(it) - ) { - composable("counter") { - Counter(counterViewModel) - mainViewModel.topBarActions = (listOf( - TopBarAction( - Icons.Outlined.Undo, - mainViewModel.isUndoActionActive - ) { mainViewModel.undoLastRound() }, - TopBarAction( - Icons.Outlined.Redo, - mainViewModel.isRedoActionActive - ) { mainViewModel.redoLastRound() } - - )) - mainViewModel.topBarIcon = Icons.Outlined.Menu - mainViewModel.topBarTitle = stringResource(R.string.app_name) - mainViewModel.topBarNavigationAction = - NavigationAction { scope.launch { drawerState.open() } } - } - composable("history") { - HistoryList(historyViewModel) - mainViewModel.topBarActions = emptyList() - mainViewModel.topBarIcon = Icons.Outlined.ArrowBack - mainViewModel.topBarTitle = stringResource(R.string.menu_history) - mainViewModel.topBarNavigationAction = - NavigationAction { navController.navigate("counter") } - } - composable("settings") { - SettingsView(settingsViewModel) - mainViewModel.topBarActions = emptyList() - mainViewModel.topBarIcon = Icons.Outlined.ArrowBack - mainViewModel.topBarTitle = stringResource(R.string.menu_settings) - mainViewModel.topBarNavigationAction = - NavigationAction { navController.navigate("counter") } - } + )) + mainViewModel.topBarIcon = Icons.Outlined.Menu + mainViewModel.topBarTitle = stringResource(R.string.app_name) + mainViewModel.topBarNavigationAction = + NavigationAction { scope.launch { drawerState.open() } } + } + composable("history") { + HistoryList(historyViewModel) + mainViewModel.topBarActions = emptyList() + mainViewModel.topBarIcon = Icons.Outlined.ArrowBack + mainViewModel.topBarTitle = stringResource(R.string.menu_history) + mainViewModel.topBarNavigationAction = + NavigationAction { navController.navigate("counter") } + } + composable("settings") { + SettingsView(settingsViewModel) + mainViewModel.topBarActions = emptyList() + mainViewModel.topBarIcon = Icons.Outlined.ArrowBack + mainViewModel.topBarTitle = stringResource(R.string.menu_settings) + mainViewModel.topBarNavigationAction = + NavigationAction { navController.navigate("counter") } } } } diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt index 9a7c0b6..141a38e 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt @@ -1,9 +1,7 @@ package me.zobrist.tichucounter.ui.counter import android.content.res.Configuration -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Backspace import androidx.compose.material.icons.outlined.Check @@ -11,6 +9,7 @@ import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.scale import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.focus.onFocusChanged @@ -18,6 +17,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp import me.zobrist.tichucounter.ui.AppTheme @@ -158,7 +158,7 @@ fun KeyboardView( @Composable fun KeyboardTextButton(text: String, onClicked: () -> Unit) { ElevatedButton( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier.fillMaxWidth().height(50.dp).padding(2.dp), onClick = { onClicked() }, ) { Text(text) } } @@ -168,12 +168,12 @@ fun KeyboardIconButton(icon: ImageVector, enabled: Boolean = true, onClicked: () ElevatedButton( onClick = { onClicked() }, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier.fillMaxWidth().height(50.dp).padding(2.dp),, enabled = enabled, ) { Icon( icon, - contentDescription = null + contentDescription = null, ) } }