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