diff --git a/app/build.gradle b/app/build.gradle
index 9bebfc8b0..70297a71b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -24,7 +24,7 @@ android {
vectorDrawables.useSupportLibrary = true
applicationId "code.name.monkey.retromusic"
- versionCode 429
+ versionCode 430
versionName '3.5.300'
multiDexEnabled true
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt
index 97cba4120..66d1f4cd7 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt
@@ -29,7 +29,6 @@ import code.name.monkey.retromusic.fragments.player.color.ColorFragment
import code.name.monkey.retromusic.fragments.player.fit.FitFragment
import code.name.monkey.retromusic.fragments.player.flat.FlatPlayerFragment
import code.name.monkey.retromusic.fragments.player.full.FullPlayerFragment
-import code.name.monkey.retromusic.fragments.player.home.HomePlayerFragment
import code.name.monkey.retromusic.fragments.player.material.MaterialFragment
import code.name.monkey.retromusic.fragments.player.normal.PlayerFragment
import code.name.monkey.retromusic.fragments.player.peak.PeakPlayerFragment
@@ -257,7 +256,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
Tiny -> TinyPlayerFragment()
Peak -> PeakPlayerFragment()
Circle -> CirclePlayerFragment()
- //Classic -> ClassicPlayerFragment()
+ Classic -> ClassicPlayerFragment()
else -> PlayerFragment()
} // must implement AbsPlayerFragment
supportFragmentManager.beginTransaction()
@@ -325,9 +324,9 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
super.setNavigationbarColor(paletteColor)
super.setLightNavigationBar(isColorLight)
super.setLightStatusbar(false)
- } /*else if (cps == Classic ) {
+ } else if (cps == Classic ) {
super.setLightStatusbar(false)
- }*/ else if (cps == Fit) {
+ } else if (cps == Fit) {
super.setLightStatusbar(false)
} else {
super.setLightStatusbar(
diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumCoverPagerAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumCoverPagerAdapter.kt
index 86437a799..e70a143d8 100644
--- a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumCoverPagerAdapter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumCoverPagerAdapter.kt
@@ -94,7 +94,7 @@ class AlbumCoverPagerAdapter(
Card,
Fit,
Tiny,
- //Classic,
+ Classic,
Full -> R.layout.fragment_album_full_cover
else -> {
if (PreferenceUtil.getInstance(requireContext()).carouselEffect()
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/NowPlayingScreen.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/NowPlayingScreen.kt
index 646f5c192..0463d1b25 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/NowPlayingScreen.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/NowPlayingScreen.kt
@@ -16,7 +16,7 @@ enum class NowPlayingScreen constructor(
BlurCard(R.string.blur_card, R.drawable.np_blur_card, 9),
Card(R.string.card, R.drawable.np_card, 6),
Circle(R.string.circle, R.drawable.np_minimalistic_circle, 15),
- //Classic(R.string.classic, R.drawable.np_classic, 16),
+ Classic(R.string.classic, R.drawable.np_classic, 16),
Color(R.string.color, R.drawable.np_color, 5),
Fit(R.string.fit, R.drawable.np_fit, 12),
Flat(R.string.flat, R.drawable.np_flat, 1),
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/PlayerAlbumCoverFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/PlayerAlbumCoverFragment.kt
index e17990522..bf7116c82 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/PlayerAlbumCoverFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/PlayerAlbumCoverFragment.kt
@@ -51,7 +51,7 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChan
val ratio = metrics.heightPixels.toFloat() / metrics.widthPixels.toFloat()
- if (nps == Full || /*nps == Classic ||*/ nps == Fit) {
+ if (nps == Full || nps == Classic || nps == Fit) {
viewPager.offscreenPageLimit = 2
} else if (PreferenceUtil.getInstance(requireContext()).carouselEffect()) {
viewPager.clipToPadding = false
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerFragment.kt
index cfc273c28..2b09cdaec 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerFragment.kt
@@ -1,5 +1,6 @@
package code.name.monkey.retromusic.fragments.player.classic
+import android.animation.ObjectAnimator
import android.content.res.ColorStateList
import android.graphics.Color
import android.graphics.PorterDuff
@@ -7,6 +8,8 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.view.animation.LinearInterpolator
+import android.widget.SeekBar
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.core.view.ViewCompat
@@ -23,14 +26,15 @@ import code.name.monkey.retromusic.adapter.song.PlayingQueueAdapter
import code.name.monkey.retromusic.extensions.hide
import code.name.monkey.retromusic.extensions.show
import code.name.monkey.retromusic.fragments.VolumeFragment
+import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
import code.name.monkey.retromusic.fragments.base.AbsPlayerFragment
import code.name.monkey.retromusic.fragments.player.PlayerAlbumCoverFragment
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
import code.name.monkey.retromusic.service.MusicService
-import code.name.monkey.retromusic.util.DensityUtil
import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.util.ViewUtil
@@ -74,6 +78,7 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
playerQueueSheet.contentPaddingRight,
playerQueueSheet.contentPaddingBottom
)
+
shapeDrawable.interpolation = 1 - slideOffset
}
@@ -123,13 +128,6 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
getQueuePanel().addBottomSheetCallback(bottomSheetCallbackList)
- playerQueueSheet.setOnTouchListener { _, _ ->
- (requireActivity() as AbsSlidingMusicPanelActivity).getBottomSheetBehavior()
- .setAllowDragging(false)
- getQueuePanel().setAllowDragging(true)
- return@setOnTouchListener false
- }
-
shapeDrawable = MaterialShapeDrawable(
ShapeAppearanceModel.builder(
requireContext(),
@@ -140,6 +138,13 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
shapeDrawable.fillColor = ColorStateList.valueOf(ATHUtil.resolveColor(requireContext(), R.attr.colorSurface))
playerQueueSheet.background = shapeDrawable
+ playerQueueSheet.setOnTouchListener { _, _ ->
+ (requireActivity() as AbsSlidingMusicPanelActivity).getBottomSheetBehavior()
+ .setAllowDragging(false)
+ getQueuePanel().setAllowDragging(true)
+ return@setOnTouchListener false
+ }
+
ToolbarContentTintHelper.colorizeToolbar(
playerToolbar,
Color.WHITE,
@@ -264,12 +269,13 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
override fun onColorChanged(color: MediaNotificationProcessor) {
lastColor = color.backgroundColor
callbacks?.onPaletteColorChanged()
+
lastPlaybackControlsColor = color.primaryTextColor
lastDisabledPlaybackControlsColor = ColorUtil.withAlpha(color.primaryTextColor, 0.3f)
-
- title.setTextColor(color.primaryTextColor)
- text.setTextColor(color.secondaryTextColor)
- songInfo.setTextColor(color.secondaryTextColor)
+
+ playerContainer.setBackgroundColor(color.backgroundColor)
+ songInfo.setTextColor(color.primaryTextColor)
+ player_queue_sub_header.setTextColor(color.backgroundColor)
songCurrentProgress.setTextColor(lastPlaybackControlsColor)
songTotalTime.setTextColor(lastPlaybackControlsColor)
@@ -277,10 +283,9 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
ViewUtil.setProgressDrawable(progressSlider, color.primaryTextColor, true)
volumeFragment?.setTintableColor(color.primaryTextColor)
- player_queue_sub_header.setTextColor(color.secondaryTextColor)
-
TintHelper.setTintAuto(playPauseButton, color.primaryTextColor, true)
TintHelper.setTintAuto(playPauseButton, color.backgroundColor, false)
+
updateRepeatState()
updateShuffleState()
updatePrevNextColor()
@@ -304,13 +309,17 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
}
override fun onUpdateProgressViews(progress: Int, total: Int) {
- progressSlider.valueTo = total.toFloat()
- progressSlider.value = progress.toFloat()
+ progressSlider.max = total
+
+ val animator = ObjectAnimator.ofInt(progressSlider, "progress", progress)
+ animator.duration = AbsPlayerControlsFragment.SLIDER_ANIMATION_TIME
+ animator.interpolator = LinearInterpolator()
+ animator.start()
+
songTotalTime.text = MusicUtil.getReadableDurationString(total.toLong())
songCurrentProgress.text = MusicUtil.getReadableDurationString(progress.toLong())
}
-
private fun updateQueuePosition() {
playingQueueAdapter?.setCurrent(MusicPlayerRemote.position)
resetToCurrentPosition()
@@ -384,15 +393,17 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
}
fun setUpProgressSlider() {
- progressSlider.addOnChangeListener { _, value, fromUser ->
- if (fromUser) {
- MusicPlayerRemote.seekTo(value.toInt())
- onUpdateProgressViews(
- MusicPlayerRemote.songProgressMillis,
- MusicPlayerRemote.songDurationMillis
- )
+ progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() {
+ override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
+ if (fromUser) {
+ MusicPlayerRemote.seekTo(progress)
+ onUpdateProgressViews(
+ MusicPlayerRemote.songProgressMillis,
+ MusicPlayerRemote.songDurationMillis
+ )
+ }
}
- }
+ })
}
private fun setUpPlayPauseFab() {
diff --git a/app/src/main/res/layout/fragment_classic_controls.xml b/app/src/main/res/layout/fragment_classic_controls.xml
index 574ecfd41..ace56cc32 100644
--- a/app/src/main/res/layout/fragment_classic_controls.xml
+++ b/app/src/main/res/layout/fragment_classic_controls.xml
@@ -11,112 +11,55 @@
tools:ignore="MissingPrefix">
-
+
-
-
-
-
-
-
-
+ android:textColor="?android:attr/textColorSecondary"
+ android:textSize="12sp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:ignore="RtlHardcoded,RtlSymmetry"
+ tools:text="00:22" />
-
+
+
+
+
-
@@ -193,6 +137,21 @@
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
+
+
-
-
-
-
+ app:layout_constraintTop_toBottomOf="@id/playerAlbumCoverFragment" />
+
+
+
+