Fix window insets on devices with display cutouts

Fix #111
This commit is contained in:
MM20 2022-07-11 12:47:28 +02:00
parent 8ee34cb80a
commit 0d2b974e0d
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
3 changed files with 10 additions and 9 deletions

View File

@ -48,5 +48,6 @@
<item name="android:enforceNavigationBarContrast">false</item> <item name="android:enforceNavigationBarContrast">false</item>
<item name="windowActionBar">false</item> <item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item> <item name="windowNoTitle">true</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style> </style>
</resources> </resources>

View File

@ -194,7 +194,7 @@ fun PagerScaffold(
} }
} }
val insets = WindowInsets.systemBars.asPaddingValues() val insets = WindowInsets.safeDrawing.asPaddingValues()
Box( Box(
modifier = modifier modifier = modifier
@ -258,7 +258,7 @@ fun PagerScaffold(
.fillMaxHeight() .fillMaxHeight()
.nestedScroll(nestedScrollConnection) .nestedScroll(nestedScrollConnection)
.verticalScroll(widgetsScrollState) .verticalScroll(widgetsScrollState)
.systemBarsPadding() .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(horizontal = 8.dp) .padding(horizontal = 8.dp)
.padding(top = 8.dp, bottom = 64.dp) .padding(top = 8.dp, bottom = 64.dp)
.padding(top = editModePadding), .padding(top = editModePadding),
@ -281,7 +281,7 @@ fun PagerScaffold(
.fillMaxHeight() .fillMaxHeight()
.verticalScroll(searchScrollState, reverseScrolling = true) .verticalScroll(searchScrollState, reverseScrolling = true)
.imePadding() .imePadding()
.systemBarsPadding() .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(horizontal = 8.dp) .padding(horizontal = 8.dp)
.padding(top = 8.dp, bottom = 64.dp) .padding(top = 8.dp, bottom = 64.dp)
.padding(bottom = webSearchPadding), .padding(bottom = webSearchPadding),
@ -327,7 +327,7 @@ fun PagerScaffold(
modifier = Modifier modifier = Modifier
.align(Alignment.BottomCenter) .align(Alignment.BottomCenter)
.padding(start = 8.dp, end = 8.dp, bottom = 8.dp) .padding(start = 8.dp, end = 8.dp, bottom = 8.dp)
.systemBarsPadding() .windowInsetsPadding(WindowInsets.safeDrawing)
.imePadding() .imePadding()
.offset(y = widgetEditModeOffset), .offset(y = widgetEditModeOffset),
level = { searchBarLevel }, focused = focusSearchBar, onFocusChange = { level = { searchBarLevel }, focused = focusSearchBar, onFocusChange = {

View File

@ -215,7 +215,7 @@ fun PullDownScaffold(
} }
} }
val insets = WindowInsets.systemBars.asPaddingValues() val insets = WindowInsets.safeDrawing.asPaddingValues()
Box( Box(
modifier = modifier modifier = modifier
.nestedScroll(nestedScrollConnection) .nestedScroll(nestedScrollConnection)
@ -261,7 +261,7 @@ fun PullDownScaffold(
.fillMaxWidth() .fillMaxWidth()
.requiredHeight(height) .requiredHeight(height)
.verticalScroll(searchScrollState) .verticalScroll(searchScrollState)
.systemBarsPadding() .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(8.dp) .padding(8.dp)
.padding(top = 56.dp) .padding(top = 56.dp)
.padding(top = webSearchPadding) .padding(top = webSearchPadding)
@ -288,7 +288,7 @@ fun PullDownScaffold(
.fillMaxWidth() .fillMaxWidth()
.requiredHeight(height) .requiredHeight(height)
.verticalScroll(widgetsScrollState) .verticalScroll(widgetsScrollState)
.systemBarsPadding() .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(8.dp) .padding(8.dp)
.padding(top = editModePadding), .padding(top = editModePadding),
clockHeight = { clockHeight }, clockHeight = { clockHeight },
@ -311,7 +311,7 @@ fun PullDownScaffold(
) { ) {
CenterAlignedTopAppBar( CenterAlignedTopAppBar(
modifier = Modifier modifier = Modifier
.systemBarsPadding(), .windowInsetsPadding(WindowInsets.safeDrawing),
title = { title = {
Text(stringResource(R.string.menu_edit_widgets)) Text(stringResource(R.string.menu_edit_widgets))
}, },
@ -344,7 +344,7 @@ fun PullDownScaffold(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.wrapContentHeight() .wrapContentHeight()
.systemBarsPadding() .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(8.dp) .padding(8.dp)
.offset { IntOffset(0, searchBarOffset.value.toInt()) } .offset { IntOffset(0, searchBarOffset.value.toInt()) }
.offset { .offset {