Reverted to SeekBars for Card, Classic, Fit and Flat now playing theme

This commit is contained in:
Prathamesh More 2022-05-24 18:18:03 +05:30
parent f916a826b5
commit ca39b928bb
17 changed files with 136 additions and 137 deletions

View file

@ -277,7 +277,6 @@ abstract class AbsTagEditorActivity<VB : ViewBinding> : AbsBaseActivity() {
scaleY = 0f scaleY = 0f
isEnabled = false isEnabled = false
setOnClickListener { save() } setOnClickListener { save() }
TintHelper.setTintAuto(this, ThemeStore.accentColor(this@AbsTagEditorActivity), true)
} }
} }

View file

@ -23,6 +23,7 @@ import android.view.animation.AccelerateInterpolator
import android.view.animation.DecelerateInterpolator import android.view.animation.DecelerateInterpolator
import android.view.animation.LinearInterpolator import android.view.animation.LinearInterpolator
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.SeekBar
import android.widget.TextView import android.widget.TextView
import androidx.annotation.LayoutRes import androidx.annotation.LayoutRes
import androidx.core.view.isVisible import androidx.core.view.isVisible
@ -57,11 +58,12 @@ abstract class AbsPlayerControlsFragment(@LayoutRes layout: Int) : AbsMusicServi
var lastDisabledPlaybackControlsColor: Int = 0 var lastDisabledPlaybackControlsColor: Int = 0
var isSeeking = false private var isSeeking = false
private set
open val progressSlider: Slider? = null open val progressSlider: Slider? = null
open val seekBar: SeekBar? = null
abstract val shuffleButton: ImageButton abstract val shuffleButton: ImageButton
abstract val repeatButton: ImageButton abstract val repeatButton: ImageButton
@ -77,6 +79,7 @@ abstract class AbsPlayerControlsFragment(@LayoutRes layout: Int) : AbsMusicServi
private var progressAnimator: ObjectAnimator? = null private var progressAnimator: ObjectAnimator? = null
override fun onUpdateProgressViews(progress: Int, total: Int) { override fun onUpdateProgressViews(progress: Int, total: Int) {
if (seekBar == null) {
progressSlider?.valueTo = total.toFloat() progressSlider?.valueTo = total.toFloat()
if (isSeeking) { if (isSeeking) {
@ -90,33 +93,71 @@ abstract class AbsPlayerControlsFragment(@LayoutRes layout: Int) : AbsMusicServi
} }
} }
} else {
seekBar?.max = total
if (isSeeking) {
seekBar?.progress = progress
} else {
progressAnimator =
ObjectAnimator.ofInt(seekBar, "progress", progress).apply {
duration = SLIDER_ANIMATION_TIME
interpolator = LinearInterpolator()
start()
}
}
}
songTotalTime?.text = MusicUtil.getReadableDurationString(total.toLong()) songTotalTime?.text = MusicUtil.getReadableDurationString(total.toLong())
songCurrentProgress?.text = MusicUtil.getReadableDurationString(progress.toLong()) songCurrentProgress?.text = MusicUtil.getReadableDurationString(progress.toLong())
} }
private fun setUpProgressSlider() { private fun setUpProgressSlider() {
progressSlider?.addOnChangeListener(Slider.OnChangeListener { _, value, fromUser -> progressSlider?.addOnChangeListener(Slider.OnChangeListener { _, value, fromUser ->
if (fromUser) { onProgressChange(value.toInt(), fromUser)
onUpdateProgressViews(
value.toInt(),
MusicPlayerRemote.songDurationMillis
)
}
}) })
progressSlider?.addOnSliderTouchListener(object : Slider.OnSliderTouchListener { progressSlider?.addOnSliderTouchListener(object : Slider.OnSliderTouchListener {
override fun onStartTrackingTouch(slider: Slider) { override fun onStartTrackingTouch(slider: Slider) {
onStartTrackingTouch()
}
override fun onStopTrackingTouch(slider: Slider) {
onStopTrackingTouch(slider.value.toInt())
}
})
seekBar?.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
onProgressChange(progress, fromUser)
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
onStartTrackingTouch()
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
onStopTrackingTouch(seekBar?.progress ?: 0)
}
})
}
private fun onProgressChange(value: Int, fromUser: Boolean) {
if (fromUser) {
onUpdateProgressViews(value, MusicPlayerRemote.songDurationMillis)
}
}
private fun onStartTrackingTouch() {
isSeeking = true isSeeking = true
progressViewUpdateHelper.stop() progressViewUpdateHelper.stop()
progressAnimator?.cancel() progressAnimator?.cancel()
} }
override fun onStopTrackingTouch(slider: Slider) { private fun onStopTrackingTouch(value: Int) {
isSeeking = false isSeeking = false
MusicPlayerRemote.seekTo(slider.value.toInt()) MusicPlayerRemote.seekTo(value)
progressViewUpdateHelper.start() progressViewUpdateHelper.start()
} }
})
}
private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper

View file

@ -124,7 +124,7 @@ class AdaptivePlaybackControlsFragment :
val colorFinal = if (PreferenceUtil.isAdaptiveColor) { val colorFinal = if (PreferenceUtil.isAdaptiveColor) {
color.primaryTextColor color.primaryTextColor
} else { } else {
ThemeStore.accentColor(requireContext()) accentColor()
}.ripAlpha() }.ripAlpha()
TintHelper.setTintAuto( TintHelper.setTintAuto(

View file

@ -18,7 +18,7 @@ import android.graphics.PorterDuff
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.widget.ImageButton import android.widget.ImageButton
import com.google.android.material.slider.Slider import android.widget.SeekBar
import android.widget.TextView import android.widget.TextView
import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ATHUtil
@ -42,7 +42,7 @@ class CardPlaybackControlsFragment :
private var _binding: FragmentCardPlayerPlaybackControlsBinding? = null private var _binding: FragmentCardPlayerPlaybackControlsBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
override val progressSlider: Slider override val seekBar: SeekBar
get() = binding.progressSlider get() = binding.progressSlider
override val shuffleButton: ImageButton override val shuffleButton: ImageButton
@ -75,9 +75,6 @@ class CardPlaybackControlsFragment :
binding.text.setOnClickListener { binding.text.setOnClickListener {
goToArtist(requireActivity()) goToArtist(requireActivity())
} }
binding.progressSlider.apply {
setCustomThumbDrawable(R.drawable.switch_square)
}
} }
private fun updateSong() { private fun updateSong() {
@ -138,7 +135,7 @@ class CardPlaybackControlsFragment :
val colorFinal = if (PreferenceUtil.isAdaptiveColor) { val colorFinal = if (PreferenceUtil.isAdaptiveColor) {
color.primaryTextColor color.primaryTextColor
} else { } else {
ThemeStore.accentColor(requireContext()).ripAlpha() accentColor().ripAlpha()
} }
binding.image.setColorFilter(colorFinal, PorterDuff.Mode.SRC_IN) binding.image.setColorFilter(colorFinal, PorterDuff.Mode.SRC_IN)
TintHelper.setTintAuto( TintHelper.setTintAuto(

View file

@ -137,7 +137,7 @@ class CirclePlayerFragment : AbsPlayerFragment(R.layout.fragment_circle_player),
} }
private fun updatePrevNextColor() { private fun updatePrevNextColor() {
val accentColor = ThemeStore.accentColor(requireContext()) val accentColor = accentColor()
binding.nextButton.setColorFilter(accentColor, PorterDuff.Mode.SRC_IN) binding.nextButton.setColorFilter(accentColor, PorterDuff.Mode.SRC_IN)
binding.previousButton.setColorFilter(accentColor, PorterDuff.Mode.SRC_IN) binding.previousButton.setColorFilter(accentColor, PorterDuff.Mode.SRC_IN)
} }
@ -145,7 +145,7 @@ class CirclePlayerFragment : AbsPlayerFragment(R.layout.fragment_circle_player),
private fun setUpPlayPauseFab() { private fun setUpPlayPauseFab() {
TintHelper.setTintAuto( TintHelper.setTintAuto(
binding.playPauseButton, binding.playPauseButton,
ThemeStore.accentColor(requireContext()), accentColor(),
false false
) )
binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler()) binding.playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler())

View file

@ -22,6 +22,7 @@ import android.graphics.PorterDuff
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.view.animation.LinearInterpolator import android.view.animation.LinearInterpolator
import android.widget.SeekBar
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.fragment.app.commit import androidx.fragment.app.commit
@ -44,17 +45,18 @@ import code.name.monkey.retromusic.fragments.player.PlayerAlbumCoverFragment
import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener
import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.service.MusicService
import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.util.ViewUtil
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetBehavior.from import com.google.android.material.bottomsheet.BottomSheetBehavior.from
import com.google.android.material.card.MaterialCardView import com.google.android.material.card.MaterialCardView
import com.google.android.material.shape.MaterialShapeDrawable import com.google.android.material.shape.MaterialShapeDrawable
import com.google.android.material.shape.ShapeAppearanceModel import com.google.android.material.shape.ShapeAppearanceModel
import com.google.android.material.slider.Slider
import com.h6ah4i.android.widget.advrecyclerview.animator.DraggableItemAnimator import com.h6ah4i.android.widget.advrecyclerview.animator.DraggableItemAnimator
import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager
import com.h6ah4i.android.widget.advrecyclerview.swipeable.RecyclerViewSwipeManager import com.h6ah4i.android.widget.advrecyclerview.swipeable.RecyclerViewSwipeManager
@ -81,9 +83,6 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player
private var playingQueueAdapter: PlayingQueueAdapter? = null private var playingQueueAdapter: PlayingQueueAdapter? = null
private lateinit var linearLayoutManager: LinearLayoutManager private lateinit var linearLayoutManager: LinearLayoutManager
private var progressAnimator: ObjectAnimator? = null
var isSeeking = false
private val bottomSheetCallbackList = object : BottomSheetBehavior.BottomSheetCallback() { private val bottomSheetCallbackList = object : BottomSheetBehavior.BottomSheetCallback() {
override fun onSlide(bottomSheet: View, slideOffset: Float) { override fun onSlide(bottomSheet: View, slideOffset: Float) {
mainActivity.getBottomSheetBehavior().isDraggable = false mainActivity.getBottomSheetBehavior().isDraggable = false
@ -100,8 +99,7 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player
override fun onStateChanged(bottomSheet: View, newState: Int) { override fun onStateChanged(bottomSheet: View, newState: Int) {
when (newState) { when (newState) {
BottomSheetBehavior.STATE_EXPANDED, BottomSheetBehavior.STATE_EXPANDED,
BottomSheetBehavior.STATE_DRAGGING, BottomSheetBehavior.STATE_DRAGGING -> {
-> {
mainActivity.getBottomSheetBehavior().isDraggable = false mainActivity.getBottomSheetBehavior().isDraggable = false
} }
BottomSheetBehavior.STATE_COLLAPSED -> { BottomSheetBehavior.STATE_COLLAPSED -> {
@ -163,10 +161,6 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player
binding.text.setOnClickListener { binding.text.setOnClickListener {
goToArtist(requireActivity()) goToArtist(requireActivity())
} }
binding.playerControlsContainer.progressSlider.apply {
setCustomThumbDrawable(R.drawable.switch_square)
}
} }
private fun hideVolumeIfAvailable() { private fun hideVolumeIfAvailable() {
@ -292,8 +286,11 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player
binding.playerControlsContainer.songCurrentProgress.setTextColor(lastPlaybackControlsColor) binding.playerControlsContainer.songCurrentProgress.setTextColor(lastPlaybackControlsColor)
binding.playerControlsContainer.songTotalTime.setTextColor(lastPlaybackControlsColor) binding.playerControlsContainer.songTotalTime.setTextColor(lastPlaybackControlsColor)
binding.playerControlsContainer.progressSlider.applyColor(color.primaryTextColor) ViewUtil.setProgressDrawable(
binding.playerControlsContainer.progressSlider,
color.primaryTextColor,
true
)
volumeFragment?.setTintableColor(color.primaryTextColor) volumeFragment?.setTintableColor(color.primaryTextColor)
TintHelper.setTintAuto( TintHelper.setTintAuto(
@ -330,20 +327,16 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player
} }
override fun onUpdateProgressViews(progress: Int, total: Int) { override fun onUpdateProgressViews(progress: Int, total: Int) {
val progressSlider = binding.playerControlsContainer.progressSlider binding.playerControlsContainer.progressSlider.max = total
progressSlider.valueTo = total.toFloat()
if (isSeeking) { val animator = ObjectAnimator.ofInt(
progressSlider.value = progress.toFloat() binding.playerControlsContainer.progressSlider,
} else { "progress",
progressAnimator = progress
ObjectAnimator.ofFloat(progressSlider, "value", progress.toFloat()).apply { )
duration = AbsPlayerControlsFragment.SLIDER_ANIMATION_TIME animator.duration = AbsPlayerControlsFragment.SLIDER_ANIMATION_TIME
interpolator = LinearInterpolator() animator.interpolator = LinearInterpolator()
start() animator.start()
}
}
binding.playerControlsContainer.songTotalTime.text = binding.playerControlsContainer.songTotalTime.text =
MusicUtil.getReadableDurationString(total.toLong()) MusicUtil.getReadableDurationString(total.toLong())
@ -423,25 +416,16 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player
} }
private fun setUpProgressSlider() { private fun setUpProgressSlider() {
val progressSlider = binding.playerControlsContainer.progressSlider binding.playerControlsContainer.progressSlider.setOnSeekBarChangeListener(object :
progressSlider.addOnChangeListener(Slider.OnChangeListener { _, value, fromUser -> SimpleOnSeekbarChangeListener() {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
if (fromUser) { if (fromUser) {
MusicPlayerRemote.seekTo(progress)
onUpdateProgressViews( onUpdateProgressViews(
value.toInt(), MusicPlayerRemote.songProgressMillis,
MusicPlayerRemote.songDurationMillis MusicPlayerRemote.songDurationMillis
) )
} }
})
progressSlider.addOnSliderTouchListener(object : Slider.OnSliderTouchListener {
override fun onStartTrackingTouch(slider: Slider) {
isSeeking = true
progressViewUpdateHelper.stop()
}
override fun onStopTrackingTouch(slider: Slider) {
isSeeking = false
MusicPlayerRemote.seekTo(slider.value.toInt())
progressViewUpdateHelper.start()
} }
}) })
} }
@ -553,7 +537,7 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player
oldLeft: Int, oldLeft: Int,
oldTop: Int, oldTop: Int,
oldRight: Int, oldRight: Int,
oldBottom: Int, oldBottom: Int
) { ) {
val height = binding.playerContainer.height val height = binding.playerContainer.height
val width = binding.playerContainer.width val width = binding.playerContainer.width

View file

@ -18,6 +18,7 @@ import android.os.Bundle
import android.view.View import android.view.View
import android.view.animation.DecelerateInterpolator import android.view.animation.DecelerateInterpolator
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.SeekBar
import android.widget.TextView import android.widget.TextView
import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.ColorUtil
@ -32,8 +33,6 @@ import code.name.monkey.retromusic.fragments.base.goToArtist
import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
import com.google.android.material.slider.Slider
import java.lang.reflect.Field
class FitPlaybackControlsFragment : class FitPlaybackControlsFragment :
AbsPlayerControlsFragment(R.layout.fragment_fit_playback_controls) { AbsPlayerControlsFragment(R.layout.fragment_fit_playback_controls) {
@ -41,7 +40,7 @@ class FitPlaybackControlsFragment :
private var _binding: FragmentFitPlaybackControlsBinding? = null private var _binding: FragmentFitPlaybackControlsBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
override val progressSlider: Slider override val seekBar: SeekBar
get() = binding.progressSlider get() = binding.progressSlider
override val shuffleButton: ImageButton override val shuffleButton: ImageButton
@ -76,18 +75,6 @@ class FitPlaybackControlsFragment :
binding.text.setOnClickListener { binding.text.setOnClickListener {
goToArtist(requireActivity()) goToArtist(requireActivity())
} }
binding.progressSlider.apply {
setCustomThumbDrawable(R.drawable.switch_square)
}
val field: Field = Slider::class.java.superclass.getDeclaredField("trackSidePadding")
field.isAccessible = true
field.set(binding.progressSlider, 0)
binding.progressSlider.invalidate()
} }
private fun updateSong() { private fun updateSong() {
@ -141,7 +128,7 @@ class FitPlaybackControlsFragment :
val colorFinal = if (PreferenceUtil.isAdaptiveColor) { val colorFinal = if (PreferenceUtil.isAdaptiveColor) {
color.primaryTextColor color.primaryTextColor
} else { } else {
ThemeStore.accentColor(requireContext()).ripAlpha() accentColor().ripAlpha()
} }
volumeFragment?.setTintable(colorFinal) volumeFragment?.setTintable(colorFinal)

View file

@ -18,9 +18,8 @@ import android.os.Bundle
import android.view.View import android.view.View
import android.view.animation.DecelerateInterpolator import android.view.animation.DecelerateInterpolator
import android.widget.ImageButton import android.widget.ImageButton
import com.google.android.material.slider.Slider import android.widget.SeekBar
import android.widget.TextView import android.widget.TextView
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.MaterialValueHelper
@ -43,7 +42,7 @@ class FlatPlaybackControlsFragment :
private var _binding: FragmentFlatPlayerPlaybackControlsBinding? = null private var _binding: FragmentFlatPlayerPlaybackControlsBinding? = null
private val binding get() = _binding!! private val binding get() = _binding!!
override val progressSlider: Slider override val seekBar: SeekBar
get() = binding.progressSlider get() = binding.progressSlider
override val shuffleButton: ImageButton override val shuffleButton: ImageButton
@ -110,7 +109,7 @@ class FlatPlaybackControlsFragment :
val colorFinal = if (PreferenceUtil.isAdaptiveColor) { val colorFinal = if (PreferenceUtil.isAdaptiveColor) {
color.primaryTextColor color.primaryTextColor
} else { } else {
ThemeStore.accentColor(requireContext()).ripAlpha() accentColor().ripAlpha()
} }
updateTextColors(colorFinal) updateTextColors(colorFinal)

View file

@ -94,7 +94,7 @@ class PlayerPlaybackControlsFragment :
val colorFinal = if (PreferenceUtil.isAdaptiveColor) { val colorFinal = if (PreferenceUtil.isAdaptiveColor) {
color.primaryTextColor color.primaryTextColor
} else { } else {
ThemeStore.accentColor(requireContext()) accentColor()
}.ripAlpha() }.ripAlpha()
TintHelper.setTintAuto( TintHelper.setTintAuto(

View file

@ -27,6 +27,7 @@ import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.appthemehelper.util.TintHelper
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.databinding.FragmentPeekControlPlayerBinding import code.name.monkey.retromusic.databinding.FragmentPeekControlPlayerBinding
import code.name.monkey.retromusic.extensions.accentColor
import code.name.monkey.retromusic.extensions.applyColor import code.name.monkey.retromusic.extensions.applyColor
import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicPlayerRemote
@ -82,7 +83,7 @@ class PeekPlayerControlFragment : AbsPlayerControlsFragment(R.layout.fragment_pe
if (PreferenceUtil.isAdaptiveColor) { if (PreferenceUtil.isAdaptiveColor) {
color.primaryTextColor color.primaryTextColor
} else { } else {
ThemeStore.accentColor(requireContext()) accentColor()
} }
binding.progressSlider.applyColor(controlsColor) binding.progressSlider.applyColor(controlsColor)
volumeFragment?.setTintableColor(controlsColor) volumeFragment?.setTintableColor(controlsColor)

View file

@ -19,17 +19,13 @@ import android.view.View
import android.view.animation.DecelerateInterpolator import android.view.animation.DecelerateInterpolator
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.TextView import android.widget.TextView
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.appthemehelper.util.TintHelper
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.databinding.FragmentPlainControlsFragmentBinding import code.name.monkey.retromusic.databinding.FragmentPlainControlsFragmentBinding
import code.name.monkey.retromusic.extensions.applyColor import code.name.monkey.retromusic.extensions.*
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.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.PreferenceUtil
@ -134,7 +130,7 @@ class PlainPlaybackControlsFragment :
val colorFinal = if (PreferenceUtil.isAdaptiveColor) { val colorFinal = if (PreferenceUtil.isAdaptiveColor) {
color.primaryTextColor color.primaryTextColor
} else { } else {
ThemeStore.accentColor(requireContext()) accentColor()
} }
volumeFragment?.setTintable(colorFinal) volumeFragment?.setTintable(colorFinal)
binding.progressSlider.applyColor(colorFinal) binding.progressSlider.applyColor(colorFinal)

View file

@ -18,13 +18,13 @@ import android.os.Bundle
import android.view.View import android.view.View
import android.view.animation.DecelerateInterpolator import android.view.animation.DecelerateInterpolator
import android.widget.ImageButton import android.widget.ImageButton
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.appthemehelper.util.TintHelper
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.databinding.FragmentSimpleControlsFragmentBinding import code.name.monkey.retromusic.databinding.FragmentSimpleControlsFragmentBinding
import code.name.monkey.retromusic.extensions.accentColor
import code.name.monkey.retromusic.extensions.getSongInfo import code.name.monkey.retromusic.extensions.getSongInfo
import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.hide
import code.name.monkey.retromusic.extensions.show import code.name.monkey.retromusic.extensions.show
@ -154,7 +154,7 @@ class SimplePlaybackControlsFragment :
val colorFinal = if (PreferenceUtil.isAdaptiveColor) { val colorFinal = if (PreferenceUtil.isAdaptiveColor) {
color.primaryTextColor color.primaryTextColor
} else { } else {
ThemeStore.accentColor(requireContext()) accentColor()
} }
volumeFragment?.setTintable(colorFinal) volumeFragment?.setTintable(colorFinal)

View file

@ -26,25 +26,23 @@
android:textSize="12sp" android:textSize="12sp"
tools:text="@tools:sample/date/hhmmss" /> tools:text="@tools:sample/date/hhmmss" />
<com.google.android.material.slider.Slider <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"
style="@style/Widget.Retro.Slider" style="@style/MusicProgressSlider"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
app:haloRadius="0dp" android:layout_weight="1" />
app:trackHeight="20dp"
android:layout_weight="1"/>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="center_vertical|end" android:gravity="center_vertical|end"
android:paddingEnd="8dp" android:paddingRight="8dp"
android:paddingStart="0dp"
android:singleLine="true" android:singleLine="true"
android:textColor="?colorOnSecondary" android:textColor="?colorOnSecondary"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="@tools:sample/date/hhmmss" /> tools:text="@tools:sample/date/hhmmss" />
</LinearLayout> </LinearLayout>

View file

@ -44,13 +44,14 @@
tools:ignore="RtlHardcoded,RtlSymmetry" tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="@tools:sample/date/hhmmss" /> tools:text="@tools:sample/date/hhmmss" />
<com.google.android.material.slider.Slider <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"
style="@style/Widget.Retro.Slider" style="@style/MusicProgressSlider"
android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_toStartOf="@id/songTotalTime" android:layout_toLeftOf="@id/songTotalTime"
android:layout_toEndOf="@id/songCurrentProgress" /> android:layout_toRightOf="@id/songCurrentProgress"
android:paddingVertical="@dimen/seekbar_padding"
tools:ignore="RtlHardcoded,UnusedAttribute" />
</RelativeLayout> </RelativeLayout>

View file

@ -31,19 +31,13 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="@tools:sample/date/hhmmss" /> tools:text="@tools:sample/date/hhmmss" />
<com.google.android.material.slider.Slider <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"
style="@style/Widget.Retro.Slider" style="@style/MusicProgressSlider"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="match_parent"
android:foregroundGravity="center"
android:padding="0dp"
app:haloRadius="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/songTotalTime" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
app:layout_constraintStart_toEndOf="@id/songCurrentProgress" app:layout_constraintStart_toEndOf="@id/songCurrentProgress" />
app:layout_constraintTop_toTopOf="parent"
app:trackHeight="@dimen/progress_container_height" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"

View file

@ -21,12 +21,15 @@
app:layout_constraintTop_toTopOf="@id/progressSlider" app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:text="@tools:sample/date/hhmmss" /> tools:text="@tools:sample/date/hhmmss" />
<com.google.android.material.slider.Slider <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:thumbRadius="8dp" android:maxHeight="2dp"
style="@style/Widget.Retro.Slider" android:paddingVertical="@dimen/seekbar_padding"
android:progressDrawable="@drawable/color_progress_seek"
android:splitTrack="false"
android:thumb="@drawable/switch_square"
app:layout_constraintEnd_toStartOf="@id/songTotalTime" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
app:layout_constraintStart_toEndOf="@id/songCurrentProgress" app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"

View file

@ -29,11 +29,10 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:maxHeight="2dp" android:maxHeight="2dp"
android:progressDrawable="@drawable/color_progress_seek" style="@style/Widget.Retro.Slider"
app:layout_constraintEnd_toStartOf="@id/songTotalTime" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
app:layout_constraintStart_toEndOf="@id/songCurrentProgress" app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" /> tools:progress="20" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView