@@ -12,7 +12,6 @@ import androidx.compose.foundation.layout.WindowInsetsSides
1212import androidx.compose.foundation.layout.asPaddingValues
1313import androidx.compose.foundation.layout.consumeWindowInsets
1414import androidx.compose.foundation.layout.fillMaxWidth
15- import androidx.compose.foundation.layout.imePadding
1615import androidx.compose.foundation.layout.navigationBars
1716import androidx.compose.foundation.layout.only
1817import androidx.compose.foundation.layout.padding
@@ -28,21 +27,15 @@ import androidx.compose.runtime.CompositionLocalProvider
2827import androidx.compose.runtime.DisposableEffect
2928import androidx.compose.runtime.LaunchedEffect
3029import androidx.compose.runtime.getValue
31- import androidx.compose.runtime.mutableIntStateOf
3230import androidx.compose.runtime.mutableStateOf
3331import androidx.compose.runtime.remember
3432import androidx.compose.runtime.rememberCoroutineScope
3533import androidx.compose.runtime.setValue
3634import androidx.compose.ui.Alignment
3735import androidx.compose.ui.Modifier
38- import androidx.compose.ui.composed
3936import androidx.compose.ui.draw.clip
4037import androidx.compose.ui.focus.onFocusChanged
41- import androidx.compose.ui.layout.findRootCoordinates
42- import androidx.compose.ui.layout.onGloballyPositioned
43- import androidx.compose.ui.layout.positionInWindow
4438import androidx.compose.ui.platform.LocalConfiguration
45- import androidx.compose.ui.platform.LocalContext
4639import androidx.compose.ui.unit.dp
4740import androidx.core.view.WindowInsetsControllerCompat
4841import androidx.window.core.layout.WindowHeightSizeClass
@@ -57,7 +50,6 @@ import com.composables.core.SheetDetent.Companion.Hidden
5750import com.composables.core.rememberModalBottomSheetState
5851import com.composeunstyled.LocalModalWindow
5952import com.gravatar.quickeditor.QuickEditorContainer
60- import com.gravatar.quickeditor.ui.avatarpicker.pxToDp
6153import com.gravatar.quickeditor.ui.components.QEDragHandle
6254import com.gravatar.quickeditor.ui.editor.AuthenticationMethod
6355import com.gravatar.quickeditor.ui.editor.AvatarPickerContentLayout
@@ -301,17 +293,17 @@ private fun GravatarModalBottomSheet(
301293 },
302294 ),
303295 ) {
296+ val paddingValues = WindowInsets .navigationBars
297+ .only(WindowInsetsSides .Vertical )
298+ .asPaddingValues()
304299 Sheet (
305300 modifier = Modifier
306301 .clip(RoundedCornerShape (topStart = 28 .dp, topEnd = 28 .dp))
307302 .background(MaterialTheme .colorScheme.surfaceColorAtElevation(1 .dp))
308303 .widthIn(max = 640 .dp)
309304 .fillMaxWidth()
310- .padding(
311- WindowInsets .navigationBars
312- .only(WindowInsetsSides .Vertical )
313- .asPaddingValues(),
314- ),
305+ .padding(paddingValues)
306+ .consumeWindowInsets(paddingValues),
315307 ) {
316308 val window = LocalModalWindow .current
317309 val isDarkTheme = isSystemInDarkTheme()
@@ -402,23 +394,6 @@ private fun QuickEditorScopeOption.initialDetent(windowHeightSizeClass: WindowHe
402394 }
403395}
404396
405- /* *
406- * The default .imePadding adds a lot of extra padding to the bottom of the screen
407- * This is a workaround, see https://stackoverflow.com/questions/76014880/enormous-ime-padding-in-jetpack-compose
408- */
409- internal fun Modifier.positionAwareImePadding (): Modifier = composed {
410- var consumePadding by remember { mutableIntStateOf(0 ) }
411-
412- this
413- .onGloballyPositioned { coordinates ->
414- val root = coordinates.findRootCoordinates()
415- val bottom = coordinates.positionInWindow().y + coordinates.size.height
416- consumePadding = (root.size.height - bottom).toInt().coerceAtLeast(0 )
417- }
418- .consumeWindowInsets(PaddingValues (bottom = consumePadding.pxToDp(LocalContext .current)))
419- .imePadding()
420- }
421-
422397internal data class ModalDetents (
423398 val initialDetent : SheetDetent ,
424399 val detents : List <SheetDetent >,
0 commit comments