From 34367b3baed8c4123edc945cca2a395bcedaea93 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sat, 4 Sep 2021 19:31:28 -0600 Subject: [PATCH] ui: fix material issues Migrate dividers over to material theming alongside making detail items use a colorStateList instead of manually indexing for text colors. --- .../detail/adapters/AlbumDetailAdapter.kt | 17 ++--------------- .../detail/adapters/ArtistDetailAdapter.kt | 19 ++----------------- .../detail/adapters/GenreDetailAdapter.kt | 11 +---------- ...or_popup_overlay.xml => overlay_popup.xml} | 0 app/src/main/res/color/overlay_divider.xml | 4 ++++ ...or_popup_overlay.xml => overlay_popup.xml} | 0 ...or_selection.xml => overlay_selection.xml} | 0 ...ccent_active.xml => sel_accent_active.xml} | 0 .../main/res/color/sel_accented_primary.xml | 6 ++++++ app/src/main/res/color/sel_accented_track.xml | 6 ++++++ .../main/res/drawable/ui_circle_ripple.xml | 2 +- .../main/res/drawable/ui_header_dividers.xml | 2 +- app/src/main/res/drawable/ui_popup_bg.xml | 2 +- .../res/layout-land/fragment_playback.xml | 2 +- .../layout-xlarge-land/fragment_playback.xml | 2 +- .../res/layout-xlarge/fragment_playback.xml | 2 +- app/src/main/res/layout/fragment_about.xml | 2 +- app/src/main/res/layout/fragment_playback.xml | 2 +- .../main/res/layout/item_action_header.xml | 4 ++-- app/src/main/res/layout/item_album_song.xml | 3 ++- app/src/main/res/layout/item_artist_album.xml | 1 + app/src/main/res/layout/item_artist_song.xml | 1 + app/src/main/res/layout/item_genre_song.xml | 1 + app/src/main/res/values-night/colors.xml | 2 -- app/src/main/res/values/colors.xml | 2 -- app/src/main/res/values/styles_android.xml | 4 ++-- app/src/main/res/values/styles_core.xml | 4 ++-- app/src/main/res/values/styles_ui.xml | 2 +- 28 files changed, 41 insertions(+), 62 deletions(-) rename app/src/main/res/color-night/{color_popup_overlay.xml => overlay_popup.xml} (100%) create mode 100644 app/src/main/res/color/overlay_divider.xml rename app/src/main/res/color/{color_popup_overlay.xml => overlay_popup.xml} (100%) rename app/src/main/res/color/{color_selection.xml => overlay_selection.xml} (100%) rename app/src/main/res/color/{color_accent_active.xml => sel_accent_active.xml} (100%) create mode 100644 app/src/main/res/color/sel_accented_primary.xml create mode 100644 app/src/main/res/color/sel_accented_track.xml diff --git a/app/src/main/java/org/oxycblt/auxio/detail/adapters/AlbumDetailAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/adapters/AlbumDetailAdapter.kt index c5263c2c3..e9fb1c9dd 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/adapters/AlbumDetailAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/adapters/AlbumDetailAdapter.kt @@ -23,7 +23,6 @@ import android.view.ViewGroup import androidx.lifecycle.LifecycleOwner import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import org.oxycblt.auxio.accent.Accent import org.oxycblt.auxio.databinding.ItemAlbumHeaderBinding import org.oxycblt.auxio.databinding.ItemAlbumSongBinding import org.oxycblt.auxio.detail.DetailViewModel @@ -35,7 +34,6 @@ import org.oxycblt.auxio.ui.BaseViewHolder import org.oxycblt.auxio.ui.DiffCallback import org.oxycblt.auxio.util.disable import org.oxycblt.auxio.util.inflater -import org.oxycblt.auxio.util.setTextColorResource /** * An adapter for displaying the details and [Song]s of an [Album] @@ -48,7 +46,6 @@ class AlbumDetailAdapter( private val doOnClick: (data: Song) -> Unit, private val doOnLongClick: (view: View, data: Song) -> Unit ) : ListAdapter(DiffCallback()) { - private var currentSong: Song? = null private var lastHolder: Highlightable? = null @@ -145,9 +142,6 @@ class AlbumDetailAdapter( inner class AlbumSongViewHolder( private val binding: ItemAlbumSongBinding, ) : BaseViewHolder(binding, doOnClick, doOnLongClick), Highlightable { - private val normalTextColor = binding.songName.currentTextColor - private val inactiveTextColor = binding.songTrack.currentTextColor - override fun onBind(data: Song) { binding.song = data @@ -155,15 +149,8 @@ class AlbumDetailAdapter( } override fun setHighlighted(isHighlighted: Boolean) { - if (isHighlighted) { - val accent = Accent.get() - - binding.songName.setTextColorResource(accent.color) - binding.songTrack.setTextColorResource(accent.color) - } else { - binding.songName.setTextColor(normalTextColor) - binding.songTrack.setTextColor(inactiveTextColor) - } + binding.songName.isActivated = isHighlighted + binding.songTrack.isActivated = isHighlighted } } diff --git a/app/src/main/java/org/oxycblt/auxio/detail/adapters/ArtistDetailAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/adapters/ArtistDetailAdapter.kt index 31beca5b8..0906d8a5c 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/adapters/ArtistDetailAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/adapters/ArtistDetailAdapter.kt @@ -22,7 +22,6 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import org.oxycblt.auxio.accent.Accent import org.oxycblt.auxio.databinding.ItemActionHeaderBinding import org.oxycblt.auxio.databinding.ItemArtistAlbumBinding import org.oxycblt.auxio.databinding.ItemArtistHeaderBinding @@ -38,8 +37,6 @@ import org.oxycblt.auxio.ui.BaseViewHolder import org.oxycblt.auxio.ui.DiffCallback import org.oxycblt.auxio.util.disable import org.oxycblt.auxio.util.inflater -import org.oxycblt.auxio.util.logD -import org.oxycblt.auxio.util.setTextColorResource /** * An adapter for displaying the [Album]s and [Song]s of an artist. @@ -195,8 +192,6 @@ class ArtistDetailAdapter( inner class ArtistAlbumViewHolder( private val binding: ItemArtistAlbumBinding, ) : BaseViewHolder(binding, doOnClick, doOnLongClick), Highlightable { - private val normalTextColor = binding.albumName.currentTextColor - override fun onBind(data: Album) { binding.album = data @@ -204,13 +199,7 @@ class ArtistDetailAdapter( } override fun setHighlighted(isHighlighted: Boolean) { - logD(isHighlighted) - - if (isHighlighted) { - binding.albumName.setTextColorResource(Accent.get().color) - } else { - binding.albumName.setTextColor(normalTextColor) - } + binding.albumName.isActivated = isHighlighted } } @@ -251,11 +240,7 @@ class ArtistDetailAdapter( } override fun setHighlighted(isHighlighted: Boolean) { - if (isHighlighted) { - binding.songName.setTextColorResource(Accent.get().color) - } else { - binding.songName.setTextColor(normalTextColor) - } + binding.songName.isActivated = isHighlighted } } diff --git a/app/src/main/java/org/oxycblt/auxio/detail/adapters/GenreDetailAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/adapters/GenreDetailAdapter.kt index 6d0fb279d..831256bd2 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/adapters/GenreDetailAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/adapters/GenreDetailAdapter.kt @@ -23,7 +23,6 @@ import android.view.ViewGroup import androidx.lifecycle.LifecycleOwner import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import org.oxycblt.auxio.accent.Accent import org.oxycblt.auxio.databinding.ItemGenreHeaderBinding import org.oxycblt.auxio.databinding.ItemGenreSongBinding import org.oxycblt.auxio.detail.DetailViewModel @@ -35,7 +34,6 @@ import org.oxycblt.auxio.ui.BaseViewHolder import org.oxycblt.auxio.ui.DiffCallback import org.oxycblt.auxio.util.disable import org.oxycblt.auxio.util.inflater -import org.oxycblt.auxio.util.setTextColorResource /** * An adapter for displaying the [Song]s of a genre. @@ -48,7 +46,6 @@ class GenreDetailAdapter( private val doOnClick: (data: Song) -> Unit, private val doOnLongClick: (view: View, data: Song) -> Unit ) : ListAdapter(DiffCallback()) { - private var currentSong: Song? = null private var lastHolder: Highlightable? = null @@ -145,8 +142,6 @@ class GenreDetailAdapter( inner class GenreSongViewHolder( private val binding: ItemGenreSongBinding, ) : BaseViewHolder(binding, doOnClick, doOnLongClick), Highlightable { - private val normalTextColor = binding.songName.currentTextColor - override fun onBind(data: Song) { binding.song = data @@ -155,11 +150,7 @@ class GenreDetailAdapter( } override fun setHighlighted(isHighlighted: Boolean) { - if (isHighlighted) { - binding.songName.setTextColorResource(Accent.get().color) - } else { - binding.songName.setTextColor(normalTextColor) - } + binding.songName.isActivated = isHighlighted } } diff --git a/app/src/main/res/color-night/color_popup_overlay.xml b/app/src/main/res/color-night/overlay_popup.xml similarity index 100% rename from app/src/main/res/color-night/color_popup_overlay.xml rename to app/src/main/res/color-night/overlay_popup.xml diff --git a/app/src/main/res/color/overlay_divider.xml b/app/src/main/res/color/overlay_divider.xml new file mode 100644 index 000000000..4a39294e2 --- /dev/null +++ b/app/src/main/res/color/overlay_divider.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/color/color_popup_overlay.xml b/app/src/main/res/color/overlay_popup.xml similarity index 100% rename from app/src/main/res/color/color_popup_overlay.xml rename to app/src/main/res/color/overlay_popup.xml diff --git a/app/src/main/res/color/color_selection.xml b/app/src/main/res/color/overlay_selection.xml similarity index 100% rename from app/src/main/res/color/color_selection.xml rename to app/src/main/res/color/overlay_selection.xml diff --git a/app/src/main/res/color/color_accent_active.xml b/app/src/main/res/color/sel_accent_active.xml similarity index 100% rename from app/src/main/res/color/color_accent_active.xml rename to app/src/main/res/color/sel_accent_active.xml diff --git a/app/src/main/res/color/sel_accented_primary.xml b/app/src/main/res/color/sel_accented_primary.xml new file mode 100644 index 000000000..7b1681d96 --- /dev/null +++ b/app/src/main/res/color/sel_accented_primary.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/sel_accented_track.xml b/app/src/main/res/color/sel_accented_track.xml new file mode 100644 index 000000000..72e833a26 --- /dev/null +++ b/app/src/main/res/color/sel_accented_track.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ui_circle_ripple.xml b/app/src/main/res/drawable/ui_circle_ripple.xml index 8875a4317..9da7508a5 100644 --- a/app/src/main/res/drawable/ui_circle_ripple.xml +++ b/app/src/main/res/drawable/ui_circle_ripple.xml @@ -3,7 +3,7 @@ android:color="?attr/colorControlHighlight"> + android:tint="@color/sel_accent_active"> diff --git a/app/src/main/res/drawable/ui_header_dividers.xml b/app/src/main/res/drawable/ui_header_dividers.xml index 16ff1730b..b0db278e1 100644 --- a/app/src/main/res/drawable/ui_header_dividers.xml +++ b/app/src/main/res/drawable/ui_header_dividers.xml @@ -7,7 +7,7 @@ + android:color="@color/overlay_divider" /> diff --git a/app/src/main/res/drawable/ui_popup_bg.xml b/app/src/main/res/drawable/ui_popup_bg.xml index 51130ed59..1f789eeb4 100644 --- a/app/src/main/res/drawable/ui_popup_bg.xml +++ b/app/src/main/res/drawable/ui_popup_bg.xml @@ -7,7 +7,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_playback.xml b/app/src/main/res/layout-land/fragment_playback.xml index 0fef899ec..2ae75d5f2 100644 --- a/app/src/main/res/layout-land/fragment_playback.xml +++ b/app/src/main/res/layout-land/fragment_playback.xml @@ -183,7 +183,7 @@ android:contentDescription="@string/desc_shuffle" android:onClick="@{() -> playbackModel.invertShuffleStatus()}" android:src="@drawable/ic_shuffle" - app:tint="@color/color_accent_active" + app:tint="@color/sel_accent_active" app:layout_constraintBottom_toBottomOf="@+id/playback_skip_next" app:layout_constraintEnd_toEndOf="@+id/playback_song_duration" app:layout_constraintTop_toTopOf="@+id/playback_skip_next" /> diff --git a/app/src/main/res/layout-xlarge-land/fragment_playback.xml b/app/src/main/res/layout-xlarge-land/fragment_playback.xml index a09eec2e3..306c70b98 100644 --- a/app/src/main/res/layout-xlarge-land/fragment_playback.xml +++ b/app/src/main/res/layout-xlarge-land/fragment_playback.xml @@ -184,7 +184,7 @@ android:contentDescription="@string/desc_shuffle" android:onClick="@{() -> playbackModel.invertShuffleStatus()}" android:src="@drawable/ic_shuffle" - app:tint="@color/color_accent_active" + app:tint="@color/sel_accent_active" app:layout_constraintBottom_toBottomOf="@+id/playback_skip_next" app:layout_constraintStart_toEndOf="@+id/playback_skip_next" app:layout_constraintTop_toTopOf="@+id/playback_skip_next" /> diff --git a/app/src/main/res/layout-xlarge/fragment_playback.xml b/app/src/main/res/layout-xlarge/fragment_playback.xml index 1995bc80f..a775ea950 100644 --- a/app/src/main/res/layout-xlarge/fragment_playback.xml +++ b/app/src/main/res/layout-xlarge/fragment_playback.xml @@ -171,7 +171,7 @@ android:contentDescription="@string/desc_shuffle" android:onClick="@{() -> playbackModel.invertShuffleStatus()}" android:src="@drawable/ic_shuffle" - app:tint="@color/color_accent_active" + app:tint="@color/sel_accent_active" app:layout_constraintBottom_toBottomOf="@+id/playback_skip_next" app:layout_constraintStart_toEndOf="@+id/playback_skip_next" app:layout_constraintTop_toTopOf="@+id/playback_skip_next" /> diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index 304d0508d..2dc703d66 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -38,7 +38,7 @@ app:cardBackgroundColor="?attr/colorSurface" app:cardCornerRadius="0dp" app:cardElevation="0dp" - app:strokeColor="@color/divider" + app:strokeColor="@color/overlay_divider" app:strokeWidth="1dp"> diff --git a/app/src/main/res/layout/item_action_header.xml b/app/src/main/res/layout/item_action_header.xml index 276c70917..e3219140c 100644 --- a/app/src/main/res/layout/item_action_header.xml +++ b/app/src/main/res/layout/item_action_header.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" tools:context=".ui.HeaderViewHolder"> + + android:layout_height="wrap_content"> @color/surface_night - #3b3c3f - #686868 #404040 #ffffff #01151515 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 61a319b2f..9ec0a6ef8 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -5,9 +5,7 @@ @android:color/black @color/surface_day - #ababab #202020 - #cbcbcb #c4c4c4 #01fafafa diff --git a/app/src/main/res/values/styles_android.xml b/app/src/main/res/values/styles_android.xml index 70fde3a6e..7918b7c39 100644 --- a/app/src/main/res/values/styles_android.xml +++ b/app/src/main/res/values/styles_android.xml @@ -12,7 +12,7 @@ @@ -31,7 +31,7 @@ diff --git a/app/src/main/res/values/styles_core.xml b/app/src/main/res/values/styles_core.xml index bf8067d51..a033f4b0f 100644 --- a/app/src/main/res/values/styles_core.xml +++ b/app/src/main/res/values/styles_core.xml @@ -18,9 +18,9 @@ ?attr/colorAccent ?attr/colorSurface - + @color/control - @color/color_selection + @color/overlay_selection ?attr/colorAccent diff --git a/app/src/main/res/values/styles_ui.xml b/app/src/main/res/values/styles_ui.xml index 972f33353..d898ed249 100644 --- a/app/src/main/res/values/styles_ui.xml +++ b/app/src/main/res/values/styles_ui.xml @@ -215,7 +215,7 @@