From 4475d4a5cc6bffbf4ecac336ae856f80a06acacc Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sat, 20 Nov 2021 10:44:40 -0700 Subject: [PATCH] playback: update tablet layouts Use proper exact-size layouts for the tablet views. This also adds a new compact view that shows more controls for landscape/tablet layouts. --- .../java/org/oxycblt/auxio/MainFragment.kt | 16 ++- .../auxio/playback/PlaybackBarLayout.kt | 2 + .../oxycblt/auxio/playback/PlaybackBarView.kt | 6 +- .../res/layout-land/fragment_playback.xml | 2 +- .../fragment_playback.xml | 4 +- .../fragment_playback.xml | 18 +-- .../layout-w600dp/view_compact_playback.xml | 120 ++++++++++++++++++ .../main/res/layout/view_compact_playback.xml | 5 + 8 files changed, 152 insertions(+), 21 deletions(-) rename app/src/main/res/{layout-xlarge-land => layout-sw600dp-land}/fragment_playback.xml (97%) rename app/src/main/res/{layout-xlarge => layout-sw600dp}/fragment_playback.xml (93%) create mode 100644 app/src/main/res/layout-w600dp/view_compact_playback.xml diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index a3afea6d2..d9b623bbb 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -142,10 +142,6 @@ class MainFragment : Fragment(), PlaybackBarLayout.ActionCallback { return binding.root } - override fun onPlayPauseClick() { - playbackModel.invertPlayingStatus() - } - override fun onNavToPlayback() { findNavController().navigate( MainFragmentDirections.actionGoToPlayback() @@ -155,4 +151,16 @@ class MainFragment : Fragment(), PlaybackBarLayout.ActionCallback { override fun onNavToItem() { detailModel.navToItem(playbackModel.song.value ?: return) } + + override fun onPrev() { + playbackModel.skipPrev() + } + + override fun onPlayPauseClick() { + playbackModel.invertPlayingStatus() + } + + override fun onNext() { + playbackModel.skipNext() + } } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarLayout.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarLayout.kt index 07a034a6e..9ac3f2678 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarLayout.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarLayout.kt @@ -352,7 +352,9 @@ class PlaybackBarLayout @JvmOverloads constructor( * view is detached. */ interface ActionCallback { + fun onPrev() fun onPlayPauseClick() + fun onNext() fun onNavToItem() fun onNavToPlayback() } 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 46103f476..22fe6ca87 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarView.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarView.kt @@ -81,10 +81,6 @@ class PlaybackBarView @JvmOverloads constructor( true } - binding.playbackPlayPause.setOnClickListener { - mCallback?.onPlayPauseClick() - } - // Deliberately override the progress bar color [in a Lollipop-friendly way] so that // we use colorSecondary instead of colorSurfaceVariant. This is for two reasons: // 1. colorSurfaceVariant is used with the assumption that the view that is using it @@ -115,9 +111,11 @@ class PlaybackBarView @JvmOverloads constructor( fun setCallback(callback: PlaybackBarLayout.ActionCallback) { mCallback = callback + binding.callback = callback } fun clearCallback() { mCallback = null + binding.callback = null } } diff --git a/app/src/main/res/layout-land/fragment_playback.xml b/app/src/main/res/layout-land/fragment_playback.xml index afc432fbb..ea6b6f9e1 100644 --- a/app/src/main/res/layout-land/fragment_playback.xml +++ b/app/src/main/res/layout-land/fragment_playback.xml @@ -38,7 +38,7 @@ diff --git a/app/src/main/res/layout-w600dp/view_compact_playback.xml b/app/src/main/res/layout-w600dp/view_compact_playback.xml new file mode 100644 index 000000000..db457a5e6 --- /dev/null +++ b/app/src/main/res/layout-w600dp/view_compact_playback.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_compact_playback.xml b/app/src/main/res/layout/view_compact_playback.xml index 99b4011c5..68d9d6b16 100644 --- a/app/src/main/res/layout/view_compact_playback.xml +++ b/app/src/main/res/layout/view_compact_playback.xml @@ -10,6 +10,10 @@ name="song" type="org.oxycblt.auxio.music.Song" /> + +