From 0d2b974e0dfe433ad694a6e2f5447d2e74433237 Mon Sep 17 00:00:00 2001
From: MM20 <15646950+MM2-0@users.noreply.github.com>
Date: Mon, 11 Jul 2022 12:47:28 +0200
Subject: [PATCH] Fix window insets on devices with display cutouts
Fix #111
---
base/src/main/res/values/themes.xml | 1 +
.../de/mm20/launcher2/ui/launcher/PagerScaffold.kt | 8 ++++----
.../de/mm20/launcher2/ui/launcher/PullDownScaffold.kt | 10 +++++-----
3 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/base/src/main/res/values/themes.xml b/base/src/main/res/values/themes.xml
index 65cb71f8..0aa2f702 100644
--- a/base/src/main/res/values/themes.xml
+++ b/base/src/main/res/values/themes.xml
@@ -48,5 +48,6 @@
- false
- false
- true
+ - shortEdges
\ No newline at end of file
diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt
index 6464809c..ca08e8ae 100644
--- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt
+++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt
@@ -194,7 +194,7 @@ fun PagerScaffold(
}
}
- val insets = WindowInsets.systemBars.asPaddingValues()
+ val insets = WindowInsets.safeDrawing.asPaddingValues()
Box(
modifier = modifier
@@ -258,7 +258,7 @@ fun PagerScaffold(
.fillMaxHeight()
.nestedScroll(nestedScrollConnection)
.verticalScroll(widgetsScrollState)
- .systemBarsPadding()
+ .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(horizontal = 8.dp)
.padding(top = 8.dp, bottom = 64.dp)
.padding(top = editModePadding),
@@ -281,7 +281,7 @@ fun PagerScaffold(
.fillMaxHeight()
.verticalScroll(searchScrollState, reverseScrolling = true)
.imePadding()
- .systemBarsPadding()
+ .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(horizontal = 8.dp)
.padding(top = 8.dp, bottom = 64.dp)
.padding(bottom = webSearchPadding),
@@ -327,7 +327,7 @@ fun PagerScaffold(
modifier = Modifier
.align(Alignment.BottomCenter)
.padding(start = 8.dp, end = 8.dp, bottom = 8.dp)
- .systemBarsPadding()
+ .windowInsetsPadding(WindowInsets.safeDrawing)
.imePadding()
.offset(y = widgetEditModeOffset),
level = { searchBarLevel }, focused = focusSearchBar, onFocusChange = {
diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt
index 3860fde4..341dab53 100644
--- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt
+++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt
@@ -215,7 +215,7 @@ fun PullDownScaffold(
}
}
- val insets = WindowInsets.systemBars.asPaddingValues()
+ val insets = WindowInsets.safeDrawing.asPaddingValues()
Box(
modifier = modifier
.nestedScroll(nestedScrollConnection)
@@ -261,7 +261,7 @@ fun PullDownScaffold(
.fillMaxWidth()
.requiredHeight(height)
.verticalScroll(searchScrollState)
- .systemBarsPadding()
+ .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(8.dp)
.padding(top = 56.dp)
.padding(top = webSearchPadding)
@@ -288,7 +288,7 @@ fun PullDownScaffold(
.fillMaxWidth()
.requiredHeight(height)
.verticalScroll(widgetsScrollState)
- .systemBarsPadding()
+ .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(8.dp)
.padding(top = editModePadding),
clockHeight = { clockHeight },
@@ -311,7 +311,7 @@ fun PullDownScaffold(
) {
CenterAlignedTopAppBar(
modifier = Modifier
- .systemBarsPadding(),
+ .windowInsetsPadding(WindowInsets.safeDrawing),
title = {
Text(stringResource(R.string.menu_edit_widgets))
},
@@ -344,7 +344,7 @@ fun PullDownScaffold(
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight()
- .systemBarsPadding()
+ .windowInsetsPadding(WindowInsets.safeDrawing)
.padding(8.dp)
.offset { IntOffset(0, searchBarOffset.value.toInt()) }
.offset {