main: band-aid bottom sheets flipping out pre-30
Caused by busted legacy window insets behavior biting me again.
This commit is contained in:
parent
c9d4b01f9f
commit
b0b55b5069
6 changed files with 41 additions and 13 deletions
|
@ -0,0 +1,28 @@
|
|||
package org.oxycblt.auxio.ui
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.WindowInsets
|
||||
import android.widget.FrameLayout
|
||||
import androidx.annotation.AttrRes
|
||||
|
||||
/**
|
||||
* A [FrameLayout] that works around the pre-Android 10 behavior of propagating
|
||||
* mutated insets to sibling views. Wrap this around views that to isolate
|
||||
* mutated window insets.
|
||||
*
|
||||
* @author Alexander Capehart (OxygenCobalt)
|
||||
*/
|
||||
class EatInsetsFrameLayout
|
||||
@JvmOverloads
|
||||
constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr: Int = 0) :
|
||||
FrameLayout(context, attrs, defStyleAttr) {
|
||||
init {
|
||||
clipToPadding = false
|
||||
}
|
||||
|
||||
override fun dispatchApplyWindowInsets(insets: WindowInsets): WindowInsets {
|
||||
super.dispatchApplyWindowInsets(insets)
|
||||
return insets
|
||||
}
|
||||
}
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.home
|
||||
package org.oxycblt.auxio.ui
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
|
@ -40,8 +40,8 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr
|
|||
}
|
||||
|
||||
override fun onApplyWindowInsets(insets: WindowInsets): WindowInsets {
|
||||
// Prevent excessive layouts by using translation instead of padding.
|
||||
updatePadding(bottom = insets.systemBarInsetsCompat.bottom)
|
||||
return insets
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
android:background="?attr/colorSurface">
|
||||
|
||||
|
||||
<FrameLayout
|
||||
<org.oxycblt.auxio.ui.EatInsetsFrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="org.oxycblt.auxio.ui.BottomSheetContentBehavior">
|
||||
|
@ -23,7 +23,7 @@
|
|||
tools:layout="@layout/fragment_home" />
|
||||
|
||||
|
||||
<org.oxycblt.auxio.home.EdgeFrameLayout
|
||||
<org.oxycblt.auxio.ui.EdgeFrameLayout
|
||||
android:id="@+id/main_fab_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
@ -55,9 +55,9 @@
|
|||
android:contentDescription="@string/lbl_shuffle"
|
||||
android:src="@drawable/ic_shuffle_off_24" />
|
||||
|
||||
</org.oxycblt.auxio.home.EdgeFrameLayout>
|
||||
</org.oxycblt.auxio.ui.EdgeFrameLayout>
|
||||
|
||||
</FrameLayout>
|
||||
</org.oxycblt.auxio.ui.EatInsetsFrameLayout>
|
||||
|
||||
|
||||
<View
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
tools:listitem="@layout/item_song" />
|
||||
|
||||
|
||||
<org.oxycblt.auxio.home.EdgeFrameLayout
|
||||
<org.oxycblt.auxio.ui.EdgeFrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
@ -53,5 +53,5 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
</org.oxycblt.auxio.home.EdgeFrameLayout>
|
||||
</org.oxycblt.auxio.ui.EdgeFrameLayout>
|
||||
</FrameLayout>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
android:background="?attr/colorSurface"
|
||||
android:transitionGroup="true">
|
||||
|
||||
<FrameLayout
|
||||
<org.oxycblt.auxio.ui.EatInsetsFrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="org.oxycblt.auxio.ui.BottomSheetContentBehavior">
|
||||
|
@ -28,7 +28,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:visibility="invisible" />
|
||||
|
||||
<org.oxycblt.auxio.home.EdgeFrameLayout
|
||||
<org.oxycblt.auxio.ui.EdgeFrameLayout
|
||||
android:id="@+id/main_fab_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
@ -60,9 +60,9 @@
|
|||
android:contentDescription="@string/lbl_shuffle"
|
||||
android:src="@drawable/ic_shuffle_off_24" />
|
||||
|
||||
</org.oxycblt.auxio.home.EdgeFrameLayout>
|
||||
</org.oxycblt.auxio.ui.EdgeFrameLayout>
|
||||
|
||||
</FrameLayout>
|
||||
</org.oxycblt.auxio.ui.EatInsetsFrameLayout>
|
||||
|
||||
<View
|
||||
android:id="@+id/main_sheet_scrim"
|
||||
|
|
2
media
2
media
|
@ -1 +1 @@
|
|||
Subproject commit 4b3084e1b63185eaeffa7cac9d7015040e0e2aa5
|
||||
Subproject commit 9a0e432c08ee572056f99b9c26d9657753c87fe2
|
Loading…
Reference in a new issue