mirror of
https://github.com/bitwarden/android.git
synced 2025-02-16 11:59:57 +03:00
BIT-955: Add edge-to-edge support (#162)
This commit is contained in:
parent
dc6d37dc32
commit
d81c146f33
7 changed files with 29 additions and 8 deletions
|
@ -17,7 +17,8 @@
|
|||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/LaunchTheme">
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.fillMaxHeight
|
|||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.safeDrawingPadding
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.layout.wrapContentHeight
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
|
@ -82,6 +83,7 @@ fun LandingScreen(
|
|||
modifier = Modifier
|
||||
.semantics { testTagsAsResourceId = true }
|
||||
.background(MaterialTheme.colorScheme.surface)
|
||||
.safeDrawingPadding()
|
||||
.fillMaxHeight()
|
||||
.verticalScroll(scrollState),
|
||||
) {
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
package com.x8bit.bitwarden.ui.platform.feature.vaultunlockednavbar
|
||||
|
||||
import android.os.Parcelable
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.consumeWindowInsets
|
||||
import androidx.compose.foundation.layout.exclude
|
||||
import androidx.compose.foundation.layout.navigationBars
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.statusBars
|
||||
import androidx.compose.material3.BottomAppBar
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.NavigationBarItem
|
||||
import androidx.compose.material3.NavigationBarItemDefaults
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.ScaffoldDefaults
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
|
@ -98,7 +104,11 @@ private fun VaultUnlockedNavBarScaffold(
|
|||
generatorTabClickedAction: () -> Unit,
|
||||
settingsTabClickedAction: () -> Unit,
|
||||
) {
|
||||
// This scaffold will host screens that contain top bars while not hosting one itself.
|
||||
// We need to ignore the status bar insets here and let the content screens handle
|
||||
// it themselves.
|
||||
Scaffold(
|
||||
contentWindowInsets = ScaffoldDefaults.contentWindowInsets.exclude(WindowInsets.statusBars),
|
||||
bottomBar = {
|
||||
BottomAppBar(
|
||||
containerColor = MaterialTheme.colorScheme.surfaceContainer,
|
||||
|
@ -157,10 +167,14 @@ private fun VaultUnlockedNavBarScaffold(
|
|||
}
|
||||
},
|
||||
) { innerPadding ->
|
||||
// This NavHost will consume the navigation bars insets since the bottom bar
|
||||
// is handling them and we do not want the child to receive them.
|
||||
NavHost(
|
||||
navController = navController,
|
||||
startDestination = VAULT_ROUTE,
|
||||
modifier = Modifier.padding(innerPadding),
|
||||
modifier = Modifier
|
||||
.consumeWindowInsets(WindowInsets.navigationBars)
|
||||
.padding(innerPadding),
|
||||
) {
|
||||
vaultDestination()
|
||||
sendDestination()
|
||||
|
|
|
@ -14,7 +14,6 @@ import androidx.compose.material3.lightColorScheme
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.SideEffect
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.toArgb
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.core.view.WindowCompat
|
||||
|
@ -46,8 +45,10 @@ fun BitwardenTheme(
|
|||
if (!view.isInEditMode) {
|
||||
SideEffect {
|
||||
val window = (view.context as Activity).window
|
||||
window.statusBarColor = colorScheme.surface.toArgb()
|
||||
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
val insetsController = WindowCompat.getInsetsController(window, view)
|
||||
insetsController.isAppearanceLightStatusBars = !darkTheme
|
||||
insetsController.isAppearanceLightNavigationBars = !darkTheme
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,13 +7,15 @@
|
|||
<item name="android:colorActivatedHighlight">@android:color/transparent</item>
|
||||
<item name="android:colorControlNormal">@color/dark_border</item>
|
||||
<item name="android:colorPrimaryDark">@color/dark_notification_bar</item>
|
||||
<item name="android:navigationBarColor">@color/dark_navigation_bar_background</item>
|
||||
<item name="android:navigationBarColor">@android:color/transparent</item>
|
||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||
<item name="android:popupTheme">@android:style/ThemeOverlay.Material</item>
|
||||
<item name="android:textCursorDrawable">@null</item>
|
||||
<item name="android:windowActionBar">false</item>
|
||||
<item name="android:windowActionModeOverlay">true</item>
|
||||
<item name="android:windowBackground">@null</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">default</item>
|
||||
</style>
|
||||
|
||||
<style name="ButtonStyle" parent="android:Widget.Material.Button">
|
||||
|
|
|
@ -51,7 +51,6 @@
|
|||
|
||||
<!-- Dark System -->
|
||||
<color name="dark_border">@color/grey_666666</color>
|
||||
<color name="dark_navigation_bar_background">@color/grey_191919</color>
|
||||
<color name="dark_notification_bar">@color/grey_191919</color>
|
||||
<color name="dark_primary">@color/blue_B2C5FF</color>
|
||||
<color name="dark_on_primary">@color/blue_002B74</color>
|
||||
|
|
|
@ -8,13 +8,15 @@
|
|||
<item name="android:colorControlNormal">@color/border</item>
|
||||
<item name="android:colorPrimary">@color/primary</item>
|
||||
<item name="android:colorPrimaryDark">@color/notification_bar</item>
|
||||
<item name="android:navigationBarColor">@android:color/black</item>
|
||||
<item name="android:navigationBarColor">@android:color/transparent</item>
|
||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||
<item name="android:popupTheme">@android:style/ThemeOverlay.Material.Light</item>
|
||||
<item name="android:textCursorDrawable">@null</item>
|
||||
<item name="android:windowActionBar">false</item>
|
||||
<item name="android:windowBackground">@null</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:windowActionModeOverlay">true</item>
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">default</item>
|
||||
</style>
|
||||
|
||||
<style name="ButtonStyle" parent="android:Widget.Material.Button">
|
||||
|
|
Loading…
Add table
Reference in a new issue