diff --git a/CHANGELOG.md b/CHANGELOG.md index f228b8616..6d093d9b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,9 +3,11 @@ ## dev #### What's Improved +- Playback bar now has a marquee effect - Added a way to access the system equalizer from the playback menu. #### What's Changed +- Menus are now opened using a new button to the side of all items - ReplayGain can now no longer be disabled. Remove ReplayGain tags from files if such functionality is not desired. diff --git a/app/src/main/java/org/oxycblt/auxio/detail/recycler/AlbumDetailAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/recycler/AlbumDetailAdapter.kt index d2be5ea53..bb89c3d89 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/recycler/AlbumDetailAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/recycler/AlbumDetailAdapter.kt @@ -209,13 +209,8 @@ private class AlbumSongViewHolder private constructor(private val binding: ItemA binding.songName.text = item.resolveName(binding.context) binding.songDuration.text = item.durationSecs.formatDuration(false) - binding.root.apply { - setOnClickListener { listener.onItemClick(item) } - setOnLongClickListener { view -> - listener.onOpenMenu(item, view) - true - } - } + binding.songMenu.setOnClickListener { listener.onOpenMenu(item, it) } + binding.root.setOnClickListener { listener.onItemClick(item) } } companion object { diff --git a/app/src/main/java/org/oxycblt/auxio/detail/recycler/ArtistDetailAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/recycler/ArtistDetailAdapter.kt index 5a761c00f..040d1da65 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/recycler/ArtistDetailAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/recycler/ArtistDetailAdapter.kt @@ -168,14 +168,8 @@ private constructor( binding.parentImage.bind(item) binding.parentName.text = item.resolveName(binding.context) binding.parentInfo.text = item.date.resolveYear(binding.context) - - binding.root.apply { - setOnClickListener { listener.onItemClick(item) } - setOnLongClickListener { view -> - listener.onOpenMenu(item, view) - true - } - } + binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) } + binding.root.setOnClickListener { listener.onItemClick(item) } } companion object { @@ -204,14 +198,8 @@ private constructor( binding.songAlbumCover.bind(item) binding.songName.text = item.resolveName(binding.context) binding.songInfo.text = item.album.resolveName(binding.context) - - binding.root.apply { - setOnClickListener { listener.onItemClick(item) } - setOnLongClickListener { view -> - listener.onOpenMenu(item, view) - true - } - } + binding.songMenu.setOnClickListener { listener.onOpenMenu(item, it) } + binding.root.setOnClickListener { listener.onItemClick(item) } } companion object { diff --git a/app/src/main/java/org/oxycblt/auxio/detail/recycler/GenreDetailAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/recycler/GenreDetailAdapter.kt index 2d6df6ac4..d900b85be 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/recycler/GenreDetailAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/recycler/GenreDetailAdapter.kt @@ -139,13 +139,8 @@ class GenreSongViewHolder private constructor(private val binding: ItemSongBindi binding.songAlbumCover.bind(item) binding.songName.text = item.resolveName(binding.context) binding.songInfo.text = item.resolveIndividualArtistName(binding.context) - binding.root.apply { - setOnClickListener { listener.onItemClick(item) } - setOnLongClickListener { view -> - listener.onOpenMenu(item, view) - true - } - } + binding.songMenu.setOnClickListener { listener.onOpenMenu(item, it) } + binding.root.setOnClickListener { listener.onItemClick(item) } } companion object { diff --git a/app/src/main/java/org/oxycblt/auxio/home/tabs/TabAdapter.kt b/app/src/main/java/org/oxycblt/auxio/home/tabs/TabAdapter.kt index 40f5bd07c..4ef68fe1d 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/tabs/TabAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/tabs/TabAdapter.kt @@ -89,11 +89,6 @@ class TabViewHolder private constructor(private val binding: ItemTabBinding) : true } else false } - - binding.root.setOnLongClickListener { - listener.onPickUpTab(this) - true - } } companion object { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt index 289bd6c23..cc40b22df 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt @@ -61,6 +61,8 @@ class PlaybackBarFragment : ViewBindingFragment() { } } + binding.playbackSong.isSelected = true + // Load the track color in manually as it's unclear whether the track actually supports // using a ColorStateList in the resources binding.playbackProgressBar.trackColor = @@ -105,6 +107,11 @@ class PlaybackBarFragment : ViewBindingFragment() { collectImmediately(playbackModel.positionSecs, ::updatePosition) } + override fun onDestroyBinding(binding: FragmentPlaybackBarBinding) { + super.onDestroyBinding(binding) + binding.playbackSong.isSelected = false + } + private fun updateSong(song: Song?) { if (song != null) { val context = requireContext() 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 34f7f9b2b..12610ec6f 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt @@ -92,7 +92,7 @@ class PlaybackPanelFragment : playbackModel.song.value?.let { navModel.exploreNavigateTo(it.album) } } - binding.playbackSongMenu?.setOnClickListener { view -> + binding.playbackSongMenu.setOnClickListener { view -> playbackModel.song.value?.let { song -> musicMenu(view, R.menu.menu_playback_song_actions, song) } diff --git a/app/src/main/java/org/oxycblt/auxio/ui/recycler/ViewHolders.kt b/app/src/main/java/org/oxycblt/auxio/ui/recycler/ViewHolders.kt index b74c961bb..3c2dc25b6 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/recycler/ViewHolders.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/recycler/ViewHolders.kt @@ -41,13 +41,8 @@ class SongViewHolder private constructor(private val binding: ItemSongBinding) : binding.songAlbumCover.bind(item) binding.songName.text = item.resolveName(binding.context) binding.songInfo.text = item.resolveIndividualArtistName(binding.context) - binding.root.apply { - setOnClickListener { listener.onItemClick(item) } - setOnLongClickListener { view -> - listener.onOpenMenu(item, view) - true - } - } + binding.songMenu.setOnClickListener { listener.onOpenMenu(item, it) } + binding.root.setOnClickListener { listener.onItemClick(item) } } companion object { @@ -82,13 +77,8 @@ private constructor( binding.parentImage.bind(item) binding.parentName.text = item.resolveName(binding.context) binding.parentInfo.text = item.artist.resolveName(binding.context) - binding.root.apply { - setOnClickListener { listener.onItemClick(item) } - setOnLongClickListener { view -> - listener.onOpenMenu(item, view) - true - } - } + binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) } + binding.root.setOnClickListener { listener.onItemClick(item) } } companion object { @@ -126,13 +116,8 @@ class ArtistViewHolder private constructor(private val binding: ItemParentBindin R.string.fmt_two, binding.context.getPlural(R.plurals.fmt_album_count, item.albums.size), binding.context.getPlural(R.plurals.fmt_song_count, item.songs.size)) - binding.root.apply { - setOnClickListener { listener.onItemClick(item) } - setOnLongClickListener { view -> - listener.onOpenMenu(item, view) - true - } - } + binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) } + binding.root.setOnClickListener { listener.onItemClick(item) } } companion object { @@ -169,13 +154,8 @@ private constructor( binding.parentName.text = item.resolveName(binding.context) binding.parentInfo.text = binding.context.getPlural(R.plurals.fmt_song_count, item.songs.size) - binding.root.apply { - setOnClickListener { listener.onItemClick(item) } - setOnLongClickListener { view -> - listener.onOpenMenu(item, view) - true - } - } + binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) } + binding.root.setOnClickListener { listener.onItemClick(item) } } companion object { 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 bc34a3071..50e604d7c 100644 --- a/app/src/main/res/layout-h600dp/fragment_playback_panel.xml +++ b/app/src/main/res/layout-h600dp/fragment_playback_panel.xml @@ -68,13 +68,12 @@ style="@style/Widget.Auxio.Button.Icon.Small" android:layout_width="wrap_content" android:layout_height="wrap_content" - app:icon="@drawable/ic_more_24" android:layout_marginEnd="@dimen/spacing_mid_medium" + app:icon="@drawable/ic_more_24" app:layout_constraintBottom_toBottomOf="@+id/playback_album" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/playback_song" /> - @@ -44,10 +44,10 @@ style="@style/Widget.Auxio.TextView.Secondary" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/spacing_large" - android:layout_marginEnd="@dimen/spacing_large" + android:layout_marginStart="@dimen/spacing_medium" + android:layout_marginEnd="@dimen/spacing_mid_medium" app:layout_constraintBottom_toTopOf="@+id/playback_album" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toStartOf="@+id/playback_song_menu" app:layout_constraintStart_toStartOf="parent" tools:text="Artist Name" /> @@ -56,13 +56,24 @@ style="@style/Widget.Auxio.TextView.Secondary" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/spacing_large" - android:layout_marginEnd="@dimen/spacing_large" + android:layout_marginStart="@dimen/spacing_medium" + android:layout_marginEnd="@dimen/spacing_mid_medium" app:layout_constraintBottom_toTopOf="@+id/playback_seek_bar" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toStartOf="@+id/playback_song_menu" app:layout_constraintStart_toStartOf="parent" tools:text="Album Name" /> +