list: clean up menu impl
Clean up the some minor mistakes in the new menu dialog implementation.
This commit is contained in:
parent
db2e9e12f0
commit
0d896c04e3
5 changed files with 34 additions and 24 deletions
|
@ -58,6 +58,8 @@ abstract class MenuDialogFragment<T : Music> :
|
|||
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<T : Music> :
|
|||
|
||||
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<T : Music> :
|
|||
}
|
||||
|
||||
final override fun onClick(item: MenuItem, viewHolder: RecyclerView.ViewHolder) {
|
||||
findNavController().navigateUp()
|
||||
@Suppress("UNCHECKED_CAST") onClick(menuModel.currentMusic.value as T, item.itemId)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<Song>() {
|
|||
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<Album>() {
|
|||
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<Artist>() {
|
|||
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<Genre>() {
|
|||
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<Playlist>() {
|
|||
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)
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ class MenuOptionAdapter(private val listener: ClickableListListener<MenuItem>) :
|
|||
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<MenuItem>) :
|
|||
*/
|
||||
class MenuOptionViewHolder private constructor(private val binding: ItemMenuOptionBinding) :
|
||||
DialogRecyclerView.ViewHolder(binding.root) {
|
||||
fun bind(item: MenuItem) {
|
||||
fun bind(item: MenuItem, listener: ClickableListListener<MenuItem>) {
|
||||
listener.bind(item, this)
|
||||
binding.title.text = item.title
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
<!-- Size Namespace | Width & Heights for UI elements -->
|
||||
<dimen name="size_cover_compact">48dp</dimen>
|
||||
<dimen name="size_cover_medium">56dp</dimen>
|
||||
<dimen name="size_cover_mid_large">92dp</dimen>
|
||||
<dimen name="size_cover_large">128dp</dimen>
|
||||
<dimen name="size_cover_mid_huge">192dp</dimen>
|
||||
<dimen name="size_cover_huge">256dp</dimen>
|
||||
|
|
|
@ -65,12 +65,6 @@
|
|||
<item name="sizing">medium</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.Image.MidLarge" parent="">
|
||||
<item name="android:layout_width">@dimen/size_cover_mid_large</item>
|
||||
<item name="android:layout_height">@dimen/size_cover_mid_large</item>
|
||||
<item name="sizing">medium</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.Image.Large" parent="">
|
||||
<item name="android:layout_width">@dimen/size_cover_large</item>
|
||||
<item name="android:layout_height">@dimen/size_cover_large</item>
|
||||
|
|
Loading…
Reference in a new issue