From e50bc80a0bee8e463ec12649edc9d8ffdff007e9 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Sun, 19 Mar 2023 13:14:53 -0600 Subject: [PATCH] music: handle compilation flag tags Handle COMPILATION and ITUNESCOMPILATION flags, if present. Just map these to Various Artists and a compilation release type. Resolves #373. --- CHANGELOG.md | 1 + .../detail/header/AlbumDetailHeaderAdapter.kt | 1 + .../detail/header/ArtistDetailHeaderAdapter.kt | 1 + .../auxio/detail/header/DetailHeaderAdapter.kt | 2 ++ .../detail/header/GenreDetailHeaderAdapter.kt | 1 + .../auxio/list/adapter/FlexibleListAdapter.kt | 7 ++----- .../oxycblt/auxio/music/metadata/TagWorker.kt | 17 +++++++++++++++++ app/src/main/res/layout/dialog_pre_amp.xml | 4 ++-- app/src/main/res/layout/item_header.xml | 1 + app/src/main/res/layout/item_sort_header.xml | 1 + app/src/main/res/values/styles_ui.xml | 2 +- 11 files changed, 30 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa9168f3f..50c02470d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Accept `REPLAYGAIN_*` adjustment information on OPUS files alongside `R128_*` adjustments. - List updates are now consistent across the app +- Fixed jarring header update in detail view - Search view now trims search queries - Audio effect (equalizer) session is now broadcast when playing/pausing rather than on start/stop. diff --git a/app/src/main/java/org/oxycblt/auxio/detail/header/AlbumDetailHeaderAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/header/AlbumDetailHeaderAdapter.kt index 423eeffc4..07a552c55 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/header/AlbumDetailHeaderAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/header/AlbumDetailHeaderAdapter.kt @@ -32,6 +32,7 @@ import org.oxycblt.auxio.util.inflater /** * A [DetailHeaderAdapter] that shows [Album] information. + * * @author Alexander Capehart (OxygenCobalt) */ class AlbumDetailHeaderAdapter(private val listener: Listener) : diff --git a/app/src/main/java/org/oxycblt/auxio/detail/header/ArtistDetailHeaderAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/header/ArtistDetailHeaderAdapter.kt index 6b6f3cc2d..1268f7caf 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/header/ArtistDetailHeaderAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/header/ArtistDetailHeaderAdapter.kt @@ -32,6 +32,7 @@ import org.oxycblt.auxio.util.inflater /** * A [DetailHeaderAdapter] that shows [Artist] information. + * * @author Alexander Capehart (OxygenCobalt) */ class ArtistDetailHeaderAdapter(private val listener: Listener) : diff --git a/app/src/main/java/org/oxycblt/auxio/detail/header/DetailHeaderAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/header/DetailHeaderAdapter.kt index 5789b66cd..541ed30d9 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/header/DetailHeaderAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/header/DetailHeaderAdapter.kt @@ -35,6 +35,7 @@ abstract class DetailHeaderAdapter( diffCallback: DiffUtil.ItemCallback ) : RecyclerView.Adapter() { - @Suppress("LeakingThis") - private val differ = FlexibleListDiffer(this, diffCallback) + @Suppress("LeakingThis") private val differ = FlexibleListDiffer(this, diffCallback) final override fun getItemCount() = differ.currentList.size /** The current list stored by the adapter's differ instance. */ val currentList: List @@ -55,8 +53,7 @@ abstract class FlexibleListAdapter( newData: List, instructions: UpdateInstructions?, callback: (() -> Unit)? = null - ) = - differ.update(newData, instructions, callback) + ) = differ.update(newData, instructions, callback) } /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/metadata/TagWorker.kt b/app/src/main/java/org/oxycblt/auxio/music/metadata/TagWorker.kt index e991b870b..3391da98a 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/metadata/TagWorker.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/metadata/TagWorker.kt @@ -157,6 +157,12 @@ private constructor(private val rawSong: RawSong, private val future: Future @@ -54,7 +54,7 @@ android:layout_marginStart="@dimen/spacing_large" android:layout_marginTop="@dimen/spacing_medium" android:text="@string/set_pre_amp_without" - android:textAppearance="@style/TextAppearance.Auxio.TitleMediumLowEmphasis" + android:textAppearance="@style/TextAppearance.Auxio.TitleMedium" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/with_tags_slider" /> diff --git a/app/src/main/res/layout/item_header.xml b/app/src/main/res/layout/item_header.xml index c623a41ee..4adf76f0c 100644 --- a/app/src/main/res/layout/item_header.xml +++ b/app/src/main/res/layout/item_header.xml @@ -5,4 +5,5 @@ style="@style/Widget.Auxio.TextView.Header" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="?attr/colorSurface" tools:text="Songs" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_sort_header.xml b/app/src/main/res/layout/item_sort_header.xml index b9b2579bb..7f2deab47 100644 --- a/app/src/main/res/layout/item_sort_header.xml +++ b/app/src/main/res/layout/item_sort_header.xml @@ -4,6 +4,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" + android:background="?attr/colorSurface" android:orientation="horizontal" android:layout_height="wrap_content"> diff --git a/app/src/main/res/values/styles_ui.xml b/app/src/main/res/values/styles_ui.xml index d6f9e5d21..6e0ee0001 100644 --- a/app/src/main/res/values/styles_ui.xml +++ b/app/src/main/res/values/styles_ui.xml @@ -113,7 +113,7 @@