From 35eb07410d8da358b211f130f0edc696fc4cc488 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Fri, 26 Nov 2021 09:54:59 -0700 Subject: [PATCH] playback: gracefully handle multi-window mode Add a new layout that handles the edge-case where splitscreen is used on a sufficently small device. Previously it would result in a squashed landscape layout, but now it will show a layout that should fit fine in most situations. --- .../oxycblt/auxio/playback/PlaybackBarView.kt | 2 +- .../auxio/playback/PlaybackFragment.kt | 2 + .../res/layout-land/fragment_playback.xml | 34 ++-- .../layout-w600dp-land/fragment_playback.xml | 189 ++++++++++++++++++ 4 files changed, 209 insertions(+), 18 deletions(-) create mode 100644 app/src/main/res/layout-w600dp-land/fragment_playback.xml diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarView.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarView.kt index f65aee258..a3e041421 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarView.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarView.kt @@ -22,7 +22,6 @@ import android.content.Context import android.util.AttributeSet import android.view.WindowInsets import androidx.constraintlayout.widget.ConstraintLayout -import androidx.core.view.postDelayed import androidx.core.view.updatePadding import com.google.android.material.color.MaterialColors import org.oxycblt.auxio.R @@ -89,5 +88,6 @@ class PlaybackBarView @JvmOverloads constructor( fun clearCallback() { mCallback = null binding.callback = null + binding.executePendingBindings() } } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt index 5235d69c5..46396e8e2 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt @@ -145,6 +145,8 @@ class PlaybackFragment : Fragment() { } } + logD(resources.configuration.smallestScreenWidthDp) + logD("Fragment Created.") return binding.root diff --git a/app/src/main/res/layout-land/fragment_playback.xml b/app/src/main/res/layout-land/fragment_playback.xml index c4954313f..726ecc03f 100644 --- a/app/src/main/res/layout-land/fragment_playback.xml +++ b/app/src/main/res/layout-land/fragment_playback.xml @@ -31,18 +31,19 @@ style="@style/Widget.Auxio.Toolbar.Icon.Down" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:title="@string/lbl_playback" - app:menu="@menu/menu_playback" /> + app:menu="@menu/menu_playback" + app:title="@string/lbl_playback" /> @@ -57,7 +58,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/playback_cover" - app:layout_constraintTop_toBottomOf="@+id/playback_toolbar" + app:layout_constraintTop_toTopOf="@+id/playback_cover" app:layout_constraintVertical_chainStyle="packed"> + app:layout_constraintStart_toStartOf="@+id/playback_cover" + app:layout_constraintTop_toBottomOf="@+id/playback_cover" + app:layout_constraintVertical_chainStyle="packed" /> @@ -153,10 +154,9 @@ android:src="@drawable/sel_playing_state" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="@+id/playback_seek_bar" - app:layout_constraintHorizontal_bias="0.5" - app:layout_constraintStart_toEndOf="@+id/playback_cover" + app:layout_constraintStart_toStartOf="@+id/playback_seek_bar" app:layout_constraintTop_toBottomOf="@+id/playback_seek_bar" - tools:src="@drawable/ic_pause" /> + tools:src="@drawable/ic_play" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file