From 0cef51fa970a7643eb26d8e8a25fc9e413711919 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sat, 6 Aug 2022 14:53:06 -0600 Subject: [PATCH] detail: add item type Add an item type indicator to the top of the detail header. This is primarily for release type functionality, but also makes it more clear the item one is looking at. --- .../detail/recycler/AlbumDetailAdapter.kt | 15 ++++----------- .../detail/recycler/ArtistDetailAdapter.kt | 1 + .../detail/recycler/GenreDetailAdapter.kt | 1 + app/src/main/res/layout-h600dp/item_detail.xml | 17 ++++++++++++++--- app/src/main/res/layout-land/item_detail.xml | 17 +++++++++++++++-- .../main/res/layout-sw600dp/item_detail.xml | 17 +++++++++++++++-- .../main/res/layout-sw840dp/item_detail.xml | 18 +++++++++++++++--- app/src/main/res/layout/item_detail.xml | 18 +++++++++++++++--- app/src/main/res/layout/view_seek_bar.xml | 4 ++-- app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/typography.xml | 12 ++++++------ 11 files changed, 89 insertions(+), 32 deletions(-) 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 f602aa2aa..b3fd0bf68 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 @@ -115,6 +115,9 @@ private class AlbumDetailViewHolder private constructor(private val binding: Ite override fun bind(item: Album, listener: AlbumDetailAdapter.Listener) { binding.detailCover.bind(item) + binding.detailType?.text = + binding.context.getString(item.releaseType?.stringRes ?: R.string.lbl_album) + binding.detailName.text = item.resolveName(binding.context) binding.detailSubhead.apply { @@ -131,17 +134,7 @@ private class AlbumDetailViewHolder private constructor(private val binding: Ite val duration = item.durationSecs.formatDuration(true) - text = - if (item.releaseType != null) { - context.getString( - R.string.fmt_four, - context.getString(item.releaseType.stringRes), - date, - songCount, - duration) - } else { - context.getString(R.string.fmt_three, date, songCount, duration) - } + text = context.getString(R.string.fmt_three, date, songCount, duration) } binding.detailPlayButton.setOnClickListener { listener.onPlayParent() } 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 903d9b830..b31b645ff 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 @@ -123,6 +123,7 @@ private class ArtistDetailViewHolder private constructor(private val binding: It override fun bind(item: Artist, listener: DetailAdapter.Listener) { binding.detailCover.bind(item) + binding.detailType?.text = binding.context.getString(R.string.lbl_artist) binding.detailName.text = item.resolveName(binding.context) // Get the genre that corresponds to the most songs in this artist, which would be 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 9a570e4fa..9db6b8f14 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 @@ -104,6 +104,7 @@ private class GenreDetailViewHolder private constructor(private val binding: Ite BindingViewHolder(binding.root) { override fun bind(item: Genre, listener: DetailAdapter.Listener) { binding.detailCover.bind(item) + binding.detailType?.text = binding.context.getString(R.string.lbl_genre) binding.detailName.text = item.resolveName(binding.context) binding.detailSubhead.text = binding.context.getPlural(R.plurals.fmt_song_count, item.songs.size) diff --git a/app/src/main/res/layout-h600dp/item_detail.xml b/app/src/main/res/layout-h600dp/item_detail.xml index 1bfcba6b4..54b914ab0 100644 --- a/app/src/main/res/layout-h600dp/item_detail.xml +++ b/app/src/main/res/layout-h600dp/item_detail.xml @@ -13,18 +13,29 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="ContentDescription" - tools:staticIcon="@drawable/ic_song_48" /> + tools:staticIcon="@drawable/ic_song_24" /> + + + tools:staticIcon="@drawable/ic_song_24" /> + + diff --git a/app/src/main/res/layout-sw600dp/item_detail.xml b/app/src/main/res/layout-sw600dp/item_detail.xml index 71d2d33a8..d13f26f66 100644 --- a/app/src/main/res/layout-sw600dp/item_detail.xml +++ b/app/src/main/res/layout-sw600dp/item_detail.xml @@ -14,7 +14,20 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="ContentDescription" - tools:staticIcon="@drawable/ic_song_48" /> + tools:staticIcon="@drawable/ic_song_24" /> + + diff --git a/app/src/main/res/layout-sw840dp/item_detail.xml b/app/src/main/res/layout-sw840dp/item_detail.xml index 32ad3b5f3..c81927e5f 100644 --- a/app/src/main/res/layout-sw840dp/item_detail.xml +++ b/app/src/main/res/layout-sw840dp/item_detail.xml @@ -12,7 +12,20 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="ContentDescription" - tools:staticIcon="@drawable/ic_song_48" /> + tools:staticIcon="@drawable/ic_song_24" /> + + - + tools:staticIcon="@drawable/ic_song_24" /> + + +