some cleanup

This commit is contained in:
Owen LeJeune
2022-06-14 11:26:04 -04:00
parent cd8af13180
commit a5a5996fb3
4 changed files with 48 additions and 19 deletions

View File

@@ -59,6 +59,9 @@ dependencies {
implementation "androidx.core:core-ktx:$ktx_core"
implementation "androidx.paging:paging-common-ktx:$ktx_paging"
// android x
implementation "androidx.window:window:1.0.0"
// compose
def compose = composeVersion
def compose_material3 = "1.0.0-alpha07"

View File

@@ -5,7 +5,6 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Box
import androidx.compose.runtime.*
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
@@ -30,19 +29,8 @@ class MainActivity : ComponentActivity() {
setContent {
AppKeyboardFocusManager()
val displayUnderStatusBar = rememberSaveable { mutableStateOf(false) }
// WindowCompat.setDecorFitsSystemWindows(window, false)
// WindowCompat.setDecorFitsSystemWindows(window, !displayUnderStatusBar.value)
// val statusBarColor = if (displayUnderStatusBar.value) {
// Color.Transparent
// } else {
// MaterialTheme.colorScheme.background
// }
// val systemUiController = rememberSystemUiController()
// systemUiController.setStatusBarColor(statusBarColor, !isSystemInDarkTheme())
MyApp(
appNavController = rememberNavController(),
displayUnderStatusBar = displayUnderStatusBar
appNavController = rememberNavController()
)
}
}
@@ -50,12 +38,11 @@ class MainActivity : ComponentActivity() {
@Composable
fun MyApp(
appNavController: NavHostController = rememberNavController(),
displayUnderStatusBar: MutableState<Boolean> = mutableStateOf(false)
appNavController: NavHostController = rememberNavController()
) {
TVTimeTheme {
Box {
MainNavigationRoutes(navController = appNavController, displayUnderStatusBar = displayUnderStatusBar)
MainNavigationRoutes(navController = appNavController)
}
}
}

View File

@@ -0,0 +1,42 @@
package com.owenlejeune.tvtime.extensions
import android.app.Activity
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.toComposeRect
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
import androidx.window.layout.WindowMetricsCalculator
@Composable
fun Activity.rememberWindowSize(): Size {
val configuration = LocalConfiguration.current
val windowMetrics = remember(configuration) {
WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(this)
}
return windowMetrics.bounds.toComposeRect().size
}
enum class WindowSizeClass { Compact, Medium, Expanded }
@Composable
fun Activity.rememberWindowSizeClass(): WindowSizeClass {
val windowSize = rememberWindowSize()
val windowSizeDp = with(LocalDensity.current) {
windowSize.toDpSize()
}
return getWindowSizeClass(windowSizeDp)
}
private fun getWindowSizeClass(windowDpSize: DpSize): WindowSizeClass = when {
windowDpSize.width < 0.dp -> throw IllegalArgumentException("Dp value cannot be negative")
windowDpSize.width < 600.dp -> WindowSizeClass.Compact
windowDpSize.width < 840.dp -> WindowSizeClass.Medium
else -> WindowSizeClass.Expanded
}

View File

@@ -23,12 +23,10 @@ object NavConstants {
@Composable
fun MainNavigationRoutes(
navController: NavHostController,
displayUnderStatusBar: MutableState<Boolean> = mutableStateOf(false),
startDestination: String = MainNavItem.MainView.route
) {
NavHost(navController = navController, startDestination = startDestination) {
composable(MainNavItem.MainView.route) {
displayUnderStatusBar.value = false
MainAppView(appNavController = navController)
}
composable(
@@ -38,7 +36,6 @@ fun MainNavigationRoutes(
navArgument(NavConstants.TYPE_KEY) { type = NavType.EnumType(MediaViewType::class.java) }
)
) { navBackStackEntry ->
displayUnderStatusBar.value = true
val args = navBackStackEntry.arguments
val mediaType = args?.getSerializable(NavConstants.TYPE_KEY) as MediaViewType
if (mediaType != MediaViewType.PERSON) {