From 4c59c371119c9dffe0382571104b9367c2e49411 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sat, 21 Aug 2021 09:52:39 -0600 Subject: [PATCH] style: use material play/pause icons The old play/pause icons that I used to use were really bad and didn't work right on many display densities. Give up and just use the material ones. --- .../oxycblt/auxio/playback/PlayPauseButton.kt | 52 +------------------ app/src/main/res/drawable/ic_pause.xml | 10 ++-- app/src/main/res/drawable/ic_pause_large.xml | 22 -------- .../main/res/drawable/ic_pause_to_play.xml | 44 ---------------- app/src/main/res/drawable/ic_play.xml | 10 ++-- app/src/main/res/drawable/ic_play_large.xml | 21 -------- .../main/res/drawable/ic_play_to_pause.xml | 44 ---------------- .../layout-land/fragment_compact_playback.xml | 2 +- .../res/layout-land/fragment_playback.xml | 2 +- .../layout-xlarge-land/fragment_playback.xml | 2 +- .../res/layout-xlarge/fragment_playback.xml | 2 +- .../res/layout/fragment_compact_playback.xml | 3 +- app/src/main/res/layout/fragment_playback.xml | 2 +- app/src/main/res/values/dimens.xml | 2 +- 14 files changed, 19 insertions(+), 199 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_pause_large.xml delete mode 100644 app/src/main/res/drawable/ic_pause_to_play.xml delete mode 100644 app/src/main/res/drawable/ic_play_large.xml delete mode 100644 app/src/main/res/drawable/ic_play_to_pause.xml diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlayPauseButton.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlayPauseButton.kt index ed446a007..3dd1eb994 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlayPauseButton.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlayPauseButton.kt @@ -19,14 +19,9 @@ package org.oxycblt.auxio.playback import android.content.Context -import android.graphics.drawable.Animatable2 -import android.graphics.drawable.Drawable -import android.os.Build import android.util.AttributeSet -import androidx.annotation.RequiresApi import androidx.appcompat.widget.AppCompatImageButton import org.oxycblt.auxio.R -import org.oxycblt.auxio.resolveAnimDrawable /** * Custom [AppCompatImageButton] that handles the animated play/pause icons. @@ -38,58 +33,15 @@ class PlayPauseButton @JvmOverloads constructor( attrs: AttributeSet? = null, defStyleAttr: Int = -1 ) : AppCompatImageButton(context, attrs, defStyleAttr) { - private val iconPauseToPlay = R.drawable.ic_pause_to_play.resolveAnimDrawable(context) - private val iconPlayToPause = R.drawable.ic_play_to_pause.resolveAnimDrawable(context) - - init { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - fixSeams() - } - } - /** * Update the play/pause icon to reflect [isPlaying] * @param animate Whether the icon change should be animated or not. */ fun setPlaying(isPlaying: Boolean, animate: Boolean) { if (isPlaying) { - if (animate) { - setImageDrawable(iconPlayToPause) - iconPlayToPause.start() - } else { - setImageResource(R.drawable.ic_pause_large) - } + setImageResource(R.drawable.ic_pause) } else { - if (animate) { - setImageDrawable(iconPauseToPlay) - iconPauseToPlay.start() - } else { - setImageResource(R.drawable.ic_play_large) - } - } - } - - /** - * Hack that fixes an issue where a seam would display in the middle of the play button, - * probably as a result of floating point precision errors. Thanks IEEE 754. - */ - @RequiresApi(Build.VERSION_CODES.M) - private fun fixSeams() { - iconPauseToPlay.registerAnimationCallback(object : Animatable2.AnimationCallback() { - override fun onAnimationEnd(drawable: Drawable?) { - // ic_play_large is a unified vector, compared to the two paths on the - // animated vector. So switch to that when the animation completes to prevent the - // seam from displaying. - setImageResource(R.drawable.ic_play_large) - } - }) - } - - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - iconPauseToPlay.clearAnimationCallbacks() + setImageResource(R.drawable.ic_play) } } } diff --git a/app/src/main/res/drawable/ic_pause.xml b/app/src/main/res/drawable/ic_pause.xml index 3e9e47d43..8f12a68eb 100644 --- a/app/src/main/res/drawable/ic_pause.xml +++ b/app/src/main/res/drawable/ic_pause.xml @@ -2,10 +2,10 @@ - + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + diff --git a/app/src/main/res/drawable/ic_pause_large.xml b/app/src/main/res/drawable/ic_pause_large.xml deleted file mode 100644 index d52e62c9b..000000000 --- a/app/src/main/res/drawable/ic_pause_large.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/drawable/ic_pause_to_play.xml b/app/src/main/res/drawable/ic_pause_to_play.xml deleted file mode 100644 index 0fe1f999f..000000000 --- a/app/src/main/res/drawable/ic_pause_to_play.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_play.xml b/app/src/main/res/drawable/ic_play.xml index d5fe7f27c..f5ef8eae9 100644 --- a/app/src/main/res/drawable/ic_play.xml +++ b/app/src/main/res/drawable/ic_play.xml @@ -2,10 +2,10 @@ - + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + diff --git a/app/src/main/res/drawable/ic_play_large.xml b/app/src/main/res/drawable/ic_play_large.xml deleted file mode 100644 index 7fea70bc7..000000000 --- a/app/src/main/res/drawable/ic_play_large.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/drawable/ic_play_to_pause.xml b/app/src/main/res/drawable/ic_play_to_pause.xml deleted file mode 100644 index 82392726a..000000000 --- a/app/src/main/res/drawable/ic_play_to_pause.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout-land/fragment_compact_playback.xml b/app/src/main/res/layout-land/fragment_compact_playback.xml index 929eb25ea..4e25f0afc 100644 --- a/app/src/main/res/layout-land/fragment_compact_playback.xml +++ b/app/src/main/res/layout-land/fragment_compact_playback.xml @@ -70,7 +70,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" - tools:src="@drawable/ic_pause_large" /> + tools:src="@drawable/ic_pause" /> + tools:src="@drawable/ic_pause" /> + tools:src="@drawable/ic_pause" /> + tools:src="@drawable/ic_pause" /> + tools:src="@drawable/ic_pause" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_playback.xml b/app/src/main/res/layout/fragment_playback.xml index dabb6983e..d76d2198e 100644 --- a/app/src/main/res/layout/fragment_playback.xml +++ b/app/src/main/res/layout/fragment_playback.xml @@ -148,7 +148,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="@+id/playback_song_duration" app:layout_constraintStart_toStartOf="@+id/playback_duration_current" - tools:src="@drawable/ic_pause_large" /> + tools:src="@drawable/ic_pause" /> 136dp 264dp - 72dp + 64dp 36dp 48dp 32dp