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)
|
super.onBindingCreated(binding, savedInstanceState)
|
||||||
|
|
||||||
// --- UI SETUP ---
|
// --- UI SETUP ---
|
||||||
|
binding.menuName.isSelected = true
|
||||||
|
binding.menuInfo.isSelected = true
|
||||||
binding.menuOptionRecycler.apply {
|
binding.menuOptionRecycler.apply {
|
||||||
adapter = menuAdapter
|
adapter = menuAdapter
|
||||||
itemAnimator = null
|
itemAnimator = null
|
||||||
|
@ -75,6 +77,8 @@ abstract class MenuDialogFragment<T : Music> :
|
||||||
|
|
||||||
override fun onDestroyBinding(binding: DialogMenuBinding) {
|
override fun onDestroyBinding(binding: DialogMenuBinding) {
|
||||||
super.onDestroyBinding(binding)
|
super.onDestroyBinding(binding)
|
||||||
|
binding.menuName.isSelected = false
|
||||||
|
binding.menuInfo.isSelected = false
|
||||||
binding.menuOptionRecycler.adapter = null
|
binding.menuOptionRecycler.adapter = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,6 +91,7 @@ abstract class MenuDialogFragment<T : Music> :
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun onClick(item: MenuItem, viewHolder: RecyclerView.ViewHolder) {
|
final override fun onClick(item: MenuItem, viewHolder: RecyclerView.ViewHolder) {
|
||||||
|
findNavController().navigateUp()
|
||||||
@Suppress("UNCHECKED_CAST") onClick(menuModel.currentMusic.value as T, item.itemId)
|
@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.Album
|
||||||
import org.oxycblt.auxio.music.Artist
|
import org.oxycblt.auxio.music.Artist
|
||||||
import org.oxycblt.auxio.music.Genre
|
import org.oxycblt.auxio.music.Genre
|
||||||
|
import org.oxycblt.auxio.music.Music
|
||||||
import org.oxycblt.auxio.music.Playlist
|
import org.oxycblt.auxio.music.Playlist
|
||||||
import org.oxycblt.auxio.music.Song
|
import org.oxycblt.auxio.music.Song
|
||||||
import org.oxycblt.auxio.music.resolveNames
|
import org.oxycblt.auxio.music.resolveNames
|
||||||
|
@ -36,13 +37,15 @@ class SongMenuDialogFragment : MenuDialogFragment<Song>() {
|
||||||
override val menuModel: MenuViewModel by viewModels()
|
override val menuModel: MenuViewModel by viewModels()
|
||||||
private val args: SongMenuDialogFragmentArgs by navArgs()
|
private val args: SongMenuDialogFragmentArgs by navArgs()
|
||||||
|
|
||||||
override val menuRes = args.menuRes
|
override val menuRes: Int
|
||||||
override val uid = args.songUid
|
get() = args.menuRes
|
||||||
|
override val uid: Music.UID
|
||||||
|
get() = args.songUid
|
||||||
|
|
||||||
override fun updateMusic(binding: DialogMenuBinding, music: Song) {
|
override fun updateMusic(binding: DialogMenuBinding, music: Song) {
|
||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
binding.menuCover.bind(music)
|
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.menuName.text = music.name.resolve(context)
|
||||||
binding.menuInfo.text = music.artists.resolveNames(context)
|
binding.menuInfo.text = music.artists.resolveNames(context)
|
||||||
}
|
}
|
||||||
|
@ -55,13 +58,15 @@ class AlbumMenuDialogFragment : MenuDialogFragment<Album>() {
|
||||||
override val menuModel: MenuViewModel by viewModels()
|
override val menuModel: MenuViewModel by viewModels()
|
||||||
private val args: AlbumMenuDialogFragmentArgs by navArgs()
|
private val args: AlbumMenuDialogFragmentArgs by navArgs()
|
||||||
|
|
||||||
override val menuRes = args.menuRes
|
override val menuRes: Int
|
||||||
override val uid = args.albumUid
|
get() = args.menuRes
|
||||||
|
override val uid: Music.UID
|
||||||
|
get() = args.albumUid
|
||||||
|
|
||||||
override fun updateMusic(binding: DialogMenuBinding, music: Album) {
|
override fun updateMusic(binding: DialogMenuBinding, music: Album) {
|
||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
binding.menuCover.bind(music)
|
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.menuName.text = music.name.resolve(context)
|
||||||
binding.menuInfo.text = music.artists.resolveNames(context)
|
binding.menuInfo.text = music.artists.resolveNames(context)
|
||||||
}
|
}
|
||||||
|
@ -74,13 +79,15 @@ class ArtistMenuDialogFragment : MenuDialogFragment<Artist>() {
|
||||||
override val menuModel: MenuViewModel by viewModels()
|
override val menuModel: MenuViewModel by viewModels()
|
||||||
private val args: ArtistMenuDialogFragmentArgs by navArgs()
|
private val args: ArtistMenuDialogFragmentArgs by navArgs()
|
||||||
|
|
||||||
override val menuRes = args.menuRes
|
override val menuRes: Int
|
||||||
override val uid = args.artistUid
|
get() = args.menuRes
|
||||||
|
override val uid: Music.UID
|
||||||
|
get() = args.artistUid
|
||||||
|
|
||||||
override fun updateMusic(binding: DialogMenuBinding, music: Artist) {
|
override fun updateMusic(binding: DialogMenuBinding, music: Artist) {
|
||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
binding.menuCover.bind(music)
|
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.menuName.text = music.name.resolve(context)
|
||||||
binding.menuInfo.text =
|
binding.menuInfo.text =
|
||||||
getString(
|
getString(
|
||||||
|
@ -101,13 +108,15 @@ class GenreMenuDialogFragment : MenuDialogFragment<Genre>() {
|
||||||
override val menuModel: MenuViewModel by viewModels()
|
override val menuModel: MenuViewModel by viewModels()
|
||||||
private val args: GenreMenuDialogFragmentArgs by navArgs()
|
private val args: GenreMenuDialogFragmentArgs by navArgs()
|
||||||
|
|
||||||
override val menuRes = args.menuRes
|
override val menuRes: Int
|
||||||
override val uid = args.genreUid
|
get() = args.menuRes
|
||||||
|
override val uid: Music.UID
|
||||||
|
get() = args.genreUid
|
||||||
|
|
||||||
override fun updateMusic(binding: DialogMenuBinding, music: Genre) {
|
override fun updateMusic(binding: DialogMenuBinding, music: Genre) {
|
||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
binding.menuCover.bind(music)
|
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.menuName.text = music.name.resolve(context)
|
||||||
binding.menuInfo.text =
|
binding.menuInfo.text =
|
||||||
getString(
|
getString(
|
||||||
|
@ -124,13 +133,15 @@ class PlaylistMenuDialogFragment : MenuDialogFragment<Playlist>() {
|
||||||
override val menuModel: MenuViewModel by viewModels()
|
override val menuModel: MenuViewModel by viewModels()
|
||||||
private val args: PlaylistMenuDialogFragmentArgs by navArgs()
|
private val args: PlaylistMenuDialogFragmentArgs by navArgs()
|
||||||
|
|
||||||
override val menuRes = args.menuRes
|
override val menuRes: Int
|
||||||
override val uid = args.playlistUid
|
get() = args.menuRes
|
||||||
|
override val uid: Music.UID
|
||||||
|
get() = args.playlistUid
|
||||||
|
|
||||||
override fun updateMusic(binding: DialogMenuBinding, music: Playlist) {
|
override fun updateMusic(binding: DialogMenuBinding, music: Playlist) {
|
||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
binding.menuCover.bind(music)
|
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.menuName.text = music.name.resolve(context)
|
||||||
binding.menuInfo.text = context.getPlural(R.plurals.fmt_song_count, music.songs.size)
|
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)
|
MenuOptionViewHolder.from(parent)
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: MenuOptionViewHolder, position: Int) {
|
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) :
|
class MenuOptionViewHolder private constructor(private val binding: ItemMenuOptionBinding) :
|
||||||
DialogRecyclerView.ViewHolder(binding.root) {
|
DialogRecyclerView.ViewHolder(binding.root) {
|
||||||
fun bind(item: MenuItem) {
|
fun bind(item: MenuItem, listener: ClickableListListener<MenuItem>) {
|
||||||
|
listener.bind(item, this)
|
||||||
binding.title.text = item.title
|
binding.title.text = item.title
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
<!-- Size Namespace | Width & Heights for UI elements -->
|
<!-- Size Namespace | Width & Heights for UI elements -->
|
||||||
<dimen name="size_cover_compact">48dp</dimen>
|
<dimen name="size_cover_compact">48dp</dimen>
|
||||||
<dimen name="size_cover_medium">56dp</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_large">128dp</dimen>
|
||||||
<dimen name="size_cover_mid_huge">192dp</dimen>
|
<dimen name="size_cover_mid_huge">192dp</dimen>
|
||||||
<dimen name="size_cover_huge">256dp</dimen>
|
<dimen name="size_cover_huge">256dp</dimen>
|
||||||
|
|
|
@ -65,12 +65,6 @@
|
||||||
<item name="sizing">medium</item>
|
<item name="sizing">medium</item>
|
||||||
</style>
|
</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="">
|
<style name="Widget.Auxio.Image.Large" parent="">
|
||||||
<item name="android:layout_width">@dimen/size_cover_large</item>
|
<item name="android:layout_width">@dimen/size_cover_large</item>
|
||||||
<item name="android:layout_height">@dimen/size_cover_large</item>
|
<item name="android:layout_height">@dimen/size_cover_large</item>
|
||||||
|
|
Loading…
Reference in a new issue