From 772fe7df3bc0c7e8e39f68dd95c73132d2d32605 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Wed, 3 Aug 2022 15:42:37 -0600 Subject: [PATCH] ui: make bottom sheets request insets on layout Make bottom sheets request window insets when they are laid out. For some insane reason, bottom sheets are just not given window insets when the device is rotated in the detail view. Appaently requesting them fixes it all of a sudden. --- .../oxycblt/auxio/ui/BottomSheetContentBehavior.kt | 2 ++ .../auxio/ui/coordinator/EdgeCoordinatorLayout.kt | 12 ++++++++++++ app/src/main/res/layout/fragment_main.xml | 8 ++++---- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/ui/BottomSheetContentBehavior.kt b/app/src/main/java/org/oxycblt/auxio/ui/BottomSheetContentBehavior.kt index a2a118584..7bde30601 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/BottomSheetContentBehavior.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/BottomSheetContentBehavior.kt @@ -120,6 +120,8 @@ class BottomSheetContentBehavior(context: Context, attributeSet: Attri setup = true } + child.requestApplyInsets() + return true } diff --git a/app/src/main/java/org/oxycblt/auxio/ui/coordinator/EdgeCoordinatorLayout.kt b/app/src/main/java/org/oxycblt/auxio/ui/coordinator/EdgeCoordinatorLayout.kt index 4f138e77f..7fe6d4b63 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/coordinator/EdgeCoordinatorLayout.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/coordinator/EdgeCoordinatorLayout.kt @@ -34,7 +34,19 @@ class EdgeCoordinatorLayout @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr: Int = 0) : CoordinatorLayout(context, attrs, defStyleAttr) { + override fun dispatchApplyWindowInsets(insets: WindowInsets): WindowInsets { + super.dispatchApplyWindowInsets(insets) + + for (child in children) { + child.dispatchApplyWindowInsets(insets) + } + + return insets + } + override fun onApplyWindowInsets(insets: WindowInsets): WindowInsets { + super.onApplyWindowInsets(insets) + for (child in children) { child.onApplyWindowInsets(insets) } diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index ab842449f..3beae988c 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -1,5 +1,5 @@ - - - + - +