From 0d896c04e3c57da75a718d3d331809f501166c76 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Mon, 3 Jul 2023 16:07:54 -0600 Subject: [PATCH] list: clean up menu impl Clean up the some minor mistakes in the new menu dialog implementation. --- .../auxio/list/menu/MenuDialogFragment.kt | 5 +++ .../auxio/list/menu/MenuDialogFragmentImpl.kt | 41 ++++++++++++------- .../auxio/list/menu/MenuOptionAdapter.kt | 5 ++- app/src/main/res/values/dimens.xml | 1 - app/src/main/res/values/styles_ui.xml | 6 --- 5 files changed, 34 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragment.kt b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragment.kt index 16ede2a8f..1f0317ae8 100644 --- a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragment.kt @@ -58,6 +58,8 @@ abstract class MenuDialogFragment : super.onBindingCreated(binding, savedInstanceState) // --- UI SETUP --- + binding.menuName.isSelected = true + binding.menuInfo.isSelected = true binding.menuOptionRecycler.apply { adapter = menuAdapter itemAnimator = null @@ -75,6 +77,8 @@ abstract class MenuDialogFragment : override fun onDestroyBinding(binding: DialogMenuBinding) { super.onDestroyBinding(binding) + binding.menuName.isSelected = false + binding.menuInfo.isSelected = false binding.menuOptionRecycler.adapter = null } @@ -87,6 +91,7 @@ abstract class MenuDialogFragment : } final override fun onClick(item: MenuItem, viewHolder: RecyclerView.ViewHolder) { + findNavController().navigateUp() @Suppress("UNCHECKED_CAST") onClick(menuModel.currentMusic.value as T, item.itemId) } } diff --git a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragmentImpl.kt b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragmentImpl.kt index 86ee874fe..9c1f8f7cc 100644 --- a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragmentImpl.kt +++ b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuDialogFragmentImpl.kt @@ -26,6 +26,7 @@ import org.oxycblt.auxio.databinding.DialogMenuBinding import org.oxycblt.auxio.music.Album import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.music.Genre +import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.Playlist import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.resolveNames @@ -36,13 +37,15 @@ class SongMenuDialogFragment : MenuDialogFragment() { override val menuModel: MenuViewModel by viewModels() private val args: SongMenuDialogFragmentArgs by navArgs() - override val menuRes = args.menuRes - override val uid = args.songUid + override val menuRes: Int + get() = args.menuRes + override val uid: Music.UID + get() = args.songUid override fun updateMusic(binding: DialogMenuBinding, music: Song) { val context = requireContext() binding.menuCover.bind(music) - binding.menuInfo.text = getString(R.string.lbl_song) + binding.menuType.text = getString(R.string.lbl_song) binding.menuName.text = music.name.resolve(context) binding.menuInfo.text = music.artists.resolveNames(context) } @@ -55,13 +58,15 @@ class AlbumMenuDialogFragment : MenuDialogFragment() { override val menuModel: MenuViewModel by viewModels() private val args: AlbumMenuDialogFragmentArgs by navArgs() - override val menuRes = args.menuRes - override val uid = args.albumUid + override val menuRes: Int + get() = args.menuRes + override val uid: Music.UID + get() = args.albumUid override fun updateMusic(binding: DialogMenuBinding, music: Album) { val context = requireContext() binding.menuCover.bind(music) - binding.menuInfo.text = getString(music.releaseType.stringRes) + binding.menuType.text = getString(music.releaseType.stringRes) binding.menuName.text = music.name.resolve(context) binding.menuInfo.text = music.artists.resolveNames(context) } @@ -74,13 +79,15 @@ class ArtistMenuDialogFragment : MenuDialogFragment() { override val menuModel: MenuViewModel by viewModels() private val args: ArtistMenuDialogFragmentArgs by navArgs() - override val menuRes = args.menuRes - override val uid = args.artistUid + override val menuRes: Int + get() = args.menuRes + override val uid: Music.UID + get() = args.artistUid override fun updateMusic(binding: DialogMenuBinding, music: Artist) { val context = requireContext() binding.menuCover.bind(music) - binding.menuInfo.text = getString(R.string.lbl_artist) + binding.menuType.text = getString(R.string.lbl_artist) binding.menuName.text = music.name.resolve(context) binding.menuInfo.text = getString( @@ -101,13 +108,15 @@ class GenreMenuDialogFragment : MenuDialogFragment() { override val menuModel: MenuViewModel by viewModels() private val args: GenreMenuDialogFragmentArgs by navArgs() - override val menuRes = args.menuRes - override val uid = args.genreUid + override val menuRes: Int + get() = args.menuRes + override val uid: Music.UID + get() = args.genreUid override fun updateMusic(binding: DialogMenuBinding, music: Genre) { val context = requireContext() binding.menuCover.bind(music) - binding.menuInfo.text = getString(R.string.lbl_genre) + binding.menuType.text = getString(R.string.lbl_genre) binding.menuName.text = music.name.resolve(context) binding.menuInfo.text = getString( @@ -124,13 +133,15 @@ class PlaylistMenuDialogFragment : MenuDialogFragment() { override val menuModel: MenuViewModel by viewModels() private val args: PlaylistMenuDialogFragmentArgs by navArgs() - override val menuRes = args.menuRes - override val uid = args.playlistUid + override val menuRes: Int + get() = args.menuRes + override val uid: Music.UID + get() = args.playlistUid override fun updateMusic(binding: DialogMenuBinding, music: Playlist) { val context = requireContext() binding.menuCover.bind(music) - binding.menuInfo.text = getString(R.string.lbl_genre) + binding.menuType.text = getString(R.string.lbl_playlist) binding.menuName.text = music.name.resolve(context) binding.menuInfo.text = context.getPlural(R.plurals.fmt_song_count, music.songs.size) } diff --git a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuOptionAdapter.kt b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuOptionAdapter.kt index e5d7b2a85..e8d13279a 100644 --- a/app/src/main/java/org/oxycblt/auxio/list/menu/MenuOptionAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/list/menu/MenuOptionAdapter.kt @@ -39,7 +39,7 @@ class MenuOptionAdapter(private val listener: ClickableListListener) : MenuOptionViewHolder.from(parent) override fun onBindViewHolder(holder: MenuOptionViewHolder, position: Int) { - holder.bind(getItem(position)) + holder.bind(getItem(position), listener) } } @@ -50,7 +50,8 @@ class MenuOptionAdapter(private val listener: ClickableListListener) : */ class MenuOptionViewHolder private constructor(private val binding: ItemMenuOptionBinding) : DialogRecyclerView.ViewHolder(binding.root) { - fun bind(item: MenuItem) { + fun bind(item: MenuItem, listener: ClickableListListener) { + listener.bind(item, this) binding.title.text = item.title } diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 558ed6e40..064135105 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -12,7 +12,6 @@ 48dp 56dp - 92dp 128dp 192dp 256dp diff --git a/app/src/main/res/values/styles_ui.xml b/app/src/main/res/values/styles_ui.xml index 18ecf8a2f..0f5675812 100644 --- a/app/src/main/res/values/styles_ui.xml +++ b/app/src/main/res/values/styles_ui.xml @@ -65,12 +65,6 @@ medium - -