From f56000a8be6d43712dffbf4c88a6f2a05b9e4cf4 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Wed, 19 Jan 2022 15:06:43 +0530 Subject: [PATCH] Code Cleanup with abstract variables --- .../base/AbsPlayerControlsFragment.kt | 173 +++++++++++++++--- .../fragments/folder/FoldersFragment.kt | 9 +- .../AdaptivePlaybackControlsFragment.kt | 155 +++------------- .../blur/BlurPlaybackControlsFragment.kt | 163 +++-------------- .../fragments/player/card/CardFragment.kt | 10 +- .../card/CardPlaybackControlsFragment.kt | 154 +++------------- .../player/cardblur/CardBlurFragment.kt | 3 +- .../CardBlurPlaybackControlsFragment.kt | 139 ++------------ .../player/circle/CirclePlayerFragment.kt | 13 +- .../color/ColorPlaybackControlsFragment.kt | 145 +++------------ .../player/fit/FitPlaybackControlsFragment.kt | 162 +++------------- .../flat/FlatPlaybackControlsFragment.kt | 111 ++--------- .../full/FullPlaybackControlsFragment.kt | 113 ++---------- .../player/home/HomePlayerFragment.kt | 1 - .../lockscreen/LockScreenControlsFragment.kt | 121 ++---------- .../material/MaterialControlsFragment.kt | 126 ++----------- .../fragments/player/normal/PlayerFragment.kt | 3 +- .../normal/PlayerPlaybackControlsFragment.kt | 139 +++----------- .../player/peak/PeakPlayerControlFragment.kt | 126 ++----------- .../plain/PlainPlaybackControlsFragment.kt | 157 ++-------------- .../simple/SimplePlaybackControlsFragment.kt | 126 +++---------- .../tiny/TinyPlaybackControlsFragment.kt | 74 +------- .../player/tiny/TinyPlayerFragment.kt | 6 +- .../fragment_tiny_controls_fragment.xml | 4 +- 24 files changed, 461 insertions(+), 1772 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerControlsFragment.kt index f0e0bbcc7..716759e91 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerControlsFragment.kt @@ -14,15 +14,23 @@ */ package code.name.monkey.retromusic.fragments.base +import android.annotation.SuppressLint +import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.AccelerateInterpolator import android.view.animation.DecelerateInterpolator +import android.widget.ImageButton +import android.widget.SeekBar import androidx.annotation.LayoutRes import androidx.core.view.isVisible import code.name.monkey.retromusic.R +import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.other.VolumeFragment +import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper +import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener +import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -37,37 +45,74 @@ abstract class AbsPlayerControlsFragment(@LayoutRes layout: Int) : AbsMusicServi protected abstract fun hide() - protected abstract fun updateShuffleState() - - protected abstract fun updateRepeatState() - - protected abstract fun setUpProgressSlider() - abstract fun setColor(color: MediaNotificationProcessor) - fun showBounceAnimation(view: View) { - view.apply { - clearAnimation() - scaleX = 0.9f - scaleY = 0.9f - isVisible = true - pivotX = (view.width / 2).toFloat() - pivotY = (view.height / 2).toFloat() + var lastPlaybackControlsColor: Int = 0 - animate().setDuration(200) - .setInterpolator(DecelerateInterpolator()) - .scaleX(1.1f) - .scaleY(1.1f) - .withEndAction { - animate().setDuration(200) - .setInterpolator(AccelerateInterpolator()) - .scaleX(1f) - .scaleY(1f) - .alpha(1f) - .start() + var lastDisabledPlaybackControlsColor: Int = 0 + + open val seekBar: SeekBar? = null + + abstract val shuffleButton: ImageButton + + abstract val repeatButton: ImageButton + + open val nextButton: ImageButton? = null + + open val previousButton: ImageButton? = null + + private fun setUpProgressSlider() { + seekBar?.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { + override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { + if (fromUser) { + progressViewUpdateHelper.stop() + onUpdateProgressViews( + MusicPlayerRemote.songProgressMillis, + MusicPlayerRemote.songDurationMillis + ) } - .start() - } + } + + override fun onStopTrackingTouch(seekBar: SeekBar) { + super.onStopTrackingTouch(seekBar) + MusicPlayerRemote.seekTo(seekBar.progress) + onUpdateProgressViews( + MusicPlayerRemote.songProgressMillis, + MusicPlayerRemote.songDurationMillis + ) + progressViewUpdateHelper.start() + } + }) + } + + private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) + } + + fun View.showBounceAnimation() { + clearAnimation() + scaleX = 0.9f + scaleY = 0.9f + isVisible = true + pivotX = (width / 2).toFloat() + pivotY = (height / 2).toFloat() + + animate().setDuration(200) + .setInterpolator(DecelerateInterpolator()) + .scaleX(1.1f) + .scaleY(1.1f) + .withEndAction { + animate().setDuration(200) + .setInterpolator(AccelerateInterpolator()) + .scaleX(1f) + .scaleY(1f) + .alpha(1f) + .start() + } + .start() } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -75,6 +120,68 @@ abstract class AbsPlayerControlsFragment(@LayoutRes layout: Int) : AbsMusicServi hideVolumeIfAvailable() } + override fun onStart() { + super.onStart() + setUpProgressSlider() + setUpPrevNext() + setUpShuffleButton() + setUpRepeatButton() + } + + @SuppressLint("ClickableViewAccessibility") + private fun setUpPrevNext() { + nextButton?.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) + previousButton?.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) + } + + private fun setUpShuffleButton() { + shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } + } + + private fun setUpRepeatButton() { + repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } + } + + fun updatePrevNextColor() { + nextButton?.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) + previousButton?.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) + } + + fun updateShuffleState() { + shuffleButton.setColorFilter( + when (MusicPlayerRemote.shuffleMode) { + MusicService.SHUFFLE_MODE_SHUFFLE -> lastPlaybackControlsColor + else -> lastDisabledPlaybackControlsColor + }, PorterDuff.Mode.SRC_IN + ) + } + + fun updateRepeatState() { + when (MusicPlayerRemote.repeatMode) { + MusicService.REPEAT_MODE_NONE -> { + repeatButton.setImageResource(R.drawable.ic_repeat) + repeatButton.setColorFilter( + lastDisabledPlaybackControlsColor, + PorterDuff.Mode.SRC_IN + ) + } + MusicService.REPEAT_MODE_ALL -> { + repeatButton.setImageResource(R.drawable.ic_repeat) + repeatButton.setColorFilter( + lastPlaybackControlsColor, + PorterDuff.Mode.SRC_IN + ) + } + MusicService.REPEAT_MODE_THIS -> { + repeatButton.setImageResource(R.drawable.ic_repeat_one) + repeatButton.setColorFilter( + lastPlaybackControlsColor, + PorterDuff.Mode.SRC_IN + ) + } + } + } + protected var volumeFragment: VolumeFragment? = null private fun hideVolumeIfAvailable() { @@ -83,10 +190,20 @@ abstract class AbsPlayerControlsFragment(@LayoutRes layout: Int) : AbsMusicServi .replace(R.id.volumeFragmentContainer, VolumeFragment()).commit() childFragmentManager.executePendingTransactions() volumeFragment = - childFragmentManager.findFragmentById(R.id.volumeFragmentContainer) as VolumeFragment? + childFragmentManager.findFragmentById(R.id.volumeFragmentContainer) as? VolumeFragment } } + override fun onResume() { + super.onResume() + progressViewUpdateHelper.start() + } + + override fun onPause() { + super.onPause() + progressViewUpdateHelper.stop() + } + companion object { const val SLIDER_ANIMATION_TIME: Long = 400 } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt index 2c161c27e..1603394e1 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt @@ -40,6 +40,7 @@ import code.name.monkey.retromusic.adapter.Storage import code.name.monkey.retromusic.adapter.StorageAdapter import code.name.monkey.retromusic.adapter.StorageClickListener import code.name.monkey.retromusic.databinding.FragmentFolderBinding +import code.name.monkey.retromusic.databinding.FragmentPlayerPlaybackControlsBinding import code.name.monkey.retromusic.extensions.* import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.fragments.folder.FoldersFragment.ListPathsAsyncTask.OnPathsListedCallback @@ -93,14 +94,10 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder), } } private var storageItems = ArrayList() - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View { - _binding = FragmentFolderBinding.inflate(inflater, container, false) - return binding.root - } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + _binding = FragmentFolderBinding.bind(view) + mainActivity.addMusicServiceEventListener(libraryViewModel) mainActivity.setSupportActionBar(binding.toolbar) mainActivity.supportActionBar?.title = null diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt index 6524ccf7a..d7b6f52b9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt @@ -15,13 +15,10 @@ package code.name.monkey.retromusic.fragments.player.adaptive import android.animation.ObjectAnimator -import android.annotation.SuppressLint -import android.graphics.PorterDuff import android.os.Bundle -import android.view.LayoutInflater import android.view.View -import android.view.ViewGroup import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ATHUtil @@ -31,13 +28,8 @@ import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.retromusic.R import code.name.monkey.retromusic.databinding.FragmentAdaptivePlayerPlaybackControlsBinding import code.name.monkey.retromusic.extensions.* -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper -import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -45,38 +37,29 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class AdaptivePlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_adaptive_player_playback_controls) { - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private var progressViewUpdateHelper: MusicProgressViewUpdateHelper? = null private var _binding: FragmentAdaptivePlayerPlaybackControlsBinding? = null private val binding get() = _binding!! - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val seekBar: SeekBar + get() = binding.progressSlider - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - _binding = FragmentAdaptivePlayerPlaybackControlsBinding.inflate(inflater, container, false) - return binding.root - } + override val shuffleButton: ImageButton + get() = binding.shuffleButton + + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - setUpMusicControllers() + _binding = FragmentAdaptivePlayerPlaybackControlsBinding.bind(view) - binding.playPauseButton.setOnClickListener { - if (MusicPlayerRemote.isPlaying) { - MusicPlayerRemote.pauseSong() - } else { - MusicPlayerRemote.resumePlaying() - } - showBounceAnimation(binding.playPauseButton) - } + setUpPlayPauseFab() } private fun updateSong() { @@ -88,16 +71,6 @@ class AdaptivePlaybackControlsFragment : } } - override fun onResume() { - super.onResume() - progressViewUpdateHelper!!.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper!!.stop() - } - override fun onPlayingMetaChanged() { super.onPlayingMetaChanged() updateSong() @@ -165,7 +138,14 @@ class AdaptivePlaybackControlsFragment : } private fun setUpPlayPauseFab() { - binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) + binding.playPauseButton.setOnClickListener { + if (MusicPlayerRemote.isPlaying) { + MusicPlayerRemote.pauseSong() + } else { + MusicPlayerRemote.resumePlaying() + } + it.showBounceAnimation() + } } private fun updatePlayPauseDrawableState() { @@ -176,92 +156,9 @@ class AdaptivePlaybackControlsFragment : } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } + override fun show() {} - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun show() { - } - - override fun hide() { - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } + override fun hide() {} override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlaybackControlsFragment.kt index 06cccfc4b..29d094d45 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlaybackControlsFragment.kt @@ -15,14 +15,13 @@ package code.name.monkey.retromusic.fragments.player.blur import android.animation.ObjectAnimator -import android.annotation.SuppressLint import android.graphics.Color -import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.AccelerateInterpolator import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import androidx.core.content.ContextCompat import androidx.core.view.isVisible @@ -34,15 +33,10 @@ import code.name.monkey.retromusic.databinding.FragmentBlurPlayerPlaybackControl import code.name.monkey.retromusic.extensions.getSongInfo import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.show -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.goToAlbum import code.name.monkey.retromusic.fragments.base.goToArtist import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper -import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -51,28 +45,26 @@ class BlurPlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_blur_player_playback_controls) { private var _binding: FragmentBlurPlayerPlaybackControlsBinding? = null private val binding get() = _binding!! - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private var progressViewUpdateHelper: MusicProgressViewUpdateHelper? = null - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val seekBar: SeekBar + get() = binding.progressSlider + + override val shuffleButton: ImageButton + get() = binding.shuffleButton + + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentBlurPlayerPlaybackControlsBinding.bind(view) - setUpMusicControllers() - - binding.playPauseButton.setOnClickListener { - if (MusicPlayerRemote.isPlaying) { - MusicPlayerRemote.pauseSong() - } else { - MusicPlayerRemote.resumePlaying() - } - showBounceAnimation() - } + setUpPlayPauseFab() binding.title.isSelected = true binding.text.isSelected = true binding.title.setOnClickListener { @@ -96,16 +88,6 @@ class BlurPlaybackControlsFragment : } } - override fun onResume() { - super.onResume() - progressViewUpdateHelper!!.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper!!.stop() - } - override fun onServiceConnected() { updatePlayPauseDrawableState() updateRepeatState() @@ -162,7 +144,14 @@ class BlurPlaybackControlsFragment : } private fun setUpPlayPauseFab() { - binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) + binding.playPauseButton.setOnClickListener { + if (MusicPlayerRemote.isPlaying) { + MusicPlayerRemote.pauseSong() + } else { + MusicPlayerRemote.resumePlaying() + } + it.showBounceAnimation() + } } private fun updatePlayPauseDrawableState() { @@ -173,73 +162,6 @@ class BlurPlaybackControlsFragment : } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - public override fun show() { binding.playPauseButton.animate() .scaleX(1f) @@ -257,43 +179,6 @@ class BlurPlaybackControlsFragment : } } - private fun showBounceAnimation() { - binding.playPauseButton.apply { - clearAnimation() - scaleX = 0.9f - scaleY = 0.9f - isVisible = true - pivotX = (width / 2).toFloat() - pivotY = (height / 2).toFloat() - - animate().setDuration(200) - .setInterpolator(DecelerateInterpolator()) - .scaleX(1.1f) - .scaleY(1.1f) - .withEndAction { - animate().setDuration(200) - .setInterpolator(AccelerateInterpolator()) - .scaleX(1f) - .scaleY(1f) - .alpha(1f).start() - }.start() - } - } - - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardFragment.kt index 3afb91669..1a6c7acb7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardFragment.kt @@ -96,11 +96,13 @@ class CardFragment : AbsPlayerFragment(R.layout.fragment_card_player) { } private fun setUpPlayerToolbar() { - binding.playerToolbar.inflateMenu(R.menu.menu_player) - binding.playerToolbar.setNavigationOnClickListener { requireActivity().onBackPressed() } - binding.playerToolbar.setOnMenuItemClickListener(this) + binding.playerToolbar.apply { + inflateMenu(R.menu.menu_player) + setNavigationOnClickListener { requireActivity().onBackPressed() } + setOnMenuItemClickListener(this@CardFragment) - ToolbarContentTintHelper.colorizeToolbar(binding.playerToolbar, Color.WHITE, activity) + ToolbarContentTintHelper.colorizeToolbar(this, Color.WHITE, activity) + } } override fun onServiceConnected() { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt index 80df1ddb0..ae6816d42 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt @@ -15,11 +15,11 @@ package code.name.monkey.retromusic.fragments.player.card import android.animation.ObjectAnimator -import android.annotation.SuppressLint import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ATHUtil @@ -32,15 +32,10 @@ import code.name.monkey.retromusic.extensions.getSongInfo import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.ripAlpha import code.name.monkey.retromusic.extensions.show -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.goToAlbum import code.name.monkey.retromusic.fragments.base.goToArtist import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper -import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -48,31 +43,29 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class CardPlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_card_player_playback_controls) { - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private var progressViewUpdateHelper: MusicProgressViewUpdateHelper? = null + private var _binding: FragmentCardPlayerPlaybackControlsBinding? = null private val binding get() = _binding!! + override val seekBar: SeekBar + get() = binding.progressSlider - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val shuffleButton: ImageButton + get() = binding.mediaButton.shuffleButton + + override val repeatButton: ImageButton + get() = binding.mediaButton.repeatButton + + override val nextButton: ImageButton + get() = binding.mediaButton.nextButton + + override val previousButton: ImageButton + get() = binding.mediaButton.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentCardPlayerPlaybackControlsBinding.bind(view) - setUpMusicControllers() - - binding.mediaButton.playPauseButton.setOnClickListener { - if (MusicPlayerRemote.isPlaying) { - MusicPlayerRemote.pauseSong() - } else { - MusicPlayerRemote.resumePlaying() - } - showBounceAnimation(binding.mediaButton.playPauseButton) - } + setUpPlayPauseFab() binding.title.isSelected = true binding.text.isSelected = true binding.title.setOnClickListener { @@ -96,16 +89,6 @@ class CardPlaybackControlsFragment : } } - override fun onResume() { - super.onResume() - progressViewUpdateHelper!!.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper!!.stop() - } - override fun onServiceConnected() { updatePlayPauseDrawableState() updateRepeatState() @@ -169,7 +152,14 @@ class CardPlaybackControlsFragment : } private fun setUpPlayPauseFab() { - binding.mediaButton.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) + binding.mediaButton.playPauseButton.setOnClickListener { + if (MusicPlayerRemote.isPlaying) { + MusicPlayerRemote.pauseSong() + } else { + MusicPlayerRemote.resumePlaying() + } + it.showBounceAnimation() + } } private fun updatePlayPauseDrawableState() { @@ -180,79 +170,6 @@ class CardPlaybackControlsFragment : } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.mediaButton.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.mediaButton.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.mediaButton.nextButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - binding.mediaButton.previousButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - - private fun setUpShuffleButton() { - binding.mediaButton.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.mediaButton.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.mediaButton.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.mediaButton.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.mediaButton.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.mediaButton.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.mediaButton.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.mediaButton.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.mediaButton.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.mediaButton.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total @@ -271,28 +188,9 @@ class CardPlaybackControlsFragment : binding.songCurrentProgress.setTextColor(color) } - public override fun show() { - // Ignore - } - - public override fun hide() { - // Ignore - } - - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } + public override fun show() {} + public override fun hide() {} override fun onDestroyView() { super.onDestroyView() diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurFragment.kt index f7161a0ec..ef45e01ca 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurFragment.kt @@ -111,7 +111,8 @@ class CardBlurFragment : AbsPlayerFragment(R.layout.fragment_card_blur_player), setTitleTextColor(Color.WHITE) setSubtitleTextColor(Color.WHITE) ToolbarContentTintHelper.colorizeToolbar(binding.playerToolbar, Color.WHITE, activity) - }.setOnMenuItemClickListener(this) + setOnMenuItemClickListener(this@CardBlurFragment) + } } override fun onServiceConnected() { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt index 1922b287e..14b76961d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt @@ -15,13 +15,12 @@ package code.name.monkey.retromusic.fragments.player.cardblur import android.animation.ObjectAnimator -import android.annotation.SuppressLint import android.graphics.Color -import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.TintHelper @@ -31,13 +30,9 @@ import code.name.monkey.retromusic.extensions.applyColor import code.name.monkey.retromusic.extensions.getSongInfo import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.show -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -45,23 +40,29 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class CardBlurPlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_card_blur_player_playback_controls) { - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper - private var _binding: FragmentCardBlurPlayerPlaybackControlsBinding? = null private val binding get() = _binding!! + override val seekBar: SeekBar + get() = binding.progressSlider - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val shuffleButton: ImageButton + get() = binding.mediaButton.shuffleButton + + override val repeatButton: ImageButton + get() = binding.mediaButton.repeatButton + + override val nextButton: ImageButton + get() = binding.mediaButton.nextButton + + override val previousButton: ImageButton + get() = binding.mediaButton.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentCardBlurPlayerPlaybackControlsBinding.bind(view) - setUpMusicControllers() + setUpPlayPauseFab() + binding.progressSlider.applyColor(Color.WHITE) } override fun setColor(color: MediaNotificationProcessor) { @@ -98,16 +99,6 @@ class CardBlurPlaybackControlsFragment : binding.songInfo.setTextColor(color) } - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } - override fun onServiceConnected() { updatePlayPauseDrawableState() updateRepeatState() @@ -141,89 +132,6 @@ class CardBlurPlaybackControlsFragment : updateShuffleState() } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.mediaButton.nextButton.setOnTouchListener( - MusicSeekSkipTouchListener( - requireActivity(), - true - ) - ) - binding.mediaButton.previousButton.setOnTouchListener( - MusicSeekSkipTouchListener( - requireActivity(), - false - ) - ) - } - - private fun updatePrevNextColor() { - binding.mediaButton.nextButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - binding.mediaButton.previousButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - - private fun setUpShuffleButton() { - binding.mediaButton.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.mediaButton.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.mediaButton.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.mediaButton.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.mediaButton.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.mediaButton.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.mediaButton.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.mediaButton.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.mediaButton.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.mediaButton.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - public override fun show() { binding.mediaButton.playPauseButton.animate() .scaleX(1f) @@ -241,21 +149,6 @@ class CardBlurPlaybackControlsFragment : } } - override fun setUpProgressSlider() { - binding.progressSlider.applyColor(Color.WHITE) - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt index 4f04959bd..4827980f8 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/circle/CirclePlayerFragment.kt @@ -23,9 +23,7 @@ import android.graphics.drawable.ColorDrawable import android.graphics.drawable.Drawable import android.media.AudioManager import android.os.Bundle -import android.view.LayoutInflater import android.view.View -import android.view.ViewGroup import android.view.animation.Animation import android.view.animation.LinearInterpolator import android.widget.SeekBar @@ -79,17 +77,10 @@ class CirclePlayerFragment : AbsPlayerFragment(R.layout.fragment_circle_player), progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) } - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - _binding = FragmentCirclePlayerBinding.inflate(inflater, container, false) - return binding.root - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + _binding = FragmentCirclePlayerBinding.bind(view) + setupViews() binding.title.isSelected = true binding.title.setOnClickListener { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt index 4473a436a..047713b4d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt @@ -16,17 +16,14 @@ package code.name.monkey.retromusic.fragments.player.color import android.animation.Animator import android.animation.ObjectAnimator -import android.annotation.SuppressLint import android.graphics.Color -import android.graphics.PorterDuff import android.os.Bundle -import android.view.LayoutInflater import android.view.View import android.view.ViewAnimationUtils -import android.view.ViewGroup import android.view.animation.AccelerateInterpolator import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.TintHelper @@ -36,15 +33,10 @@ import code.name.monkey.retromusic.extensions.applyColor import code.name.monkey.retromusic.extensions.getSongInfo import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.show -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.goToAlbum import code.name.monkey.retromusic.fragments.base.goToArtist import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper -import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -53,40 +45,29 @@ import kotlin.math.sqrt class ColorPlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_adaptive_player_playback_controls) { - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper private var _binding: FragmentColorPlayerPlaybackControlsBinding? = null private val binding get() = _binding!! + override val seekBar: SeekBar + get() = binding.progressSlider - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val shuffleButton: ImageButton + get() = binding.shuffleButton - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - _binding = FragmentColorPlayerPlaybackControlsBinding.inflate(inflater, container, false) - return binding.root - } + override val repeatButton: ImageButton + get() = binding.repeatButton - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } + override val nextButton: ImageButton + get() = binding.nextButton - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } + override val previousButton: ImageButton + get() = binding.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - setUpMusicControllers() + _binding = FragmentColorPlayerPlaybackControlsBinding.bind(view) + + setUpPlayPauseFab() binding.title.isSelected = true binding.text.isSelected = true binding.title.setOnClickListener { @@ -157,81 +138,23 @@ class ColorPlaybackControlsFragment : private fun setUpPlayPauseFab() { TintHelper.setTintAuto(binding.playPauseButton, Color.WHITE, true) TintHelper.setTintAuto(binding.playPauseButton, Color.BLACK, false) - binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) + binding.playPauseButton.setOnClickListener { + if (MusicPlayerRemote.isPlaying) { + MusicPlayerRemote.pauseSong() + } else { + MusicPlayerRemote.resumePlaying() + } + it.showBounceAnimation() + } } private fun updatePlayPauseDrawableState() { - when { - MusicPlayerRemote.isPlaying -> binding.playPauseButton.setImageResource(R.drawable.ic_pause) - else -> binding.playPauseButton.setImageResource(R.drawable.ic_play_arrow) - } - } - - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) + binding.playPauseButton.setImageResource( + when { + MusicPlayerRemote.isPlaying -> R.drawable.ic_pause + else -> R.drawable.ic_play_arrow } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } + ) } public override fun show() { @@ -251,20 +174,6 @@ class ColorPlaybackControlsFragment : } } - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt index d02c3ad68..e1352a781 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt @@ -15,13 +15,12 @@ package code.name.monkey.retromusic.fragments.player.fit import android.animation.ObjectAnimator -import android.annotation.SuppressLint -import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.AccelerateInterpolator import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import androidx.core.view.isVisible import code.name.monkey.appthemehelper.ThemeStore @@ -31,38 +30,39 @@ import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.retromusic.R import code.name.monkey.retromusic.databinding.FragmentFitPlaybackControlsBinding import code.name.monkey.retromusic.extensions.* -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.goToAlbum import code.name.monkey.retromusic.fragments.base.goToArtist import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper -import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class FitPlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_fit_playback_controls) { + private var _binding: FragmentFitPlaybackControlsBinding? = null private val binding get() = _binding!! + override val seekBar: SeekBar + get() = binding.progressSlider - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper + override val shuffleButton: ImageButton + get() = binding.shuffleButton - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentFitPlaybackControlsBinding.bind(view) - setUpMusicControllers() + setUpPlayPauseFab() binding.title.isSelected = true binding.text.isSelected = true @@ -73,15 +73,6 @@ class FitPlaybackControlsFragment : binding.text.setOnClickListener { goToArtist(requireActivity()) } - - binding.playPauseButton.setOnClickListener { - if (MusicPlayerRemote.isPlaying) { - MusicPlayerRemote.pauseSong() - } else { - MusicPlayerRemote.resumePlaying() - } - showBounceAnimation() - } } private fun updateSong() { @@ -96,16 +87,6 @@ class FitPlaybackControlsFragment : } } - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } - override fun onServiceConnected() { updatePlayPauseDrawableState() updateRepeatState() @@ -166,7 +147,14 @@ class FitPlaybackControlsFragment : } private fun setUpPlayPauseFab() { - binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) + binding.playPauseButton.setOnClickListener { + if (MusicPlayerRemote.isPlaying) { + MusicPlayerRemote.pauseSong() + } else { + MusicPlayerRemote.resumePlaying() + } + it.showBounceAnimation() + } } private fun updatePlayPauseDrawableState() { @@ -177,73 +165,6 @@ class FitPlaybackControlsFragment : } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - public override fun show() { binding.playPauseButton.animate() .scaleX(1f) @@ -261,43 +182,6 @@ class FitPlaybackControlsFragment : } } - private fun showBounceAnimation() { - binding.playPauseButton.apply { - clearAnimation() - scaleX = 0.9f - scaleY = 0.9f - isVisible = true - pivotX = (width / 2).toFloat() - pivotY = (height / 2).toFloat() - - animate().setDuration(200) - .setInterpolator(DecelerateInterpolator()) - .scaleX(1.1f) - .scaleY(1.1f) - .withEndAction { - animate().setDuration(200) - .setInterpolator(AccelerateInterpolator()) - .scaleX(1f) - .scaleY(1f) - .alpha(1f).start() - }.start() - } - } - - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt index c258edd49..1dbf28b02 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt @@ -15,11 +15,11 @@ package code.name.monkey.retromusic.fragments.player.flat import android.animation.ObjectAnimator -import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ATHUtil @@ -33,11 +33,8 @@ import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.goToAlbum import code.name.monkey.retromusic.fragments.base.goToArtist import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper.Callback import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -45,22 +42,28 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class FlatPlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_flat_player_playback_controls), Callback { - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper private var _binding: FragmentFlatPlayerPlaybackControlsBinding? = null private val binding get() = _binding!! + override val seekBar: SeekBar + get() = binding.progressSlider - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val shuffleButton: ImageButton + get() = binding.shuffleButton + + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton? + get() = null + + override val previousButton: ImageButton? + get() = null override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentFlatPlayerPlaybackControlsBinding.bind(view) - setUpMusicControllers() + binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) binding.title.isSelected = true binding.text.isSelected = true binding.title.setOnClickListener { @@ -71,16 +74,6 @@ class FlatPlaybackControlsFragment : } } - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } - public override fun show() { binding.playPauseButton.animate() .scaleX(1f) @@ -157,10 +150,6 @@ class FlatPlaybackControlsFragment : updatePlayPauseDrawableState() } - private fun setUpPlayPauseFab() { - binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) - } - private fun updatePlayPauseDrawableState() { if (MusicPlayerRemote.isPlaying) { binding.playPauseButton.setImageResource(R.drawable.ic_pause) @@ -169,13 +158,6 @@ class FlatPlaybackControlsFragment : } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - private fun updateSong() { val song = MusicPlayerRemote.currentSong binding.title.text = song.title @@ -196,67 +178,6 @@ class FlatPlaybackControlsFragment : updateShuffleState() } - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total @@ -273,4 +194,4 @@ class FlatPlaybackControlsFragment : super.onDestroyView() _binding = null } -} +} \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt index e13e73bb7..50994ad67 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt @@ -15,11 +15,9 @@ package code.name.monkey.retromusic.fragments.player.full import android.animation.ObjectAnimator -import android.annotation.SuppressLint import android.content.Intent import android.content.res.ColorStateList import android.graphics.Color -import android.graphics.PorterDuff import android.graphics.drawable.AnimatedVectorDrawable import android.graphics.drawable.Drawable import android.os.Bundle @@ -27,6 +25,7 @@ import android.view.MenuItem import android.view.View import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import androidx.appcompat.widget.PopupMenu import androidx.lifecycle.lifecycleScope @@ -41,13 +40,11 @@ import code.name.monkey.retromusic.extensions.getSongInfo import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.show import code.name.monkey.retromusic.fragments.LibraryViewModel -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.ReloadType import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.goToAlbum import code.name.monkey.retromusic.fragments.base.goToArtist import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener import code.name.monkey.retromusic.model.Song @@ -69,17 +66,24 @@ class FullPlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_full_player_controls), PopupMenu.OnMenuItemClickListener { - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper private val libraryViewModel: LibraryViewModel by sharedViewModel() private var _binding: FragmentFullPlayerControlsBinding? = null private val binding get() = _binding!! - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val seekBar: SeekBar + get() = binding.progressSlider + + override val shuffleButton: ImageButton + get() = binding.shuffleButton + + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -97,16 +101,6 @@ class FullPlaybackControlsFragment : } } - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } - public override fun show() { binding.playPauseButton.animate() .scaleX(1f) @@ -193,10 +187,6 @@ class FullPlaybackControlsFragment : private fun setUpMusicControllers() { setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() setupFavourite() setupMenu() } @@ -216,32 +206,6 @@ class FullPlaybackControlsFragment : return (parentFragment as FullPlayerFragment).onMenuItemClick(item!!) } - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total @@ -262,53 +226,6 @@ class FullPlaybackControlsFragment : updateShuffleState() } - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - private fun setupFavourite() { binding.songFavourite.setOnClickListener { toggleFavorite(MusicPlayerRemote.currentSong) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/home/HomePlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/home/HomePlayerFragment.kt index 981e55f29..d9ae39ffa 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/home/HomePlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/home/HomePlayerFragment.kt @@ -37,7 +37,6 @@ class HomePlayerFragment : AbsPlayerFragment(R.layout.fragment_home_player), private var _binding: FragmentHomePlayerBinding? = null private val binding get() = _binding!! - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt index b8577ce0a..e2036be57 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt @@ -15,12 +15,11 @@ package code.name.monkey.retromusic.fragments.player.lockscreen import android.animation.ObjectAnimator -import android.annotation.SuppressLint -import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ColorUtil @@ -31,13 +30,9 @@ import code.name.monkey.retromusic.databinding.FragmentLockScreenPlaybackControl import code.name.monkey.retromusic.extensions.applyColor import code.name.monkey.retromusic.extensions.ripAlpha import code.name.monkey.retromusic.extensions.textColorSecondary -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -48,23 +43,28 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class LockScreenControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_lock_screen_playback_controls) { - private var progressViewUpdateHelper: MusicProgressViewUpdateHelper? = null - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private var _binding: FragmentLockScreenPlaybackControlsBinding? = null private val binding get() = _binding!! + override val seekBar: SeekBar + get() = binding.progressSlider - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val shuffleButton: ImageButton + get() = binding.shuffleButton + + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentLockScreenPlaybackControlsBinding.bind(view) - setUpMusicControllers() + setUpPlayPauseFab() binding.title.isSelected = true } @@ -74,16 +74,6 @@ class LockScreenControlsFragment : binding.text.text = String.format("%s - %s", song.artistName, song.albumName) } - override fun onResume() { - super.onResume() - progressViewUpdateHelper?.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper?.stop() - } - override fun onServiceConnected() { updatePlayPauseDrawableState() updateRepeatState() @@ -159,73 +149,6 @@ class LockScreenControlsFragment : } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpProgressSlider() - setUpShuffleButton() - setUpRepeatButton() - } - - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - public override fun show() { binding.playPauseButton.animate() .scaleX(1f) @@ -243,20 +166,6 @@ class LockScreenControlsFragment : } } - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt index de4101695..348bf6e15 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt @@ -15,11 +15,11 @@ package code.name.monkey.retromusic.fragments.player.material import android.animation.ObjectAnimator -import android.annotation.SuppressLint import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import androidx.core.content.ContextCompat import code.name.monkey.appthemehelper.util.ATHUtil @@ -27,15 +27,11 @@ import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.retromusic.R import code.name.monkey.retromusic.databinding.FragmentMaterialPlaybackControlsBinding import code.name.monkey.retromusic.extensions.* -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.goToAlbum import code.name.monkey.retromusic.fragments.base.goToArtist import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -46,22 +42,29 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class MaterialControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_material_playback_controls) { - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper + private var _binding: FragmentMaterialPlaybackControlsBinding? = null private val binding get() = _binding!! + override val seekBar: SeekBar + get() = binding.progressSlider - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val shuffleButton: ImageButton + get() = binding.shuffleButton + + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentMaterialPlaybackControlsBinding.bind(view) - setUpMusicControllers() + setUpPlayPauseFab() binding.title.isSelected = true binding.text.isSelected = true binding.title.setOnClickListener { @@ -85,16 +88,6 @@ class MaterialControlsFragment : } } - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } - override fun onServiceConnected() { updatePlayPauseDrawableState() updateRepeatState() @@ -177,92 +170,9 @@ class MaterialControlsFragment : } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } + public override fun show() {} - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_sharp) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_sharp) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one_sharp) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - - public override fun show() { - } - - public override fun hide() { - } - - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } + public override fun hide() {} override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerFragment.kt index f663d7d7e..fd3327ca9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerFragment.kt @@ -29,6 +29,7 @@ import code.name.monkey.retromusic.SNOWFALL import code.name.monkey.retromusic.databinding.FragmentPlayerBinding import code.name.monkey.retromusic.extensions.colorControlNormal import code.name.monkey.retromusic.extensions.drawAboveSystemBars +import code.name.monkey.retromusic.extensions.isColorLight import code.name.monkey.retromusic.extensions.surfaceColor import code.name.monkey.retromusic.fragments.base.AbsPlayerFragment import code.name.monkey.retromusic.fragments.player.PlayerAlbumCoverFragment @@ -167,7 +168,7 @@ class PlayerFragment : AbsPlayerFragment(R.layout.fragment_player), } private fun startOrStopSnow(isSnowFalling: Boolean) { - if (isSnowFalling) { + if (isSnowFalling && !surfaceColor().isColorLight) { binding.snowfallView.isVisible = true binding.snowfallView.restartFalling() } else { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt index cdb4ed99b..83910a778 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt @@ -15,12 +15,11 @@ package code.name.monkey.retromusic.fragments.player.normal import android.animation.ObjectAnimator -import android.annotation.SuppressLint -import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ATHUtil @@ -30,15 +29,10 @@ import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.retromusic.R import code.name.monkey.retromusic.databinding.FragmentPlayerPlaybackControlsBinding import code.name.monkey.retromusic.extensions.* -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.goToAlbum import code.name.monkey.retromusic.fragments.base.goToArtist import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper -import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -46,29 +40,29 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class PlayerPlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_player_playback_controls) { - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper private var _binding: FragmentPlayerPlaybackControlsBinding? = null private val binding get() = _binding!! - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val seekBar: SeekBar + get() = binding.progressSlider + + override val shuffleButton: ImageButton + get() = binding.shuffleButton + + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentPlayerPlaybackControlsBinding.bind(view) - setUpMusicControllers() - binding.playPauseButton.setOnClickListener { - if (MusicPlayerRemote.isPlaying) { - MusicPlayerRemote.pauseSong() - } else { - MusicPlayerRemote.resumePlaying() - } - showBounceAnimation(binding.playPauseButton) - } + + setUpPlayPauseFab() binding.title.isSelected = true binding.text.isSelected = true binding.title.setOnClickListener { @@ -128,15 +122,6 @@ class PlayerPlaybackControlsFragment : } } - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } override fun onServiceConnected() { updatePlayPauseDrawableState() @@ -163,7 +148,14 @@ class PlayerPlaybackControlsFragment : } private fun setUpPlayPauseFab() { - binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) + binding.playPauseButton.setOnClickListener { + if (MusicPlayerRemote.isPlaying) { + MusicPlayerRemote.pauseSong() + } else { + MusicPlayerRemote.resumePlaying() + } + it.showBounceAnimation() + } } private fun updatePlayPauseDrawableState() { @@ -174,73 +166,6 @@ class PlayerPlaybackControlsFragment : } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - public override fun show() { binding.playPauseButton.animate() .scaleX(1f) @@ -258,20 +183,6 @@ class PlayerPlaybackControlsFragment : } } - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/peak/PeakPlayerControlFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/peak/PeakPlayerControlFragment.kt index 6ca08fa2b..bae2a7a28 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/peak/PeakPlayerControlFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/peak/PeakPlayerControlFragment.kt @@ -15,12 +15,12 @@ package code.name.monkey.retromusic.fragments.player.peak import android.animation.ObjectAnimator -import android.annotation.SuppressLint import android.graphics.Color import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ATHUtil @@ -29,13 +29,9 @@ import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.retromusic.R import code.name.monkey.retromusic.databinding.FragmentPeakControlPlayerBinding import code.name.monkey.retromusic.extensions.applyColor -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -46,26 +42,23 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class PeakPlayerControlFragment : AbsPlayerControlsFragment(R.layout.fragment_peak_control_player) { - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 private var _binding: FragmentPeakControlPlayerBinding? = null private val binding get() = _binding!! - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } + override val seekBar: SeekBar + get() = binding.progressSlider - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } + override val shuffleButton: ImageButton + get() = binding.shuffleButton - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton override fun onViewCreated( view: View, @@ -73,14 +66,12 @@ class PeakPlayerControlFragment : AbsPlayerControlsFragment(R.layout.fragment_pe ) { super.onViewCreated(view, savedInstanceState) _binding = FragmentPeakControlPlayerBinding.bind(view) - setUpMusicControllers() + setUpPlayPauseFab() } - override fun show() { - } + override fun show() {} - override fun hide() { - } + override fun hide() {} override fun setColor(color: MediaNotificationProcessor) { val controlsColor = @@ -118,40 +109,6 @@ class PeakPlayerControlFragment : AbsPlayerControlsFragment(R.layout.fragment_pe } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { - MusicPlayerRemote.toggleShuffleMode() - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { - MusicPlayerRemote.cycleRepeatMode() - } - } - - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total @@ -170,57 +127,6 @@ class PeakPlayerControlFragment : AbsPlayerControlsFragment(R.layout.fragment_pe binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) } - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - override fun onPlayStateChanged() { super.onPlayStateChanged() updatePlayPauseDrawableState() diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/plain/PlainPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/plain/PlainPlaybackControlsFragment.kt index 5c5dee0b4..b838e8eb9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/plain/PlainPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/plain/PlainPlaybackControlsFragment.kt @@ -15,15 +15,12 @@ package code.name.monkey.retromusic.fragments.player.plain import android.animation.ObjectAnimator -import android.annotation.SuppressLint -import android.graphics.PorterDuff import android.os.Bundle import android.view.View -import android.view.animation.AccelerateInterpolator import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator +import android.widget.ImageButton import android.widget.SeekBar -import androidx.core.view.isVisible import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ColorUtil @@ -35,13 +32,8 @@ import code.name.monkey.retromusic.extensions.applyColor import code.name.monkey.retromusic.extensions.getSongInfo import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.show -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper -import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -53,12 +45,24 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class PlainPlaybackControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_plain_controls_fragment) { - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper private var _binding: FragmentPlainControlsFragmentBinding? = null private val binding get() = _binding!! + override val seekBar: SeekBar + get() = binding.progressSlider + + override val shuffleButton: ImageButton + get() = binding.shuffleButton + + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton + override fun onPlayStateChanged() { updatePlayPauseDrawableState() } @@ -92,60 +96,23 @@ class PlainPlaybackControlsFragment : } } - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } - - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentPlainControlsFragmentBinding.bind(view) - setUpMusicControllers() + setUpPlayPauseFab() + } + private fun setUpPlayPauseFab() { binding.playPauseButton.setOnClickListener { if (MusicPlayerRemote.isPlaying) { MusicPlayerRemote.pauseSong() } else { MusicPlayerRemote.resumePlaying() } - showBounceAnimation() + it.showBounceAnimation() } } - private fun setUpPlayPauseFab() { - binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) - } - - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - override fun setColor(color: MediaNotificationProcessor) { val colorBg = ATHUtil.resolveColor(requireContext(), android.R.attr.colorBackground) if (ColorUtil.isColorLight(colorBg)) { @@ -183,53 +150,6 @@ class PlainPlaybackControlsFragment : updatePrevNextColor() } - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - public override fun show() { binding.playPauseButton.animate() .scaleX(1f) @@ -247,29 +167,6 @@ class PlainPlaybackControlsFragment : } } - private fun showBounceAnimation() { - binding.playPauseButton.apply { - clearAnimation() - scaleX = 0.9f - scaleY = 0.9f - isVisible = true - pivotX = (width / 2).toFloat() - pivotY = (height / 2).toFloat() - - animate().setDuration(200) - .setInterpolator(DecelerateInterpolator()) - .scaleX(1.1f) - .scaleY(1.1f) - .withEndAction { - animate().setDuration(200) - .setInterpolator(AccelerateInterpolator()) - .scaleX(1f) - .scaleY(1f) - .alpha(1f).start() - }.start() - } - } - private fun updatePlayPauseDrawableState() { if (MusicPlayerRemote.isPlaying) { binding.playPauseButton.setImageResource(R.drawable.ic_pause) @@ -278,20 +175,6 @@ class PlainPlaybackControlsFragment : } } - override fun setUpProgressSlider() { - binding.progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - MusicPlayerRemote.seekTo(progress) - onUpdateProgressViews( - MusicPlayerRemote.songProgressMillis, - MusicPlayerRemote.songDurationMillis - ) - } - } - }) - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.progressSlider.max = total diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/simple/SimplePlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/simple/SimplePlaybackControlsFragment.kt index 85c1676dd..9c0a80bc6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/simple/SimplePlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/simple/SimplePlaybackControlsFragment.kt @@ -14,11 +14,11 @@ */ package code.name.monkey.retromusic.fragments.player.simple -import android.annotation.SuppressLint -import android.graphics.PorterDuff import android.os.Bundle import android.view.View import android.view.animation.DecelerateInterpolator +import android.widget.ImageButton +import android.widget.SeekBar import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ColorUtil @@ -29,14 +29,10 @@ import code.name.monkey.retromusic.databinding.FragmentSimpleControlsFragmentBin import code.name.monkey.retromusic.extensions.getSongInfo import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.show -import code.name.monkey.retromusic.fragments.MusicSeekSkipTouchListener import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.goToAlbum import code.name.monkey.retromusic.fragments.base.goToArtist import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper -import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor @@ -51,10 +47,17 @@ class SimplePlaybackControlsFragment : private var _binding: FragmentSimpleControlsFragmentBinding? = null private val binding get() = _binding!! + override val shuffleButton: ImageButton + get() = binding.shuffleButton - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper + override val repeatButton: ImageButton + get() = binding.repeatButton + + override val nextButton: ImageButton + get() = binding.nextButton + + override val previousButton: ImageButton + get() = binding.previousButton override fun onPlayStateChanged() { updatePlayPauseDrawableState() @@ -75,37 +78,15 @@ class SimplePlaybackControlsFragment : updateSong() } - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) - } - - override fun onResume() { - super.onResume() - progressViewUpdateHelper.start() - } - - override fun onPause() { - super.onPause() - progressViewUpdateHelper.stop() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentSimpleControlsFragmentBinding.bind(view) - setUpMusicControllers() + setUpPlayPauseFab() binding.title.isSelected = true binding.text.setOnClickListener { goToArtist(requireActivity()) } - binding.playPauseButton.setOnClickListener { - if (MusicPlayerRemote.isPlaying) { - MusicPlayerRemote.pauseSong() - } else { - MusicPlayerRemote.resumePlaying() - } - showBounceAnimation(binding.playPauseButton) - } + binding.title.setOnClickListener { goToAlbum(requireActivity()) } @@ -114,73 +95,6 @@ class SimplePlaybackControlsFragment : } } - private fun setUpMusicControllers() { - setUpPlayPauseFab() - setUpPrevNext() - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - @SuppressLint("ClickableViewAccessibility") - private fun setUpPrevNext() { - updatePrevNextColor() - binding.nextButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), true)) - binding.previousButton.setOnTouchListener(MusicSeekSkipTouchListener(requireActivity(), false)) - } - - private fun updatePrevNextColor() { - binding.nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - binding.previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) - } - - private fun setUpShuffleButton() { - binding.shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.shuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.shuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - private fun setUpRepeatButton() { - binding.repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.repeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.repeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - } - private fun updateSong() { val song = MusicPlayerRemote.currentSong binding.title.text = song.title @@ -216,9 +130,6 @@ class SimplePlaybackControlsFragment : } } - override fun setUpProgressSlider() { - } - override fun onUpdateProgressViews(progress: Int, total: Int) { binding.songCurrentProgress.text = String.format( "%s / %s", @@ -266,7 +177,14 @@ class SimplePlaybackControlsFragment : } private fun setUpPlayPauseFab() { - binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) + binding.playPauseButton.setOnClickListener { + if (MusicPlayerRemote.isPlaying) { + MusicPlayerRemote.pauseSong() + } else { + MusicPlayerRemote.resumePlaying() + } + it.showBounceAnimation() + } } private fun updatePlayPauseDrawableState() { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlaybackControlsFragment.kt index 3cfbc2f87..2104ddf50 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlaybackControlsFragment.kt @@ -14,15 +14,13 @@ */ package code.name.monkey.retromusic.fragments.player.tiny -import android.graphics.PorterDuff import android.os.Bundle import android.view.View +import android.widget.ImageButton import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.retromusic.R import code.name.monkey.retromusic.databinding.FragmentTinyControlsFragmentBinding import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment -import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.util.color.MediaNotificationProcessor class TinyPlaybackControlsFragment : @@ -30,14 +28,15 @@ class TinyPlaybackControlsFragment : private var _binding: FragmentTinyControlsFragmentBinding? = null private val binding get() = _binding!! - override fun show() { - } + override val shuffleButton: ImageButton + get() = binding.shuffleButton - override fun hide() { - } + override val repeatButton: ImageButton + get() = binding.repeatButton - override fun setUpProgressSlider() { - } + override fun show() {} + + override fun hide() {} override fun setColor(color: MediaNotificationProcessor) { lastPlaybackControlsColor = color.secondaryTextColor @@ -50,66 +49,9 @@ class TinyPlaybackControlsFragment : override fun onUpdateProgressViews(progress: Int, total: Int) { } - private var lastPlaybackControlsColor: Int = 0 - private var lastDisabledPlaybackControlsColor: Int = 0 - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentTinyControlsFragmentBinding.bind(view) - setUpMusicControllers() - } - - private fun setUpMusicControllers() { - setUpRepeatButton() - setUpShuffleButton() - setUpProgressSlider() - } - - private fun setUpShuffleButton() { - binding.playerShuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } - } - - private fun setUpRepeatButton() { - binding.playerRepeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } - } - - override fun updateShuffleState() { - when (MusicPlayerRemote.shuffleMode) { - MusicService.SHUFFLE_MODE_SHUFFLE -> binding.playerShuffleButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - else -> binding.playerShuffleButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } - - override fun updateRepeatState() { - when (MusicPlayerRemote.repeatMode) { - MusicService.REPEAT_MODE_NONE -> { - binding.playerRepeatButton.setImageResource(R.drawable.ic_repeat) - binding.playerRepeatButton.setColorFilter( - lastDisabledPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_ALL -> { - binding.playerRepeatButton.setImageResource(R.drawable.ic_repeat) - binding.playerRepeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - MusicService.REPEAT_MODE_THIS -> { - binding.playerRepeatButton.setImageResource(R.drawable.ic_repeat_one) - binding.playerRepeatButton.setColorFilter( - lastPlaybackControlsColor, - PorterDuff.Mode.SRC_IN - ) - } - } } override fun onServiceConnected() { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlayerFragment.kt index 01cbdf665..a2cdc784e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlayerFragment.kt @@ -59,11 +59,9 @@ class TinyPlayerFragment : AbsPlayerFragment(R.layout.fragment_tiny_player), return binding.playerToolbar } - override fun onShow() { - } + override fun onShow() {} - override fun onHide() { - } + override fun onHide() {} override fun onBackPressed(): Boolean { return false diff --git a/app/src/main/res/layout/fragment_tiny_controls_fragment.xml b/app/src/main/res/layout/fragment_tiny_controls_fragment.xml index 99fbc3e8a..2a05a2c61 100644 --- a/app/src/main/res/layout/fragment_tiny_controls_fragment.xml +++ b/app/src/main/res/layout/fragment_tiny_controls_fragment.xml @@ -17,7 +17,7 @@ android:visibility="gone" />