diff --git a/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt
index f50f85561..ca1723b8b 100644
--- a/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt
+++ b/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt
@@ -1,10 +1,12 @@
package org.oxycblt.auxio.playback
+import android.graphics.drawable.AnimatedVectorDrawable
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import org.oxycblt.auxio.R
@@ -25,6 +27,13 @@ class CompactPlaybackFragment : Fragment() {
): View? {
val binding = FragmentCompactPlaybackBinding.inflate(inflater)
+ val iconPauseToPlay = ContextCompat.getDrawable(
+ requireContext(), R.drawable.ic_pause_to_play
+ ) as AnimatedVectorDrawable
+ val iconPlayToPause = ContextCompat.getDrawable(
+ requireContext(), R.drawable.ic_play_to_pause
+ ) as AnimatedVectorDrawable
+
// --- UI SETUP ---
binding.lifecycleOwner = this
@@ -59,9 +68,11 @@ class CompactPlaybackFragment : Fragment() {
// TODO: Animate this icon
playbackModel.isPlaying.observe(viewLifecycleOwner) {
if (it) {
- binding.songControls.setImageResource(R.drawable.ic_pause)
+ binding.playbackControls.setImageDrawable(iconPauseToPlay)
+ iconPauseToPlay.start()
} else {
- binding.songControls.setImageResource(R.drawable.ic_play)
+ binding.playbackControls.setImageDrawable(iconPlayToPause)
+ iconPlayToPause.start()
}
}
diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt
index 26d08fab4..10a10e9b8 100644
--- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt
+++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt
@@ -1,10 +1,12 @@
package org.oxycblt.auxio.playback
import android.content.res.ColorStateList
+import android.graphics.drawable.AnimatedVectorDrawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.core.content.ContextCompat
import androidx.fragment.app.activityViewModels
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import org.oxycblt.auxio.R
@@ -28,6 +30,13 @@ class PlaybackFragment : BottomSheetDialogFragment() {
val accentColor = ColorStateList.valueOf(accent.first.toColor(requireContext()))
val white = ColorStateList.valueOf(android.R.color.white.toColor(requireContext()))
+ val iconPauseToPlay = ContextCompat.getDrawable(
+ requireContext(), R.drawable.ic_pause_to_play
+ ) as AnimatedVectorDrawable
+ val iconPlayToPause = ContextCompat.getDrawable(
+ requireContext(), R.drawable.ic_play_to_pause
+ ) as AnimatedVectorDrawable
+
// --- UI SETUP ---
binding.playbackModel = playbackModel
@@ -50,10 +59,14 @@ class PlaybackFragment : BottomSheetDialogFragment() {
playbackModel.isPlaying.observe(viewLifecycleOwner) {
if (it) {
- binding.playbackPlayPause.setImageResource(R.drawable.ic_pause)
+ binding.playbackPlayPause.setImageDrawable(iconPauseToPlay)
+ iconPauseToPlay.start()
+
binding.playbackPlayPause.backgroundTintList = accentColor
} else {
- binding.playbackPlayPause.setImageResource(R.drawable.ic_play)
+ binding.playbackPlayPause.setImageDrawable(iconPlayToPause)
+ iconPlayToPause.start()
+
binding.playbackPlayPause.backgroundTintList = white
}
}
diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt
index 1937b8cd7..ddaed27b6 100644
--- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt
+++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt
@@ -21,7 +21,10 @@ class PlaybackViewModel : ViewModel() {
fun updateSong(song: Song) {
mCurrentSong.value = song
- mIsPlaying.value = true
+
+ if (!mIsPlaying.value!!) {
+ mIsPlaying.value = true
+ }
}
fun openPlayback() {
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 19d2d6f8b..000000000
--- a/app/src/main/res/drawable/ic_pause.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_pause_to_play.xml b/app/src/main/res/drawable/ic_pause_to_play.xml
new file mode 100644
index 000000000..adffcd70d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_pause_to_play.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_play.xml b/app/src/main/res/drawable/ic_play.xml
deleted file mode 100644
index bb18124a6..000000000
--- a/app/src/main/res/drawable/ic_play.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_play_to_pause.xml b/app/src/main/res/drawable/ic_play_to_pause.xml
new file mode 100644
index 000000000..ca802e281
--- /dev/null
+++ b/app/src/main/res/drawable/ic_play_to_pause.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_compact_playback.xml b/app/src/main/res/layout/fragment_compact_playback.xml
index 3a8f010c2..ebc1fd67b 100644
--- a/app/src/main/res/layout/fragment_compact_playback.xml
+++ b/app/src/main/res/layout/fragment_compact_playback.xml
@@ -95,7 +95,8 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
- tools:src="@drawable/ic_play" />
+ tools:src="@drawable/ic_play_to_pause"
+ tools:tint="@color/control_color" />
\ 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 eb2bcc90d..0fb4df347 100644
--- a/app/src/main/res/layout/fragment_playback.xml
+++ b/app/src/main/res/layout/fragment_playback.xml
@@ -119,7 +119,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/playback_seek_bar"
android:backgroundTint="?android:attr/colorPrimary"
- tools:src="@drawable/ic_play" />
+ tools:src="@drawable/ic_play_to_pause" />
\ No newline at end of file