From aca99f418212e515c8a33e30c800f03184eab632 Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Thu, 14 May 2020 20:57:42 +0530 Subject: [PATCH] Added classic theme --- app/build.gradle | 2 +- .../base/AbsSlidingMusicPanelActivity.kt | 7 +- .../adapter/album/AlbumCoverPagerAdapter.kt | 2 +- .../retromusic/fragments/NowPlayingScreen.kt | 2 +- .../player/PlayerAlbumCoverFragment.kt | 2 +- .../player/classic/ClassicPlayerFragment.kt | 61 ++++--- .../res/layout/fragment_classic_controls.xml | 163 +++++++----------- .../res/layout/fragment_classic_player.xml | 50 ++++-- app/src/main/res/values/styles.xml | 4 +- 9 files changed, 142 insertions(+), 151 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9bebfc8b..70297a71 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 97cba412..66d1f4cd 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 86437a79..e70a143d 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 646f5c19..0463d1b2 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 e1799052..bf7116c8 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 cfc273c2..2b09cdae 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 574ecfd4..ace56cc3 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" /> + + + +