From 090a1713dd1012bbf0bf0e55943c8ff7d0a821e7 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Thu, 30 Jun 2022 21:09:21 -0600 Subject: [PATCH] ui: rework iconography Completely rework Auxio's iconography based on the new material symbols icon set. This does the following: 1. Switches the sharp + filled icon style to an outlined + round icon style. 2. Removes 32dp icons from everywhere except the playback panel. This does not: 1. Actually handle optical sizes right. This is going to take some more work to make it harmonious with the current UI. 2. Update margins in some places to be harmonious with the new icons. This is also going to take some more work to do properly. --- .../main/java/org/oxycblt/auxio/AuxioApp.kt | 2 +- .../auxio/image/{ui => }/ImageGroup.kt | 5 +- .../auxio/image/{ui => }/StyledImageView.kt | 55 ++++++++++++---- .../oxycblt/auxio/image/ui/StyledDrawable.kt | 66 ------------------- .../org/oxycblt/auxio/music/IndexerService.kt | 2 +- .../auxio/playback/PlaybackPanelFragment.kt | 9 ++- .../auxio/playback/state/RepeatMode.kt | 9 --- .../playback/system/MediaSessionComponent.kt | 2 +- .../playback/system/NotificationComponent.kt | 20 +++--- .../auxio/settings/SettingsListFragment.kt | 8 +-- .../org/oxycblt/auxio/ui/BottomSheetLayout.kt | 11 ++-- .../java/org/oxycblt/auxio/ui/DisplayMode.kt | 16 ++--- .../ui/coordinator/EdgeCoordinatorLayout.kt | 6 +- .../org/oxycblt/auxio/util/FrameworkUtil.kt | 3 + .../java/org/oxycblt/auxio/widgets/Forms.kt | 14 ++-- .../oxycblt/auxio/widgets/WidgetComponent.kt | 4 ++ .../main/res/drawable-v31/ui_widget_panel.xml | 2 +- app/src/main/res/drawable/ic_about.xml | 17 ----- app/src/main/res/drawable/ic_about_24.xml | 11 ++++ app/src/main/res/drawable/ic_accent.xml | 11 ---- app/src/main/res/drawable/ic_accent_24.xml | 11 ++++ app/src/main/res/drawable/ic_album.xml | 11 ---- app/src/main/res/drawable/ic_album_24.xml | 11 ++++ app/src/main/res/drawable/ic_artist.xml | 11 ---- app/src/main/res/drawable/ic_artist_24.xml | 11 ++++ app/src/main/res/drawable/ic_auto.xml | 11 ---- app/src/main/res/drawable/ic_auto_24.xml | 11 ++++ .../{ic_auxio.xml => ic_auxio_24.xml} | 0 app/src/main/res/drawable/ic_back.xml | 10 --- app/src/main/res/drawable/ic_back_24.xml | 10 +++ app/src/main/res/drawable/ic_check.xml | 11 ---- .../drawable/{ic_dark.xml => ic_check_24.xml} | 2 +- app/src/main/res/drawable/ic_close.xml | 11 ---- app/src/main/res/drawable/ic_close_24.xml | 11 ++++ app/src/main/res/drawable/ic_code.xml | 11 ---- app/src/main/res/drawable/ic_code_24.xml | 11 ++++ .../res/drawable/ic_currently_playing_24.xml | 11 ++++ app/src/main/res/drawable/ic_dark_24.xml | 11 ++++ app/src/main/res/drawable/ic_delete.xml | 11 ---- app/src/main/res/drawable/ic_delete_24.xml | 11 ++++ app/src/main/res/drawable/ic_down.xml | 11 ---- app/src/main/res/drawable/ic_down_24.xml | 11 ++++ app/src/main/res/drawable/ic_equalizer.xml | 12 ---- app/src/main/res/drawable/ic_faq.xml | 11 ---- app/src/main/res/drawable/ic_filter.xml | 11 ---- app/src/main/res/drawable/ic_filter_24.xml | 11 ++++ app/src/main/res/drawable/ic_genre.xml | 11 ---- app/src/main/res/drawable/ic_genre_24.xml | 11 ++++ .../{ic_play.xml => ic_handle_24.xml} | 10 +-- app/src/main/res/drawable/ic_help_24.xml | 11 ++++ app/src/main/res/drawable/ic_indexer.xml | 11 ---- app/src/main/res/drawable/ic_indexer_32.xml | 11 ++++ app/src/main/res/drawable/ic_license.xml | 11 ---- app/src/main/res/drawable/ic_license_24.xml | 11 ++++ app/src/main/res/drawable/ic_light.xml | 11 ---- app/src/main/res/drawable/ic_light_24.xml | 11 ++++ app/src/main/res/drawable/ic_pause.xml | 11 ---- .../{ic_handle.xml => ic_pause_24.xml} | 10 +-- app/src/main/res/drawable/ic_pause_32.xml | 11 ++++ app/src/main/res/drawable/ic_play_24.xml | 11 ++++ app/src/main/res/drawable/ic_play_32.xml | 11 ++++ app/src/main/res/drawable/ic_queue.xml | 10 +-- .../res/drawable/ic_remote_default_cover.xml | 16 ++--- .../res/drawable/ic_remote_repeat_off_24.xml | 11 ++++ .../res/drawable/ic_remote_repeat_on_24.xml | 11 ++++ .../res/drawable/ic_remote_repeat_one_24.xml | 11 ++++ .../res/drawable/ic_remote_shuffle_off.xml | 11 ---- ...t_off.xml => ic_remote_shuffle_off_24.xml} | 2 +- .../res/drawable/ic_remote_shuffle_on.xml | 11 ---- ...eat_on.xml => ic_remote_shuffle_on_24.xml} | 2 +- app/src/main/res/drawable/ic_repeat.xml | 11 ---- app/src/main/res/drawable/ic_repeat_24.xml | 11 ++++ app/src/main/res/drawable/ic_repeat_one.xml | 11 ---- .../main/res/drawable/ic_repeat_one_24.xml | 11 ++++ app/src/main/res/drawable/ic_search.xml | 11 ---- app/src/main/res/drawable/ic_search_24.xml | 11 ++++ app/src/main/res/drawable/ic_settings.xml | 11 ---- .../res/drawable/ic_shortcut_shuffle_24.xml | 11 ++++ app/src/main/res/drawable/ic_shuffle.xml | 11 ---- app/src/main/res/drawable/ic_shuffle_24.xml | 11 ++++ .../main/res/drawable/ic_shuffle_shortcut.xml | 10 --- app/src/main/res/drawable/ic_skip_next.xml | 12 ---- app/src/main/res/drawable/ic_skip_next_24.xml | 11 ++++ app/src/main/res/drawable/ic_skip_prev.xml | 12 ---- app/src/main/res/drawable/ic_skip_prev_24.xml | 11 ++++ app/src/main/res/drawable/ic_song.xml | 11 ---- app/src/main/res/drawable/ic_song_24.xml | 11 ++++ app/src/main/res/drawable/ic_sort.xml | 11 ---- app/src/main/res/drawable/ic_sort_24.xml | 11 ++++ app/src/main/res/drawable/ic_time.xml | 11 ---- app/src/main/res/drawable/ic_time_24.xml | 11 ++++ .../main/res/drawable/sel_playing_state.xml | 5 -- .../res/drawable/sel_playing_state_24.xml | 5 ++ app/src/main/res/drawable/ui_widget_panel.xml | 2 +- .../main/res/layout-h600dp/item_detail.xml | 4 +- .../layout-land/fragment_playback_panel.xml | 16 ++--- app/src/main/res/layout-land/item_detail.xml | 4 +- .../fragment_playback_panel.xml | 16 ++--- .../layout-sw600dp/fragment_playback_bar.xml | 8 +-- .../fragment_playback_panel.xml | 16 ++--- .../main/res/layout-sw600dp/item_detail.xml | 4 +- .../main/res/layout-sw840dp/item_detail.xml | 4 +- .../fragment_playback_panel.xml | 16 ++--- app/src/main/res/layout/fragment_about.xml | 20 +++--- app/src/main/res/layout/fragment_home.xml | 2 +- app/src/main/res/layout/fragment_main.xml | 2 +- .../main/res/layout/fragment_playback_bar.xml | 8 +-- .../res/layout/fragment_playback_panel.xml | 16 ++--- app/src/main/res/layout/fragment_queue.xml | 2 +- app/src/main/res/layout/fragment_search.xml | 2 +- app/src/main/res/layout/item_accent.xml | 2 +- app/src/main/res/layout/item_album_song.xml | 6 +- app/src/main/res/layout/item_detail.xml | 4 +- app/src/main/res/layout/item_disc_header.xml | 4 +- app/src/main/res/layout/item_music_dir.xml | 4 +- app/src/main/res/layout/item_parent.xml | 2 +- app/src/main/res/layout/item_queue_song.xml | 8 +-- app/src/main/res/layout/item_song.xml | 4 +- app/src/main/res/layout/item_sort_header.xml | 2 +- app/src/main/res/layout/item_tab.xml | 4 +- app/src/main/res/layout/widget_default.xml | 2 +- app/src/main/res/layout/widget_large.xml | 18 ++--- app/src/main/res/layout/widget_medium.xml | 12 ++-- app/src/main/res/layout/widget_small.xml | 12 ++-- app/src/main/res/layout/widget_thin.xml | 9 ++- app/src/main/res/layout/widget_wide.xml | 18 +++-- app/src/main/res/menu/menu_home.xml | 6 +- app/src/main/res/menu/menu_search.xml | 2 +- app/src/main/res/values-sw600dp/styles_ui.xml | 9 +-- app/src/main/res/values/attrs.xml | 1 + app/src/main/res/values/dimens.xml | 2 +- app/src/main/res/values/settings.xml | 6 +- app/src/main/res/values/styles_android.xml | 2 - app/src/main/res/values/styles_ui.xml | 14 ++-- app/src/main/res/xml/prefs_main.xml | 4 +- 135 files changed, 653 insertions(+), 674 deletions(-) rename app/src/main/java/org/oxycblt/auxio/image/{ui => }/ImageGroup.kt (98%) rename app/src/main/java/org/oxycblt/auxio/image/{ui => }/StyledImageView.kt (73%) delete mode 100644 app/src/main/java/org/oxycblt/auxio/image/ui/StyledDrawable.kt delete mode 100644 app/src/main/res/drawable/ic_about.xml create mode 100644 app/src/main/res/drawable/ic_about_24.xml delete mode 100644 app/src/main/res/drawable/ic_accent.xml create mode 100644 app/src/main/res/drawable/ic_accent_24.xml delete mode 100644 app/src/main/res/drawable/ic_album.xml create mode 100644 app/src/main/res/drawable/ic_album_24.xml delete mode 100644 app/src/main/res/drawable/ic_artist.xml create mode 100644 app/src/main/res/drawable/ic_artist_24.xml delete mode 100644 app/src/main/res/drawable/ic_auto.xml create mode 100644 app/src/main/res/drawable/ic_auto_24.xml rename app/src/main/res/drawable/{ic_auxio.xml => ic_auxio_24.xml} (100%) delete mode 100644 app/src/main/res/drawable/ic_back.xml create mode 100644 app/src/main/res/drawable/ic_back_24.xml delete mode 100644 app/src/main/res/drawable/ic_check.xml rename app/src/main/res/drawable/{ic_dark.xml => ic_check_24.xml} (59%) delete mode 100644 app/src/main/res/drawable/ic_close.xml create mode 100644 app/src/main/res/drawable/ic_close_24.xml delete mode 100644 app/src/main/res/drawable/ic_code.xml create mode 100644 app/src/main/res/drawable/ic_code_24.xml create mode 100644 app/src/main/res/drawable/ic_currently_playing_24.xml create mode 100644 app/src/main/res/drawable/ic_dark_24.xml delete mode 100644 app/src/main/res/drawable/ic_delete.xml create mode 100644 app/src/main/res/drawable/ic_delete_24.xml delete mode 100644 app/src/main/res/drawable/ic_down.xml create mode 100644 app/src/main/res/drawable/ic_down_24.xml delete mode 100644 app/src/main/res/drawable/ic_equalizer.xml delete mode 100644 app/src/main/res/drawable/ic_faq.xml delete mode 100644 app/src/main/res/drawable/ic_filter.xml create mode 100644 app/src/main/res/drawable/ic_filter_24.xml delete mode 100644 app/src/main/res/drawable/ic_genre.xml create mode 100644 app/src/main/res/drawable/ic_genre_24.xml rename app/src/main/res/drawable/{ic_play.xml => ic_handle_24.xml} (51%) create mode 100644 app/src/main/res/drawable/ic_help_24.xml delete mode 100644 app/src/main/res/drawable/ic_indexer.xml create mode 100644 app/src/main/res/drawable/ic_indexer_32.xml delete mode 100644 app/src/main/res/drawable/ic_license.xml create mode 100644 app/src/main/res/drawable/ic_license_24.xml delete mode 100644 app/src/main/res/drawable/ic_light.xml create mode 100644 app/src/main/res/drawable/ic_light_24.xml delete mode 100644 app/src/main/res/drawable/ic_pause.xml rename app/src/main/res/drawable/{ic_handle.xml => ic_pause_24.xml} (50%) create mode 100644 app/src/main/res/drawable/ic_pause_32.xml create mode 100644 app/src/main/res/drawable/ic_play_24.xml create mode 100644 app/src/main/res/drawable/ic_play_32.xml create mode 100644 app/src/main/res/drawable/ic_remote_repeat_off_24.xml create mode 100644 app/src/main/res/drawable/ic_remote_repeat_on_24.xml create mode 100644 app/src/main/res/drawable/ic_remote_repeat_one_24.xml delete mode 100644 app/src/main/res/drawable/ic_remote_shuffle_off.xml rename app/src/main/res/drawable/{ic_remote_repeat_off.xml => ic_remote_shuffle_off_24.xml} (66%) delete mode 100644 app/src/main/res/drawable/ic_remote_shuffle_on.xml rename app/src/main/res/drawable/{ic_repeat_on.xml => ic_remote_shuffle_on_24.xml} (65%) delete mode 100644 app/src/main/res/drawable/ic_repeat.xml create mode 100644 app/src/main/res/drawable/ic_repeat_24.xml delete mode 100644 app/src/main/res/drawable/ic_repeat_one.xml create mode 100644 app/src/main/res/drawable/ic_repeat_one_24.xml delete mode 100644 app/src/main/res/drawable/ic_search.xml create mode 100644 app/src/main/res/drawable/ic_search_24.xml delete mode 100644 app/src/main/res/drawable/ic_settings.xml create mode 100644 app/src/main/res/drawable/ic_shortcut_shuffle_24.xml delete mode 100644 app/src/main/res/drawable/ic_shuffle.xml create mode 100644 app/src/main/res/drawable/ic_shuffle_24.xml delete mode 100644 app/src/main/res/drawable/ic_shuffle_shortcut.xml delete mode 100644 app/src/main/res/drawable/ic_skip_next.xml create mode 100644 app/src/main/res/drawable/ic_skip_next_24.xml delete mode 100644 app/src/main/res/drawable/ic_skip_prev.xml create mode 100644 app/src/main/res/drawable/ic_skip_prev_24.xml delete mode 100644 app/src/main/res/drawable/ic_song.xml create mode 100644 app/src/main/res/drawable/ic_song_24.xml delete mode 100644 app/src/main/res/drawable/ic_sort.xml create mode 100644 app/src/main/res/drawable/ic_sort_24.xml delete mode 100644 app/src/main/res/drawable/ic_time.xml create mode 100644 app/src/main/res/drawable/ic_time_24.xml delete mode 100644 app/src/main/res/drawable/sel_playing_state.xml create mode 100644 app/src/main/res/drawable/sel_playing_state_24.xml diff --git a/app/src/main/java/org/oxycblt/auxio/AuxioApp.kt b/app/src/main/java/org/oxycblt/auxio/AuxioApp.kt index c3335cc44..9776e7001 100644 --- a/app/src/main/java/org/oxycblt/auxio/AuxioApp.kt +++ b/app/src/main/java/org/oxycblt/auxio/AuxioApp.kt @@ -44,7 +44,7 @@ class AuxioApp : Application(), ImageLoaderFactory { ShortcutInfoCompat.Builder(this, SHORTCUT_SHUFFLE_ID) .setShortLabel(getString(R.string.lbl_shuffle_shortcut_short)) .setLongLabel(getString(R.string.lbl_shuffle_shortcut_long)) - .setIcon(IconCompat.createWithResource(this, R.drawable.ic_shuffle_shortcut)) + .setIcon(IconCompat.createWithResource(this, R.drawable.ic_shortcut_shuffle_24)) .setIntent( Intent(this, MainActivity::class.java).apply { action = INTENT_KEY_SHORTCUT_SHUFFLE diff --git a/app/src/main/java/org/oxycblt/auxio/image/ui/ImageGroup.kt b/app/src/main/java/org/oxycblt/auxio/image/ImageGroup.kt similarity index 98% rename from app/src/main/java/org/oxycblt/auxio/image/ui/ImageGroup.kt rename to app/src/main/java/org/oxycblt/auxio/image/ImageGroup.kt index 287fa2562..ea77eb442 100644 --- a/app/src/main/java/org/oxycblt/auxio/image/ui/ImageGroup.kt +++ b/app/src/main/java/org/oxycblt/auxio/image/ImageGroup.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.image.ui +package org.oxycblt.auxio.image import android.annotation.SuppressLint import android.content.Context @@ -50,7 +50,6 @@ class ImageGroup constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr: Int = 0) : FrameLayout(context, attrs, defStyleAttr) { private val cornerRadius: Float - private val inner: StyledImageView private var customView: View? = null private val indicator: StyledImageView @@ -67,7 +66,7 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr indicator = StyledImageView(context).apply { cornerRadius = this@ImageGroup.cornerRadius - staticIcon = context.getDrawableSafe(R.drawable.ic_equalizer) + staticIcon = context.getDrawableSafe(R.drawable.ic_currently_playing_24) } addView(inner) diff --git a/app/src/main/java/org/oxycblt/auxio/image/ui/StyledImageView.kt b/app/src/main/java/org/oxycblt/auxio/image/StyledImageView.kt similarity index 73% rename from app/src/main/java/org/oxycblt/auxio/image/ui/StyledImageView.kt rename to app/src/main/java/org/oxycblt/auxio/image/StyledImageView.kt index c5aaaf0da..1a9b66568 100644 --- a/app/src/main/java/org/oxycblt/auxio/image/ui/StyledImageView.kt +++ b/app/src/main/java/org/oxycblt/auxio/image/StyledImageView.kt @@ -15,9 +15,12 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.image.ui +package org.oxycblt.auxio.image import android.content.Context +import android.graphics.Canvas +import android.graphics.ColorFilter +import android.graphics.PixelFormat import android.graphics.drawable.Drawable import android.util.AttributeSet import androidx.annotation.AttrRes @@ -25,11 +28,11 @@ import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.appcompat.widget.AppCompatImageView import androidx.core.content.res.ResourcesCompat +import androidx.core.graphics.drawable.DrawableCompat import coil.dispose import coil.load import com.google.android.material.shape.MaterialShapeDrawable import org.oxycblt.auxio.R -import org.oxycblt.auxio.image.SquareFrameTransform import org.oxycblt.auxio.music.Album import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.music.Genre @@ -68,11 +71,12 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr var staticIcon: Drawable? = null set(value) { - val wrapped = value?.let { StyledDrawable(context, it) } - field = wrapped + field = value?.let { StyledDrawable(context, it) } setImageDrawable(field) } + private var useLargeIcon: Boolean = false + init { // Use clipToOutline and a background drawable to crop images. While Coil's transformation // could theoretically be used to round corners, the corner radius is dependent on the @@ -88,28 +92,30 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr } val styledAttrs = context.obtainStyledAttributes(attrs, R.styleable.StyledImageView) - val staticIconRes = + val staticIcon = styledAttrs.getResourceId( R.styleable.StyledImageView_staticIcon, ResourcesCompat.ID_NULL) - if (staticIconRes != ResourcesCompat.ID_NULL) { - staticIcon = context.getDrawableSafe(staticIconRes) + if (staticIcon != ResourcesCompat.ID_NULL) { + this.staticIcon = context.getDrawableSafe(staticIcon) } + useLargeIcon = styledAttrs.getBoolean(R.styleable.StyledImageView_useLargeIcon, false) + cornerRadius = styledAttrs.getDimension(R.styleable.StyledImageView_cornerRadius, 0f) styledAttrs.recycle() } /** Bind the album cover for a [song]. */ - fun bind(song: Song) = loadImpl(song, R.drawable.ic_song, R.string.desc_album_cover) + fun bind(song: Song) = loadImpl(song, R.drawable.ic_song_24, R.string.desc_album_cover) /** Bind the album cover for an [album]. */ - fun bind(album: Album) = loadImpl(album, R.drawable.ic_album, R.string.desc_album_cover) + fun bind(album: Album) = loadImpl(album, R.drawable.ic_album_24, R.string.desc_album_cover) /** Bind the image for an [artist] */ - fun bind(artist: Artist) = loadImpl(artist, R.drawable.ic_artist, R.string.desc_artist_image) + fun bind(artist: Artist) = loadImpl(artist, R.drawable.ic_artist_24, R.string.desc_artist_image) /** Bind the image for a [genre] */ - fun bind(genre: Genre) = loadImpl(genre, R.drawable.ic_genre, R.string.desc_genre_image) + fun bind(genre: Genre) = loadImpl(genre, R.drawable.ic_genre_24, R.string.desc_genre_image) private fun loadImpl(music: T, @DrawableRes error: Int, @StringRes desc: Int) { if (staticIcon != null) { @@ -124,4 +130,31 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr transformations(SquareFrameTransform.INSTANCE) } } + + private class StyledDrawable(context: Context, private val src: Drawable) : Drawable() { + init { + DrawableCompat.setTintList(src, context.getColorStateListSafe(R.color.sel_on_cover_bg)) + } + + override fun draw(canvas: Canvas) { + val adjustWidth = bounds.width() / 4 + val adjustHeight = bounds.height() / 4 + src.bounds.set( + adjustWidth, + adjustHeight, + bounds.width() - adjustWidth, + bounds.height() - adjustHeight) + src.draw(canvas) + } + + override fun setAlpha(alpha: Int) { + src.alpha = alpha + } + + override fun setColorFilter(colorFilter: ColorFilter?) { + src.colorFilter = colorFilter + } + + override fun getOpacity(): Int = PixelFormat.TRANSLUCENT + } } diff --git a/app/src/main/java/org/oxycblt/auxio/image/ui/StyledDrawable.kt b/app/src/main/java/org/oxycblt/auxio/image/ui/StyledDrawable.kt deleted file mode 100644 index c97d4db04..000000000 --- a/app/src/main/java/org/oxycblt/auxio/image/ui/StyledDrawable.kt +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2022 Auxio Project - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.oxycblt.auxio.image.ui - -import android.content.Context -import android.graphics.Canvas -import android.graphics.ColorFilter -import android.graphics.PixelFormat -import android.graphics.drawable.Drawable -import androidx.core.graphics.drawable.DrawableCompat -import org.oxycblt.auxio.R -import org.oxycblt.auxio.util.getColorStateListSafe - -/** - * The internal drawable used by Auxio's images. Do not use this outside of this module. - * - * This enables a few features: - * - Automatic tinting to the correct image tint - * - Automatic sizing to HALF of the canvas. - * - * @author OxygenCobalt - */ -class StyledDrawable(context: Context, private val src: Drawable) : Drawable() { - init { - // Re-tint the drawable to something that will play along with the background. - // Done here because this call (and nothing else) miraculously works on Lollipop devices - DrawableCompat.setTintList(src, context.getColorStateListSafe(R.color.sel_on_cover_bg)) - } - - override fun draw(canvas: Canvas) { - src.bounds.set(canvas.clipBounds) - val adjustWidth = src.bounds.width() / 4 - val adjustHeight = src.bounds.height() / 4 - src.bounds.set( - adjustWidth, - adjustHeight, - src.bounds.width() - adjustWidth, - src.bounds.height() - adjustHeight) - src.draw(canvas) - } - - override fun setAlpha(alpha: Int) { - src.alpha = alpha - } - - override fun setColorFilter(colorFilter: ColorFilter?) { - src.colorFilter = colorFilter - } - - override fun getOpacity(): Int = PixelFormat.TRANSLUCENT -} diff --git a/app/src/main/java/org/oxycblt/auxio/music/IndexerService.kt b/app/src/main/java/org/oxycblt/auxio/music/IndexerService.kt index b6d186916..4c9c98dfc 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/IndexerService.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/IndexerService.kt @@ -158,7 +158,7 @@ private class IndexerNotification(private val context: Context) : notificationManager.createNotificationChannel(channel) } - setSmallIcon(R.drawable.ic_indexer) + setSmallIcon(R.drawable.ic_indexer_32) setCategory(NotificationCompat.CATEGORY_SERVICE) setShowWhen(false) setSilent(true) diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt index 21ff48985..f4e619f59 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackPanelFragment.kt @@ -183,7 +183,14 @@ class PlaybackPanelFragment : private fun updateRepeat(repeatMode: RepeatMode) { requireBinding().playbackRepeat.apply { isActivated = repeatMode != RepeatMode.NONE - icon = requireContext().getDrawableSafe(repeatMode.icon) + val iconRes = + when (repeatMode) { + RepeatMode.NONE, + RepeatMode.ALL -> R.drawable.ic_repeat_24 + RepeatMode.TRACK -> R.drawable.ic_repeat_one_24 + } + + icon = requireContext().getDrawableSafe(iconRes) } } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/state/RepeatMode.kt b/app/src/main/java/org/oxycblt/auxio/playback/state/RepeatMode.kt index acbf601af..9e8785181 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/state/RepeatMode.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/state/RepeatMode.kt @@ -18,7 +18,6 @@ package org.oxycblt.auxio.playback.state import org.oxycblt.auxio.IntegerTable -import org.oxycblt.auxio.R /** * Enum that determines the playback repeat mode. @@ -38,14 +37,6 @@ enum class RepeatMode { } } - val icon: Int - get() = - when (this) { - NONE -> R.drawable.ic_repeat - ALL -> R.drawable.ic_repeat_on - TRACK -> R.drawable.ic_repeat_one - } - /** The integer code representing this particular mode. */ val intCode: Int get() = diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt index c075f95fa..f087c76e8 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt @@ -246,7 +246,7 @@ class MediaSessionComponent(private val context: Context, private val player: Pl PlaybackStateCompat.CustomAction.Builder( PlaybackService.ACTION_INC_REPEAT_MODE, context.getString(R.string.desc_change_repeat), - R.drawable.ic_remote_repeat_off) + R.drawable.ic_remote_repeat_off_24) .build()) .setBufferedPosition(player.bufferedPosition) diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/NotificationComponent.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/NotificationComponent.kt index 335799017..593d938ba 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/NotificationComponent.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/NotificationComponent.kt @@ -64,7 +64,7 @@ class NotificationComponent( notificationManager.createNotificationChannel(channel) } - setSmallIcon(R.drawable.ic_auxio) + setSmallIcon(R.drawable.ic_auxio_24) setCategory(NotificationCompat.CATEGORY_SERVICE) setShowWhen(false) setSilent(true) @@ -72,10 +72,12 @@ class NotificationComponent( setVisibility(NotificationCompat.VISIBILITY_PUBLIC) addAction(buildRepeatAction(context, RepeatMode.NONE)) - addAction(buildAction(context, PlaybackService.ACTION_SKIP_PREV, R.drawable.ic_skip_prev)) + addAction( + buildAction(context, PlaybackService.ACTION_SKIP_PREV, R.drawable.ic_skip_prev_24)) addAction(buildPlayPauseAction(context, true)) - addAction(buildAction(context, PlaybackService.ACTION_SKIP_NEXT, R.drawable.ic_skip_next)) - addAction(buildAction(context, PlaybackService.ACTION_EXIT, R.drawable.ic_close)) + addAction( + buildAction(context, PlaybackService.ACTION_SKIP_NEXT, R.drawable.ic_skip_next_24)) + addAction(buildAction(context, PlaybackService.ACTION_EXIT, R.drawable.ic_close_24)) setStyle(MediaStyle().setMediaSession(sessionToken).setShowActionsInCompactView(1, 2, 3)) } @@ -146,7 +148,7 @@ class NotificationComponent( context: Context, isPlaying: Boolean ): NotificationCompat.Action { - val drawableRes = if (isPlaying) R.drawable.ic_pause else R.drawable.ic_play + val drawableRes = if (isPlaying) R.drawable.ic_pause_24 else R.drawable.ic_play_24 return buildAction(context, PlaybackService.ACTION_PLAY_PAUSE, drawableRes) } @@ -157,9 +159,9 @@ class NotificationComponent( ): NotificationCompat.Action { val drawableRes = when (repeatMode) { - RepeatMode.NONE -> R.drawable.ic_remote_repeat_off - RepeatMode.ALL -> R.drawable.ic_repeat - RepeatMode.TRACK -> R.drawable.ic_repeat_one + RepeatMode.NONE -> R.drawable.ic_remote_repeat_off_24 + RepeatMode.ALL -> R.drawable.ic_remote_repeat_on_24 + RepeatMode.TRACK -> R.drawable.ic_remote_repeat_one_24 } return buildAction(context, PlaybackService.ACTION_INC_REPEAT_MODE, drawableRes) @@ -170,7 +172,7 @@ class NotificationComponent( isShuffled: Boolean ): NotificationCompat.Action { val drawableRes = - if (isShuffled) R.drawable.ic_shuffle else R.drawable.ic_remote_shuffle_off + if (isShuffled) R.drawable.ic_shuffle_24 else R.drawable.ic_remote_shuffle_off_24 return buildAction(context, PlaybackService.ACTION_INVERT_SHUFFLE, drawableRes) } diff --git a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt index fee95a865..537ca2951 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt @@ -181,10 +181,10 @@ class SettingsListFragment : PreferenceFragmentCompat() { @DrawableRes private fun Int.toThemeIcon(): Int { return when (this) { - AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM -> R.drawable.ic_auto - AppCompatDelegate.MODE_NIGHT_NO -> R.drawable.ic_light - AppCompatDelegate.MODE_NIGHT_YES -> R.drawable.ic_dark - else -> R.drawable.ic_auto + AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM -> R.drawable.ic_auto_24 + AppCompatDelegate.MODE_NIGHT_NO -> R.drawable.ic_light_24 + AppCompatDelegate.MODE_NIGHT_YES -> R.drawable.ic_dark_24 + else -> R.drawable.ic_auto_24 } } } diff --git a/app/src/main/java/org/oxycblt/auxio/ui/BottomSheetLayout.kt b/app/src/main/java/org/oxycblt/auxio/ui/BottomSheetLayout.kt index f72a7e3a4..bb3f39004 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/BottomSheetLayout.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/BottomSheetLayout.kt @@ -506,7 +506,10 @@ constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) : logD("New state: $newState") this.state = newState - // TODO: Make accessibility better + // TODO: Improve accessibility by: + // 1. Adding a (non-visible) handle. Material components now technically does have + // this, but it relies on the busted BottomSheetBehavior. + // 2. Adding the controls that BottomSheetBehavior defines in-app. sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) } @@ -519,8 +522,8 @@ constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) : val ratio = max(sheetOffset, 0f) val outRatio = 1 - ratio - val halfOutRatio = min(ratio / 0.5f, 1f) - val halfInRatio = max(ratio - 0.5f, 0f) / 0.5f + val halfOutRatio = min(ratio * 2, 1f) + val halfInRatio = max(ratio - 0.5f, 0f) * 2 contentView.apply { alpha = outRatio @@ -542,7 +545,7 @@ constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) : // translation with a fraction of the said inset. lastInsets?.let { insets -> val bars = insets.getSystemBarInsetsCompat(this) - translationY = (bars.top * halfOutRatio) + translationY = bars.top * halfOutRatio } } diff --git a/app/src/main/java/org/oxycblt/auxio/ui/DisplayMode.kt b/app/src/main/java/org/oxycblt/auxio/ui/DisplayMode.kt index 990d3cb88..1c28abc3d 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/DisplayMode.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/DisplayMode.kt @@ -44,19 +44,19 @@ enum class DisplayMode { val icon: Int get() = when (this) { - SHOW_SONGS -> R.drawable.ic_song - SHOW_ALBUMS -> R.drawable.ic_album - SHOW_ARTISTS -> R.drawable.ic_artist - SHOW_GENRES -> R.drawable.ic_genre + SHOW_SONGS -> R.drawable.ic_song_24 + SHOW_ALBUMS -> R.drawable.ic_album_24 + SHOW_ARTISTS -> R.drawable.ic_artist_24 + SHOW_GENRES -> R.drawable.ic_genre_24 } val itemId: Int get() = when (this) { - SHOW_SONGS -> R.drawable.ic_song - SHOW_ALBUMS -> R.drawable.ic_album - SHOW_ARTISTS -> R.drawable.ic_artist - SHOW_GENRES -> R.drawable.ic_genre + SHOW_SONGS -> R.drawable.ic_song_24 + SHOW_ALBUMS -> R.drawable.ic_album_24 + SHOW_ARTISTS -> R.drawable.ic_artist_24 + SHOW_GENRES -> R.drawable.ic_genre_24 } val intCode: Int diff --git a/app/src/main/java/org/oxycblt/auxio/ui/coordinator/EdgeCoordinatorLayout.kt b/app/src/main/java/org/oxycblt/auxio/ui/coordinator/EdgeCoordinatorLayout.kt index 7e7e64677..4f138e77f 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/coordinator/EdgeCoordinatorLayout.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/coordinator/EdgeCoordinatorLayout.kt @@ -25,10 +25,10 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.view.children /** - * Class that fixes an issue where [CoordinatorLayout] will override [onApplyWindowInsets] and - * delegate the job to ***LAYOUT BEHAVIOR INSTANCES*** instead of the actual views. + * Class that manually overrides the busted window inset functionality of CoordinatorLayout in favor + * of a simple "delegate to child views" implementation. * - * I can't believe I have to do this. + * @author OxygenCobalt */ class EdgeCoordinatorLayout @JvmOverloads diff --git a/app/src/main/java/org/oxycblt/auxio/util/FrameworkUtil.kt b/app/src/main/java/org/oxycblt/auxio/util/FrameworkUtil.kt index d37a3a9de..2767e8664 100644 --- a/app/src/main/java/org/oxycblt/auxio/util/FrameworkUtil.kt +++ b/app/src/main/java/org/oxycblt/auxio/util/FrameworkUtil.kt @@ -236,6 +236,9 @@ val AndroidViewModel.application: Application fun SQLiteDatabase.queryAll(tableName: String, block: (Cursor) -> R) = query(tableName, null, null, null, null, null, null)?.use(block) +// Note: ViewCompat.setOnApplyWindowInsets is a horrible buggy mess, so we use the native method +// and convert the insets as needed to their compat forms. + /** * Resolve system bar insets in a version-aware manner. This can be used to apply padding to a view * that properly follows all the frustrating changes that were made between Android 8-11. diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt b/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt index 902f774ec..8e311f0ba 100644 --- a/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt +++ b/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt @@ -121,9 +121,9 @@ private fun RemoteViews.applyPlayPauseControls( setImageViewResource( R.id.widget_play_pause, if (state.isPlaying) { - R.drawable.ic_pause + R.drawable.ic_pause_24 } else { - R.drawable.ic_play + R.drawable.ic_play_24 }) return this @@ -162,15 +162,15 @@ private fun RemoteViews.applyFullControls( // indicators. val shuffleRes = when { - state.isShuffled -> R.drawable.ic_remote_shuffle_on - else -> R.drawable.ic_remote_shuffle_off + state.isShuffled -> R.drawable.ic_remote_shuffle_on_24 + else -> R.drawable.ic_remote_shuffle_off_24 } val repeatRes = when (state.repeatMode) { - RepeatMode.NONE -> R.drawable.ic_remote_repeat_off - RepeatMode.ALL -> R.drawable.ic_repeat_on - RepeatMode.TRACK -> R.drawable.ic_repeat_one + RepeatMode.NONE -> R.drawable.ic_remote_repeat_off_24 + RepeatMode.ALL -> R.drawable.ic_remote_repeat_on_24 + RepeatMode.TRACK -> R.drawable.ic_remote_repeat_one_24 } setImageViewResource(R.id.widget_shuffle, shuffleRes) diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetComponent.kt b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetComponent.kt index c3f3de89f..8e4b6d205 100644 --- a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetComponent.kt +++ b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetComponent.kt @@ -60,6 +60,10 @@ class WidgetComponent(private val context: Context) : * Force-update the widget. */ fun update() { + // TODO: Rework margins/button layout to do the magic that other button bars do + // TODO: Try to change the error icon again + // TODO: + // Updating Auxio's widget is unlike the rest of Auxio for a few reasons: // 1. We can't use the typical primitives like ViewModels // 2. The component range is far smaller, so we have to do some odd hacks to get diff --git a/app/src/main/res/drawable-v31/ui_widget_panel.xml b/app/src/main/res/drawable-v31/ui_widget_panel.xml index 708ae7744..b6144dd5f 100644 --- a/app/src/main/res/drawable-v31/ui_widget_panel.xml +++ b/app/src/main/res/drawable-v31/ui_widget_panel.xml @@ -2,5 +2,5 @@ - + diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml deleted file mode 100644 index 2cdb140c1..000000000 --- a/app/src/main/res/drawable/ic_about.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/app/src/main/res/drawable/ic_about_24.xml b/app/src/main/res/drawable/ic_about_24.xml new file mode 100644 index 000000000..c23bc022a --- /dev/null +++ b/app/src/main/res/drawable/ic_about_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_accent.xml b/app/src/main/res/drawable/ic_accent.xml deleted file mode 100644 index 60e108dc2..000000000 --- a/app/src/main/res/drawable/ic_accent.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_accent_24.xml b/app/src/main/res/drawable/ic_accent_24.xml new file mode 100644 index 000000000..66cfbb5c9 --- /dev/null +++ b/app/src/main/res/drawable/ic_accent_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_album.xml b/app/src/main/res/drawable/ic_album.xml deleted file mode 100644 index 4849575e0..000000000 --- a/app/src/main/res/drawable/ic_album.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_album_24.xml b/app/src/main/res/drawable/ic_album_24.xml new file mode 100644 index 000000000..dbc2985af --- /dev/null +++ b/app/src/main/res/drawable/ic_album_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_artist.xml b/app/src/main/res/drawable/ic_artist.xml deleted file mode 100644 index f6947d86f..000000000 --- a/app/src/main/res/drawable/ic_artist.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_artist_24.xml b/app/src/main/res/drawable/ic_artist_24.xml new file mode 100644 index 000000000..f4fa7d874 --- /dev/null +++ b/app/src/main/res/drawable/ic_artist_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_auto.xml b/app/src/main/res/drawable/ic_auto.xml deleted file mode 100644 index a6fe91df9..000000000 --- a/app/src/main/res/drawable/ic_auto.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_auto_24.xml b/app/src/main/res/drawable/ic_auto_24.xml new file mode 100644 index 000000000..fbea38cdc --- /dev/null +++ b/app/src/main/res/drawable/ic_auto_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_auxio.xml b/app/src/main/res/drawable/ic_auxio_24.xml similarity index 100% rename from app/src/main/res/drawable/ic_auxio.xml rename to app/src/main/res/drawable/ic_auxio_24.xml diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml deleted file mode 100644 index c9d2255e2..000000000 --- a/app/src/main/res/drawable/ic_back.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_back_24.xml b/app/src/main/res/drawable/ic_back_24.xml new file mode 100644 index 000000000..ec560cf2f --- /dev/null +++ b/app/src/main/res/drawable/ic_back_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_check.xml b/app/src/main/res/drawable/ic_check.xml deleted file mode 100644 index 346675f6c..000000000 --- a/app/src/main/res/drawable/ic_check.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_dark.xml b/app/src/main/res/drawable/ic_check_24.xml similarity index 59% rename from app/src/main/res/drawable/ic_dark.xml rename to app/src/main/res/drawable/ic_check_24.xml index 6f5e149a3..fc72a3ad9 100644 --- a/app/src/main/res/drawable/ic_dark.xml +++ b/app/src/main/res/drawable/ic_check_24.xml @@ -7,5 +7,5 @@ android:tint="?attr/colorControlNormal"> + android:pathData="M9.55,18 L3.85,12.3 5.275,10.875 9.55,15.15 18.725,5.975 20.15,7.4Z"/> diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml deleted file mode 100644 index 08e9d9348..000000000 --- a/app/src/main/res/drawable/ic_close.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_close_24.xml b/app/src/main/res/drawable/ic_close_24.xml new file mode 100644 index 000000000..56678618d --- /dev/null +++ b/app/src/main/res/drawable/ic_close_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_code.xml b/app/src/main/res/drawable/ic_code.xml deleted file mode 100644 index 6aa7f6418..000000000 --- a/app/src/main/res/drawable/ic_code.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_code_24.xml b/app/src/main/res/drawable/ic_code_24.xml new file mode 100644 index 000000000..81f6372b8 --- /dev/null +++ b/app/src/main/res/drawable/ic_code_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_currently_playing_24.xml b/app/src/main/res/drawable/ic_currently_playing_24.xml new file mode 100644 index 000000000..1c5789375 --- /dev/null +++ b/app/src/main/res/drawable/ic_currently_playing_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_dark_24.xml b/app/src/main/res/drawable/ic_dark_24.xml new file mode 100644 index 000000000..e1c4c007a --- /dev/null +++ b/app/src/main/res/drawable/ic_dark_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml deleted file mode 100644 index 65fbc34ac..000000000 --- a/app/src/main/res/drawable/ic_delete.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_delete_24.xml b/app/src/main/res/drawable/ic_delete_24.xml new file mode 100644 index 000000000..9e1e273ba --- /dev/null +++ b/app/src/main/res/drawable/ic_delete_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_down.xml b/app/src/main/res/drawable/ic_down.xml deleted file mode 100644 index 8b9b17aeb..000000000 --- a/app/src/main/res/drawable/ic_down.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_down_24.xml b/app/src/main/res/drawable/ic_down_24.xml new file mode 100644 index 000000000..e7ac1c4be --- /dev/null +++ b/app/src/main/res/drawable/ic_down_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_equalizer.xml b/app/src/main/res/drawable/ic_equalizer.xml deleted file mode 100644 index 96de55b64..000000000 --- a/app/src/main/res/drawable/ic_equalizer.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/ic_faq.xml b/app/src/main/res/drawable/ic_faq.xml deleted file mode 100644 index 3c1e859de..000000000 --- a/app/src/main/res/drawable/ic_faq.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_filter.xml b/app/src/main/res/drawable/ic_filter.xml deleted file mode 100644 index 0a5524a78..000000000 --- a/app/src/main/res/drawable/ic_filter.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_filter_24.xml b/app/src/main/res/drawable/ic_filter_24.xml new file mode 100644 index 000000000..9693484da --- /dev/null +++ b/app/src/main/res/drawable/ic_filter_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_genre.xml b/app/src/main/res/drawable/ic_genre.xml deleted file mode 100644 index 549022763..000000000 --- a/app/src/main/res/drawable/ic_genre.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_genre_24.xml b/app/src/main/res/drawable/ic_genre_24.xml new file mode 100644 index 000000000..b0577e9e2 --- /dev/null +++ b/app/src/main/res/drawable/ic_genre_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_play.xml b/app/src/main/res/drawable/ic_handle_24.xml similarity index 51% rename from app/src/main/res/drawable/ic_play.xml rename to app/src/main/res/drawable/ic_handle_24.xml index a456a1c1d..e691b0ed4 100644 --- a/app/src/main/res/drawable/ic_play.xml +++ b/app/src/main/res/drawable/ic_handle_24.xml @@ -2,10 +2,10 @@ - + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + diff --git a/app/src/main/res/drawable/ic_help_24.xml b/app/src/main/res/drawable/ic_help_24.xml new file mode 100644 index 000000000..5e4b14fba --- /dev/null +++ b/app/src/main/res/drawable/ic_help_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_indexer.xml b/app/src/main/res/drawable/ic_indexer.xml deleted file mode 100644 index 4a3d390d0..000000000 --- a/app/src/main/res/drawable/ic_indexer.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_indexer_32.xml b/app/src/main/res/drawable/ic_indexer_32.xml new file mode 100644 index 000000000..03ab5c4ab --- /dev/null +++ b/app/src/main/res/drawable/ic_indexer_32.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_license.xml b/app/src/main/res/drawable/ic_license.xml deleted file mode 100644 index 04a6ec0f4..000000000 --- a/app/src/main/res/drawable/ic_license.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_license_24.xml b/app/src/main/res/drawable/ic_license_24.xml new file mode 100644 index 000000000..7d507c9f6 --- /dev/null +++ b/app/src/main/res/drawable/ic_license_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_light.xml b/app/src/main/res/drawable/ic_light.xml deleted file mode 100644 index 18a3d9ca3..000000000 --- a/app/src/main/res/drawable/ic_light.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_light_24.xml b/app/src/main/res/drawable/ic_light_24.xml new file mode 100644 index 000000000..c1956fdf3 --- /dev/null +++ b/app/src/main/res/drawable/ic_light_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_pause.xml b/app/src/main/res/drawable/ic_pause.xml deleted file mode 100644 index 31ad74d80..000000000 --- a/app/src/main/res/drawable/ic_pause.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_handle.xml b/app/src/main/res/drawable/ic_pause_24.xml similarity index 50% rename from app/src/main/res/drawable/ic_handle.xml rename to app/src/main/res/drawable/ic_pause_24.xml index 1a0966377..78212e5dd 100644 --- a/app/src/main/res/drawable/ic_handle.xml +++ b/app/src/main/res/drawable/ic_pause_24.xml @@ -2,10 +2,10 @@ - + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + diff --git a/app/src/main/res/drawable/ic_pause_32.xml b/app/src/main/res/drawable/ic_pause_32.xml new file mode 100644 index 000000000..8ab8d1190 --- /dev/null +++ b/app/src/main/res/drawable/ic_pause_32.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_play_24.xml b/app/src/main/res/drawable/ic_play_24.xml new file mode 100644 index 000000000..17809ac46 --- /dev/null +++ b/app/src/main/res/drawable/ic_play_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_play_32.xml b/app/src/main/res/drawable/ic_play_32.xml new file mode 100644 index 000000000..333940cce --- /dev/null +++ b/app/src/main/res/drawable/ic_play_32.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_queue.xml b/app/src/main/res/drawable/ic_queue.xml index dc3815e81..9b3839063 100644 --- a/app/src/main/res/drawable/ic_queue.xml +++ b/app/src/main/res/drawable/ic_queue.xml @@ -2,10 +2,10 @@ - + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + diff --git a/app/src/main/res/drawable/ic_remote_default_cover.xml b/app/src/main/res/drawable/ic_remote_default_cover.xml index 02ad5acc2..2757013dd 100644 --- a/app/src/main/res/drawable/ic_remote_default_cover.xml +++ b/app/src/main/res/drawable/ic_remote_default_cover.xml @@ -4,18 +4,10 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - - + + android:pathData="M 11.999784 1.9998779 A 10 9.999999 0 0 1 22.000208 11.999784 C 22.000208 10.616452 21.737475 9.3164294 21.212142 8.099764 C 20.687476 6.8830985 19.974804 5.8247631 19.074805 4.924764 C 18.174806 4.0247649 17.11647 3.3122428 15.899805 2.78691 C 14.683139 2.2622439 13.383116 1.9998779 11.999784 1.9998779 z M 11.999784 1.9998779 C 10.616452 1.9998779 9.3164294 2.2622439 8.099764 2.78691 C 6.8830985 3.3122428 5.8247631 4.0247649 4.924764 4.924764 C 4.0247649 5.8247631 3.3126097 6.8830985 2.7879435 8.099764 C 2.2626107 9.3164294 1.9998779 10.616452 1.9998779 11.999784 A 10 9.999999 0 0 1 11.999784 1.9998779 z M 1.9998779 11.999784 C 1.9998779 13.383116 2.2626107 14.683139 2.7879435 15.899805 C 3.3126097 17.11647 4.0247649 18.174806 4.924764 19.074805 C 5.8247631 19.974804 6.8830985 20.687476 8.099764 21.212142 C 9.3164294 21.737475 10.616452 22.000208 11.999784 22.000208 A 10 9.999999 0 0 1 1.9998779 11.999784 z M 11.999784 22.000208 C 13.383116 22.000208 14.683139 21.737475 15.899805 21.212142 C 17.11647 20.687476 18.174806 19.974804 19.074805 19.074805 C 19.974804 18.174806 20.687476 17.11647 21.212142 15.899805 C 21.737475 14.683139 22.000208 13.383116 22.000208 11.999784 A 10 9.999999 0 0 1 11.999784 22.000208 z M 11.999784 3.9997559 C 9.7664532 3.9997559 7.8751938 4.7751969 6.3251953 6.3251953 C 4.7751969 7.8751938 3.9997559 9.7664532 3.9997559 11.999784 C 3.9997559 14.233115 4.7751969 16.124892 6.3251953 17.67489 C 7.8751938 19.224889 9.7664532 19.999813 11.999784 19.999813 C 14.233115 19.999813 16.124892 19.224889 17.67489 17.67489 C 19.224889 16.124892 19.999813 14.233115 19.999813 11.999784 C 19.999813 9.7664532 19.224889 7.8751938 17.67489 6.3251953 C 16.124892 4.7751969 14.233115 3.9997559 11.999784 3.9997559 z M 11.999784 7.4998006 C 13.249783 7.4998006 14.312888 7.9371994 15.18822 8.8118652 C 16.062886 9.6871977 16.499768 10.749786 16.499768 11.999784 C 16.499768 13.249783 16.062886 14.312888 15.18822 15.18822 C 14.312888 16.062886 13.249783 16.499768 11.999784 16.499768 C 10.749786 16.499768 9.6871977 16.062886 8.8118652 15.18822 C 7.9371994 14.312888 7.4998006 13.249783 7.4998006 11.999784 C 7.4998006 10.749786 7.9371994 9.6871977 8.8118652 8.8118652 C 9.6871977 7.9371994 10.749786 7.4998006 11.999784 7.4998006 z M 11.999784 10.999845 C 11.716451 10.999845 11.479533 11.095833 11.2882 11.287166 C 11.0962 11.479166 10.999845 11.716451 10.999845 11.999784 C 10.999845 12.283117 11.0962 12.520552 11.2882 12.711886 C 11.479533 12.903885 11.716451 13.00024 11.999784 13.00024 C 12.283117 13.00024 12.520919 12.903885 12.712919 12.711886 C 12.904252 12.520552 13.00024 12.283117 13.00024 11.999784 C 13.00024 11.716451 12.904252 11.479166 12.712919 11.287166 C 12.520919 11.095833 12.283117 10.999845 11.999784 10.999845 z " /> diff --git a/app/src/main/res/drawable/ic_remote_repeat_off_24.xml b/app/src/main/res/drawable/ic_remote_repeat_off_24.xml new file mode 100644 index 000000000..872168d23 --- /dev/null +++ b/app/src/main/res/drawable/ic_remote_repeat_off_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_remote_repeat_on_24.xml b/app/src/main/res/drawable/ic_remote_repeat_on_24.xml new file mode 100644 index 000000000..387c36c72 --- /dev/null +++ b/app/src/main/res/drawable/ic_remote_repeat_on_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_remote_repeat_one_24.xml b/app/src/main/res/drawable/ic_remote_repeat_one_24.xml new file mode 100644 index 000000000..783cdf36f --- /dev/null +++ b/app/src/main/res/drawable/ic_remote_repeat_one_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_remote_shuffle_off.xml b/app/src/main/res/drawable/ic_remote_shuffle_off.xml deleted file mode 100644 index a73f2d564..000000000 --- a/app/src/main/res/drawable/ic_remote_shuffle_off.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_remote_repeat_off.xml b/app/src/main/res/drawable/ic_remote_shuffle_off_24.xml similarity index 66% rename from app/src/main/res/drawable/ic_remote_repeat_off.xml rename to app/src/main/res/drawable/ic_remote_shuffle_off_24.xml index dbba9793c..3ace07308 100644 --- a/app/src/main/res/drawable/ic_remote_repeat_off.xml +++ b/app/src/main/res/drawable/ic_remote_shuffle_off_24.xml @@ -7,5 +7,5 @@ android:viewportHeight="24"> + android:pathData="M9.175,10.575 L4,5.4 5.4,4 10.575,9.175ZM14,20V18H16.6L13.425,14.825L14.85,13.4L18,16.55V14H20V20ZM5.4,20 L4,18.6 16.6,6H14V4H20V10H18V7.4Z"/> diff --git a/app/src/main/res/drawable/ic_remote_shuffle_on.xml b/app/src/main/res/drawable/ic_remote_shuffle_on.xml deleted file mode 100644 index 4ec762e82..000000000 --- a/app/src/main/res/drawable/ic_remote_shuffle_on.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_repeat_on.xml b/app/src/main/res/drawable/ic_remote_shuffle_on_24.xml similarity index 65% rename from app/src/main/res/drawable/ic_repeat_on.xml rename to app/src/main/res/drawable/ic_remote_shuffle_on_24.xml index 6939531ad..c448ef4ac 100644 --- a/app/src/main/res/drawable/ic_repeat_on.xml +++ b/app/src/main/res/drawable/ic_remote_shuffle_on_24.xml @@ -7,5 +7,5 @@ android:viewportHeight="24"> + android:pathData="M9.175,10.575 L4,5.4 5.4,4 10.575,9.175ZM14,20V18H16.6L13.425,14.825L14.85,13.4L18,16.55V14H20V20ZM5.4,20 L4,18.6 16.6,6H14V4H20V10H18V7.4Z"/> diff --git a/app/src/main/res/drawable/ic_repeat.xml b/app/src/main/res/drawable/ic_repeat.xml deleted file mode 100644 index 2c74db552..000000000 --- a/app/src/main/res/drawable/ic_repeat.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_repeat_24.xml b/app/src/main/res/drawable/ic_repeat_24.xml new file mode 100644 index 000000000..03eb25e8e --- /dev/null +++ b/app/src/main/res/drawable/ic_repeat_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_repeat_one.xml b/app/src/main/res/drawable/ic_repeat_one.xml deleted file mode 100644 index 99adebd73..000000000 --- a/app/src/main/res/drawable/ic_repeat_one.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_repeat_one_24.xml b/app/src/main/res/drawable/ic_repeat_one_24.xml new file mode 100644 index 000000000..a4d61e56e --- /dev/null +++ b/app/src/main/res/drawable/ic_repeat_one_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml deleted file mode 100644 index 4f9300352..000000000 --- a/app/src/main/res/drawable/ic_search.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_search_24.xml b/app/src/main/res/drawable/ic_search_24.xml new file mode 100644 index 000000000..55c38f427 --- /dev/null +++ b/app/src/main/res/drawable/ic_search_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml deleted file mode 100644 index 59a9f21e0..000000000 --- a/app/src/main/res/drawable/ic_settings.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_shortcut_shuffle_24.xml b/app/src/main/res/drawable/ic_shortcut_shuffle_24.xml new file mode 100644 index 000000000..94b7909f5 --- /dev/null +++ b/app/src/main/res/drawable/ic_shortcut_shuffle_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_shuffle.xml b/app/src/main/res/drawable/ic_shuffle.xml deleted file mode 100644 index 0c2210449..000000000 --- a/app/src/main/res/drawable/ic_shuffle.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_shuffle_24.xml b/app/src/main/res/drawable/ic_shuffle_24.xml new file mode 100644 index 000000000..5d6aaf282 --- /dev/null +++ b/app/src/main/res/drawable/ic_shuffle_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_shuffle_shortcut.xml b/app/src/main/res/drawable/ic_shuffle_shortcut.xml deleted file mode 100644 index 332170a3a..000000000 --- a/app/src/main/res/drawable/ic_shuffle_shortcut.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_skip_next.xml b/app/src/main/res/drawable/ic_skip_next.xml deleted file mode 100644 index 7435e7373..000000000 --- a/app/src/main/res/drawable/ic_skip_next.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_skip_next_24.xml b/app/src/main/res/drawable/ic_skip_next_24.xml new file mode 100644 index 000000000..5d802e812 --- /dev/null +++ b/app/src/main/res/drawable/ic_skip_next_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_skip_prev.xml b/app/src/main/res/drawable/ic_skip_prev.xml deleted file mode 100644 index d9f2fe87a..000000000 --- a/app/src/main/res/drawable/ic_skip_prev.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_skip_prev_24.xml b/app/src/main/res/drawable/ic_skip_prev_24.xml new file mode 100644 index 000000000..e0e4fe3e3 --- /dev/null +++ b/app/src/main/res/drawable/ic_skip_prev_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_song.xml b/app/src/main/res/drawable/ic_song.xml deleted file mode 100644 index a2b91bf6c..000000000 --- a/app/src/main/res/drawable/ic_song.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_song_24.xml b/app/src/main/res/drawable/ic_song_24.xml new file mode 100644 index 000000000..fdc799481 --- /dev/null +++ b/app/src/main/res/drawable/ic_song_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_sort.xml b/app/src/main/res/drawable/ic_sort.xml deleted file mode 100644 index 389a58136..000000000 --- a/app/src/main/res/drawable/ic_sort.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_sort_24.xml b/app/src/main/res/drawable/ic_sort_24.xml new file mode 100644 index 000000000..af7317bd7 --- /dev/null +++ b/app/src/main/res/drawable/ic_sort_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_time.xml b/app/src/main/res/drawable/ic_time.xml deleted file mode 100644 index f86012a96..000000000 --- a/app/src/main/res/drawable/ic_time.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_time_24.xml b/app/src/main/res/drawable/ic_time_24.xml new file mode 100644 index 000000000..7ab4b27ef --- /dev/null +++ b/app/src/main/res/drawable/ic_time_24.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/sel_playing_state.xml b/app/src/main/res/drawable/sel_playing_state.xml deleted file mode 100644 index c0ce56d30..000000000 --- a/app/src/main/res/drawable/sel_playing_state.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/sel_playing_state_24.xml b/app/src/main/res/drawable/sel_playing_state_24.xml new file mode 100644 index 000000000..24cf711a8 --- /dev/null +++ b/app/src/main/res/drawable/sel_playing_state_24.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ui_widget_panel.xml b/app/src/main/res/drawable/ui_widget_panel.xml index 04d3b830c..9d33d5912 100644 --- a/app/src/main/res/drawable/ui_widget_panel.xml +++ b/app/src/main/res/drawable/ui_widget_panel.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/layout-h600dp/item_detail.xml b/app/src/main/res/layout-h600dp/item_detail.xml index fe07c5b27..1bfcba6b4 100644 --- a/app/src/main/res/layout-h600dp/item_detail.xml +++ b/app/src/main/res/layout-h600dp/item_detail.xml @@ -6,14 +6,14 @@ android:layout_height="match_parent" android:padding="@dimen/spacing_medium"> - + tools:staticIcon="@drawable/ic_song_48" /> - + tools:staticIcon="@drawable/ic_song_48" /> @@ -107,7 +107,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/desc_change_repeat" - app:icon="@drawable/ic_repeat" + app:icon="@drawable/ic_repeat_24" app:iconTint="@color/sel_accented" app:layout_constraintBottom_toBottomOf="@+id/playback_skip_prev" app:layout_constraintStart_toStartOf="parent" @@ -119,7 +119,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/desc_skip_prev" - app:icon="@drawable/ic_skip_prev" + app:icon="@drawable/ic_skip_prev_24" app:layout_constraintBottom_toBottomOf="@+id/playback_play_pause" app:layout_constraintEnd_toStartOf="@+id/playback_play_pause" app:layout_constraintStart_toEndOf="@+id/playback_repeat" @@ -131,12 +131,12 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/desc_play_pause" - android:src="@drawable/sel_playing_state" + android:src="@drawable/sel_playing_state_24" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - tools:src="@drawable/ic_play" /> + tools:src="@drawable/ic_play_24" />