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 0000000..7681534 Binary files /dev/null and b/app/src/main/res/drawable/app_logo.png differ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 268f1e7..e0d8623 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -25,4 +25,5 @@ Current Game Old Games Counter + About \ No newline at end of file