From c41816898e027acea97f691dbc4eae4cb6354477 Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Sat, 28 Jan 2023 12:33:45 +0100 Subject: [PATCH] Add about page. --- .../me/zobrist/tichucounter/MainActivity.kt | 29 +++++++-- .../me/zobrist/tichucounter/domain/Route.kt | 2 +- .../tichucounter/ui/about/AboutView.kt | 57 ++++++++++++++++++ .../tichucounter/ui/layout/DrawerContent.kt | 10 +-- app/src/main/res/drawable/app_logo.png | Bin 0 -> 16593 bytes app/src/main/res/values/strings.xml | 1 + 6 files changed, 89 insertions(+), 10 deletions(-) create mode 100644 app/src/main/java/me/zobrist/tichucounter/ui/about/AboutView.kt create mode 100644 app/src/main/res/drawable/app_logo.png diff --git a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt index 871610d..b964c6c 100644 --- a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt +++ b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt @@ -24,13 +24,14 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import me.zobrist.tichucounter.domain.* import me.zobrist.tichucounter.ui.AppTheme -import me.zobrist.tichucounter.ui.layout.DrawerContent import me.zobrist.tichucounter.ui.MainViewModel -import me.zobrist.tichucounter.ui.layout.TopBar +import me.zobrist.tichucounter.ui.about.AboutView import me.zobrist.tichucounter.ui.composables.DropDownMenu import me.zobrist.tichucounter.ui.counter.* import me.zobrist.tichucounter.ui.history.HistoryList import me.zobrist.tichucounter.ui.history.HistoryViewModel +import me.zobrist.tichucounter.ui.layout.DrawerContent +import me.zobrist.tichucounter.ui.layout.TopBar import me.zobrist.tichucounter.ui.settings.SettingsView import me.zobrist.tichucounter.ui.settings.SettingsViewModel import javax.inject.Inject @@ -95,9 +96,22 @@ class MainActivity : AppCompatActivity(), ISettingsChangeListener { val navController = rememberNavController() val items = listOf( - DrawerItem(Route.COUNTER, Icons.Outlined.Calculate, stringResource(R.string.menu_counter)), + DrawerItem( + Route.COUNTER, + Icons.Outlined.Calculate, + stringResource(R.string.menu_counter) + ), DrawerItem(Route.HISTORY, Icons.Outlined.List, stringResource(R.string.menu_history)), - DrawerItem(Route.SETTINGS, Icons.Outlined.Settings, stringResource(R.string.menu_settings)) + DrawerItem( + Route.SETTINGS, + Icons.Outlined.Settings, + stringResource(R.string.menu_settings) + ), + DrawerItem( + Route.ABOUT, + Icons.Outlined.Info, + stringResource(R.string.menu_about) + ) ) val navBackStackEntry by navController.currentBackStackEntryAsState() @@ -207,6 +221,13 @@ class MainActivity : AppCompatActivity(), ISettingsChangeListener { SettingsView(settingsViewModel) } + + composable(Route.ABOUT) { + topBarState = + TopBarState(title = stringResource(R.string.menu_about)) { scope.launch { drawerState.open() } } + + AboutView() + } } } } diff --git a/app/src/main/java/me/zobrist/tichucounter/domain/Route.kt b/app/src/main/java/me/zobrist/tichucounter/domain/Route.kt index 4ec7402..5ae62a8 100644 --- a/app/src/main/java/me/zobrist/tichucounter/domain/Route.kt +++ b/app/src/main/java/me/zobrist/tichucounter/domain/Route.kt @@ -1,3 +1,3 @@ package me.zobrist.tichucounter.domain -enum class Route { COUNTER, HISTORY, SETTINGS } +enum class Route { COUNTER, HISTORY, SETTINGS, ABOUT } diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/about/AboutView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/about/AboutView.kt new file mode 100644 index 0000000..9202b49 --- /dev/null +++ b/app/src/main/java/me/zobrist/tichucounter/ui/about/AboutView.kt @@ -0,0 +1,57 @@ +package me.zobrist.tichucounter.ui.about + +import android.content.res.Configuration +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment.Companion.Top +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import me.zobrist.tichucounter.BuildConfig +import me.zobrist.tichucounter.R +import me.zobrist.tichucounter.ui.AppTheme + + +@Composable +fun AboutView() { + Row(Modifier.padding(20.dp)) { + Image( + modifier = Modifier + .height(80.dp) + .padding(end = 10.dp) + .align(Top), + painter = painterResource(R.drawable.app_logo), + contentDescription = null, + contentScale = ContentScale.Fit + ) + + Column { + Text( + text = stringResource(id = R.string.app_name), + style = MaterialTheme.typography.headlineMedium + ) + Text(text = "V" + BuildConfig.VERSION_NAME) + } + } +} + +@Preview(name = "Light Mode") +@Preview(name = "Dark Mode", uiMode = Configuration.UI_MODE_NIGHT_YES, showBackground = true) +@Composable +fun AboutViewPreview() { + AppTheme() { + Surface { + AboutView() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/layout/DrawerContent.kt b/app/src/main/java/me/zobrist/tichucounter/ui/layout/DrawerContent.kt index 45a86f9..e025a4a 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/layout/DrawerContent.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/layout/DrawerContent.kt @@ -1,8 +1,6 @@ package me.zobrist.tichucounter.ui.layout import android.content.res.Configuration -import androidx.compose.foundation.Image - import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.* @@ -10,11 +8,9 @@ import androidx.compose.material.icons.outlined.* import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import me.zobrist.tichucounter.BuildConfig import me.zobrist.tichucounter.R import me.zobrist.tichucounter.domain.* import me.zobrist.tichucounter.ui.AppTheme @@ -30,7 +26,11 @@ fun DrawerContent( ModalDrawerSheet { - Text(modifier = Modifier.padding(start = 10.dp, top = 10.dp), text = stringResource(R.string.app_name), style = MaterialTheme.typography.headlineSmall) + Text( + modifier = Modifier.padding(start = 10.dp, top = 10.dp), + text = stringResource(R.string.app_name), + style = MaterialTheme.typography.headlineSmall + ) Divider(modifier = Modifier.padding(10.dp)) drawerItems.forEach { screen -> diff --git a/app/src/main/res/drawable/app_logo.png b/app/src/main/res/drawable/app_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7681534e3a404f11be3224f7b20a0c1233f833f6 GIT binary patch literal 16593 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 Game Old Games Counter + About \ No newline at end of file