From ecaab6755084a6b8988ccd4d590ffb1edb0502da Mon Sep 17 00:00:00 2001 From: Jolanda Verhoef Date: Mon, 20 Nov 2023 16:13:30 +0000 Subject: [PATCH] [Jetsnack] Add edge to edge support --- Jetsnack/app/build.gradle.kts | 1 - Jetsnack/app/src/main/AndroidManifest.xml | 4 +- .../com/example/jetsnack/ui/MainActivity.kt | 11 +--- .../jetsnack/ui/home/DestinationBar.kt | 60 ++++++++++--------- .../com/example/jetsnack/ui/theme/Theme.kt | 9 --- Jetsnack/app/src/main/res/values/themes.xml | 2 - 6 files changed, 37 insertions(+), 50 deletions(-) diff --git a/Jetsnack/app/build.gradle.kts b/Jetsnack/app/build.gradle.kts index 4d5b86f559..b721b8684c 100644 --- a/Jetsnack/app/build.gradle.kts +++ b/Jetsnack/app/build.gradle.kts @@ -111,7 +111,6 @@ dependencies { implementation(libs.androidx.compose.ui.tooling.preview) debugImplementation(libs.androidx.compose.ui.tooling) - implementation(libs.accompanist.systemuicontroller) implementation(libs.accompanist.flowlayout) implementation(libs.coil.kt.compose) diff --git a/Jetsnack/app/src/main/AndroidManifest.xml b/Jetsnack/app/src/main/AndroidManifest.xml index 9bb684b26d..3cb23f5b22 100644 --- a/Jetsnack/app/src/main/AndroidManifest.xml +++ b/Jetsnack/app/src/main/AndroidManifest.xml @@ -29,9 +29,9 @@ + android:exported="true" + android:windowSoftInputMode="adjustResize"> diff --git a/Jetsnack/app/src/main/java/com/example/jetsnack/ui/MainActivity.kt b/Jetsnack/app/src/main/java/com/example/jetsnack/ui/MainActivity.kt index 7a08c4a2bd..4c1ee27c01 100644 --- a/Jetsnack/app/src/main/java/com/example/jetsnack/ui/MainActivity.kt +++ b/Jetsnack/app/src/main/java/com/example/jetsnack/ui/MainActivity.kt @@ -19,17 +19,12 @@ package com.example.jetsnack.ui import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent -import androidx.core.view.WindowCompat +import androidx.activity.enableEdgeToEdge class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() super.onCreate(savedInstanceState) - - // This app draws behind the system bars, so we want to handle fitting system windows - WindowCompat.setDecorFitsSystemWindows(window, false) - - setContent { - JetsnackApp() - } + setContent { JetsnackApp() } } } diff --git a/Jetsnack/app/src/main/java/com/example/jetsnack/ui/home/DestinationBar.kt b/Jetsnack/app/src/main/java/com/example/jetsnack/ui/home/DestinationBar.kt index ca96755cdd..e103031a52 100644 --- a/Jetsnack/app/src/main/java/com/example/jetsnack/ui/home/DestinationBar.kt +++ b/Jetsnack/app/src/main/java/com/example/jetsnack/ui/home/DestinationBar.kt @@ -17,8 +17,12 @@ package com.example.jetsnack.ui.home import android.content.res.Configuration -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.statusBarsPadding +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.WindowInsetsSides.Companion.Horizontal +import androidx.compose.foundation.layout.WindowInsetsSides.Companion.Top +import androidx.compose.foundation.layout.asPaddingValues +import androidx.compose.foundation.layout.only +import androidx.compose.foundation.layout.systemBars import androidx.compose.material.Icon import androidx.compose.material.IconButton import androidx.compose.material.MaterialTheme @@ -41,36 +45,36 @@ import com.example.jetsnack.ui.theme.JetsnackTheme @Composable fun DestinationBar(modifier: Modifier = Modifier) { - Column(modifier = modifier.statusBarsPadding()) { - TopAppBar( - backgroundColor = JetsnackTheme.colors.uiBackground.copy(alpha = AlphaNearOpaque), - contentColor = JetsnackTheme.colors.textSecondary, - elevation = 0.dp + TopAppBar( + backgroundColor = JetsnackTheme.colors.uiBackground.copy(alpha = AlphaNearOpaque), + contentColor = JetsnackTheme.colors.textSecondary, + contentPadding = WindowInsets.systemBars.only(Horizontal + Top).asPaddingValues(), + elevation = 0.dp, + modifier = modifier + ) { + Text( + text = "Delivery to 1600 Amphitheater Way", + style = MaterialTheme.typography.subtitle1, + color = JetsnackTheme.colors.textSecondary, + textAlign = TextAlign.Center, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + modifier = Modifier + .weight(1f) + .align(Alignment.CenterVertically) + ) + IconButton( + onClick = { /* todo */ }, + modifier = Modifier.align(Alignment.CenterVertically) ) { - Text( - text = "Delivery to 1600 Amphitheater Way", - style = MaterialTheme.typography.subtitle1, - color = JetsnackTheme.colors.textSecondary, - textAlign = TextAlign.Center, - maxLines = 1, - overflow = TextOverflow.Ellipsis, - modifier = Modifier - .weight(1f) - .align(Alignment.CenterVertically) + Icon( + imageVector = Icons.Outlined.ExpandMore, + tint = JetsnackTheme.colors.brand, + contentDescription = stringResource(R.string.label_select_delivery) ) - IconButton( - onClick = { /* todo */ }, - modifier = Modifier.align(Alignment.CenterVertically) - ) { - Icon( - imageVector = Icons.Outlined.ExpandMore, - tint = JetsnackTheme.colors.brand, - contentDescription = stringResource(R.string.label_select_delivery) - ) - } } - JetsnackDivider() } + JetsnackDivider() } @Preview("default") diff --git a/Jetsnack/app/src/main/java/com/example/jetsnack/ui/theme/Theme.kt b/Jetsnack/app/src/main/java/com/example/jetsnack/ui/theme/Theme.kt index 40fddc99df..b54a5f3c73 100644 --- a/Jetsnack/app/src/main/java/com/example/jetsnack/ui/theme/Theme.kt +++ b/Jetsnack/app/src/main/java/com/example/jetsnack/ui/theme/Theme.kt @@ -21,7 +21,6 @@ import androidx.compose.material.Colors import androidx.compose.material.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.SideEffect import androidx.compose.runtime.Stable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -29,7 +28,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.graphics.Color -import com.google.accompanist.systemuicontroller.rememberSystemUiController private val LightColorPalette = JetsnackColors( brand = Shadow5, @@ -90,13 +88,6 @@ fun JetsnackTheme( ) { val colors = if (darkTheme) DarkColorPalette else LightColorPalette - val sysUiController = rememberSystemUiController() - SideEffect { - sysUiController.setSystemBarsColor( - color = colors.uiBackground.copy(alpha = AlphaNearOpaque) - ) - } - ProvideJetsnackColors(colors) { MaterialTheme( colors = debugColors(darkTheme), diff --git a/Jetsnack/app/src/main/res/values/themes.xml b/Jetsnack/app/src/main/res/values/themes.xml index d0dc5f41f2..e42c05ebf7 100644 --- a/Jetsnack/app/src/main/res/values/themes.xml +++ b/Jetsnack/app/src/main/res/values/themes.xml @@ -17,8 +17,6 @@