From bb9c842154a6bbb546d8c40b91d0c7d92cb035a4 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Thu, 11 Aug 2022 12:28:00 -0600 Subject: [PATCH] playback: add song menu option to names Re-add the song menu option to the title section of the playback view. This is again, due to the addition of the equalizer button, but also to make this menu easier to reach. --- .../auxio/playback/PlaybackPanelFragment.kt | 17 +++++----- .../layout-h600dp/fragment_playback_panel.xml | 32 +++++++++++++------ .../fragment_playback_panel.xml | 3 +- .../res/layout/fragment_playback_panel.xml | 2 +- app/src/main/res/layout/fragment_settings.xml | 4 ++- app/src/main/res/layout/item_queue_song.xml | 6 ++-- .../res/menu/menu_playback_song_actions.xml | 12 +++++++ 7 files changed, 51 insertions(+), 25 deletions(-) create mode 100644 app/src/main/res/menu/menu_playback_song_actions.xml diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt index 2afe92070..34f7f9b2b 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt @@ -27,16 +27,13 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.widget.Toolbar import androidx.core.view.updatePadding import androidx.fragment.app.Fragment -import androidx.fragment.app.activityViewModels import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentPlaybackPanelBinding import org.oxycblt.auxio.music.MusicParent import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.playback.state.RepeatMode import org.oxycblt.auxio.ui.MainNavigationAction -import org.oxycblt.auxio.ui.NavigationViewModel -import org.oxycblt.auxio.ui.fragment.ViewBindingFragment -import org.oxycblt.auxio.util.androidActivityViewModels +import org.oxycblt.auxio.ui.fragment.MenuFragment import org.oxycblt.auxio.util.collectImmediately import org.oxycblt.auxio.util.showToast import org.oxycblt.auxio.util.systemBarInsetsCompat @@ -49,13 +46,11 @@ import org.oxycblt.auxio.util.systemBarInsetsCompat * TODO: Make seek thumb grow when selected */ class PlaybackPanelFragment : - ViewBindingFragment(), + MenuFragment(), StyledSeekBar.Callback, Toolbar.OnMenuItemClickListener { - private val playbackModel: PlaybackViewModel by androidActivityViewModels() - private val navModel: NavigationViewModel by activityViewModels() - // AudioEffect expects you to use startActivityForResult with the panel intent. Use + // AudioEffect expects you to use startActivityFoResult with the panel intent. Use // the contract analogue for this since there is no built-in contract for AudioEffect. private val activityLauncher by lifecycleObject { registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { @@ -97,6 +92,12 @@ class PlaybackPanelFragment : playbackModel.song.value?.let { navModel.exploreNavigateTo(it.album) } } + binding.playbackSongMenu?.setOnClickListener { view -> + playbackModel.song.value?.let { song -> + musicMenu(view, R.menu.menu_playback_song_actions, song) + } + } + binding.playbackSeekBar.callback = this binding.playbackRepeat.setOnClickListener { playbackModel.incrementRepeatMode() } diff --git a/app/src/main/res/layout-h600dp/fragment_playback_panel.xml b/app/src/main/res/layout-h600dp/fragment_playback_panel.xml index 0ae0c32a1..bc34a3071 100644 --- a/app/src/main/res/layout-h600dp/fragment_playback_panel.xml +++ b/app/src/main/res/layout-h600dp/fragment_playback_panel.xml @@ -24,17 +24,17 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/playback_toolbar" - tools:staticIcon="@drawable/ic_song_48" /> + tools:staticIcon="@drawable/ic_song_24" /> @@ -42,27 +42,39 @@ +