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 01c85d613..814aaa8a6 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
@@ -1,7 +1,6 @@
package code.name.monkey.retromusic.activities.base
import android.animation.ValueAnimator
-import android.content.Context
import android.graphics.Color
import android.os.Bundle
import android.view.View
@@ -30,6 +29,7 @@ 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
@@ -190,7 +190,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
slidingPanel.viewTreeObserver.removeOnGlobalLayoutListener(this)
- if (cps != PEAK) {
+ if (cps != Peak) {
val params = slidingPanel.layoutParams as ViewGroup.LayoutParams
params.height = ViewGroup.LayoutParams.MATCH_PARENT
slidingPanel.layoutParams = params
@@ -242,22 +242,22 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
cps = PreferenceUtil.getInstance(this).nowPlayingScreen
val fragment: Fragment = when (cps) {
- BLUR -> BlurPlayerFragment()
- ADAPTIVE -> AdaptiveFragment()
- NORMAL -> PlayerFragment()
- CARD -> CardFragment()
- BLUR_CARD -> CardBlurFragment()
- FIT -> FitFragment()
- FLAT -> FlatPlayerFragment()
- FULL -> FullPlayerFragment()
- PLAIN -> PlainPlayerFragment()
- SIMPLE -> SimplePlayerFragment()
- MATERIAL -> MaterialFragment()
- COLOR -> ColorFragment()
- TINY -> TinyPlayerFragment()
- PEAK -> PeakPlayerFragment()
- CIRCLE -> CirclePlayerFragment()
- CLASSIC -> ClassicPlayerFragment()
+ Blur -> BlurPlayerFragment()
+ Adaptive -> AdaptiveFragment()
+ Normal -> PlayerFragment()
+ Card -> CardFragment()
+ BlurCard -> CardBlurFragment()
+ Fit -> FitFragment()
+ Flat -> FlatPlayerFragment()
+ Full -> FullPlayerFragment()
+ Plain -> PlainPlayerFragment()
+ Simple -> SimplePlayerFragment()
+ Material -> MaterialFragment()
+ Color -> ColorFragment()
+ Tiny -> TinyPlayerFragment()
+ Peak -> PeakPlayerFragment()
+ Circle -> CirclePlayerFragment()
+ Classic -> ClassicPlayerFragment()
else -> PlayerFragment()
} // must implement AbsPlayerFragment
supportFragmentManager.beginTransaction()
@@ -310,24 +310,24 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
val isColorLight = ColorUtil.isColorLight(paletteColor)
- if (PreferenceUtil.getInstance(this).adaptiveColor && (cps == NORMAL || cps == FLAT)) {
+ if (PreferenceUtil.getInstance(this).adaptiveColor && (cps == Normal || cps == Flat)) {
super.setLightNavigationBar(true)
super.setLightStatusbar(isColorLight)
- } else if (cps == CARD || cps == BLUR || cps == BLUR_CARD) {
+ } else if (cps == Card || cps == Blur || cps == BlurCard) {
super.setLightStatusbar(false)
super.setLightNavigationBar(true)
super.setNavigationbarColor(Color.BLACK)
- } else if (cps == COLOR || cps == TINY) {
+ } else if (cps == Color || cps == Tiny) {
super.setNavigationbarColor(paletteColor)
super.setLightNavigationBar(isColorLight)
super.setLightStatusbar(isColorLight)
- } else if (cps == FULL) {
+ } else if (cps == Full) {
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(
@@ -386,8 +386,4 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
bottomNavigationView.hide()
}
}
-}
-
-fun Context.dim(dimen: Int) {
-
}
\ No newline at end of file
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 1323df947..bd50b2968 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
@@ -9,7 +9,7 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.fragments.AlbumCoverStyle
-import code.name.monkey.retromusic.fragments.NowPlayingScreen
+import code.name.monkey.retromusic.fragments.NowPlayingScreen.*
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
import code.name.monkey.retromusic.glide.SongGlideRequest
import code.name.monkey.retromusic.misc.CustomFragmentStatePagerAdapter
@@ -83,19 +83,19 @@ class AlbumCoverPagerAdapter(
): View? {
val view = inflater.inflate(getLayoutWithPlayerTheme(), container, false)
albumCover = view.findViewById(R.id.player_image)
- albumCover.setOnClickListener {
+ /*albumCover.setOnClickListener {
NavigationUtil.goToLyrics(requireActivity())
- }
+ }*/
return view
}
private fun getLayoutWithPlayerTheme(): Int {
return when (PreferenceUtil.getInstance(requireContext()).nowPlayingScreen) {
- NowPlayingScreen.CARD,
- NowPlayingScreen.FIT,
- NowPlayingScreen.TINY,
- NowPlayingScreen.CLASSIC,
- NowPlayingScreen.FULL -> R.layout.fragment_album_full_cover
+ Card,
+ Fit,
+ Tiny,
+ 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 e29d54a0b..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
@@ -11,20 +11,20 @@ enum class NowPlayingScreen constructor(
val id: Int
) {
- ADAPTIVE(R.string.adaptive, R.drawable.np_adaptive, 10),
- BLUR(R.string.blur, R.drawable.np_blur, 4),
- BLUR_CARD(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),
- 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),
- FULL(R.string.full, R.drawable.np_full, 2),
- MATERIAL(R.string.material, R.drawable.np_material, 11),
- NORMAL(R.string.normal, R.drawable.np_normal, 0),
- PEAK(R.string.peak, R.drawable.np_peak, 14),
- PLAIN(R.string.plain, R.drawable.np_plain, 3),
- SIMPLE(R.string.simple, R.drawable.np_simple, 8),
- TINY(R.string.tiny, R.drawable.np_tiny, 7),
+ Adaptive(R.string.adaptive, R.drawable.np_adaptive, 10),
+ Blur(R.string.blur, R.drawable.np_blur, 4),
+ 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),
+ 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),
+ Full(R.string.full, R.drawable.np_full, 2),
+ Material(R.string.material, R.drawable.np_material, 11),
+ Normal(R.string.normal, R.drawable.np_normal, 0),
+ Peak(R.string.peak, R.drawable.np_peak, 14),
+ Plain(R.string.plain, R.drawable.np_plain, 3),
+ Simple(R.string.simple, R.drawable.np_simple, 8),
+ Tiny(R.string.tiny, R.drawable.np_tiny, 7),
}
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 1e685b2e9..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 a4b9b4064..cfc273c28 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
@@ -263,6 +263,7 @@ 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)
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
new file mode 100644
index 000000000..979dc2cec
--- /dev/null
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/home/HomePlayerFragment.kt
@@ -0,0 +1,130 @@
+package code.name.monkey.retromusic.fragments.player.home
+
+import android.graphics.Color
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.widget.Toolbar
+import code.name.monkey.appthemehelper.util.ATHUtil
+import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
+import code.name.monkey.retromusic.R
+import code.name.monkey.retromusic.fragments.base.AbsPlayerFragment
+import code.name.monkey.retromusic.helper.MusicPlayerRemote
+import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
+import code.name.monkey.retromusic.model.Song
+import code.name.monkey.retromusic.util.MusicUtil
+import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
+import kotlinx.android.synthetic.main.fragment_home_player.*
+
+
+class HomePlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelper.Callback {
+ private var lastColor: Int = 0
+ private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ progressViewUpdateHelper = MusicProgressViewUpdateHelper(this)
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ return inflater.inflate(R.layout.fragment_home_player, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ setUpPlayerToolbar()
+
+ }
+
+ override fun onResume() {
+ super.onResume()
+ progressViewUpdateHelper.start()
+ }
+
+ override fun onPause() {
+ super.onPause()
+ progressViewUpdateHelper.stop()
+
+ }
+
+ override fun playerToolbar(): Toolbar? {
+ return playerToolbar
+ }
+
+ override fun onShow() {
+
+ }
+
+ override fun onHide() {
+
+ }
+
+ override fun onServiceConnected() {
+ super.onServiceConnected()
+ updateSong()
+ }
+
+ override fun onPlayingMetaChanged() {
+ super.onPlayingMetaChanged()
+ updateSong()
+ }
+
+ private fun updateSong() {
+ val song = MusicPlayerRemote.currentSong
+ title.text = song.title
+ text.text = song.artistName
+ }
+
+ override fun onBackPressed(): Boolean {
+ return false
+ }
+
+ override fun toolbarIconColor(): Int {
+ return Color.WHITE
+ }
+
+ override val paletteColor: Int
+ get() = lastColor
+
+ override fun onColorChanged(color: MediaNotificationProcessor) {
+ lastColor = color.backgroundColor
+ callbacks?.onPaletteColorChanged()
+ ToolbarContentTintHelper.colorizeToolbar(
+ playerToolbar,
+ Color.WHITE,
+ requireActivity()
+ )
+ }
+
+ override fun toggleFavorite(song: Song) {
+ super.toggleFavorite(song)
+ if (song.id == MusicPlayerRemote.currentSong.id) {
+ updateIsFavorite()
+ }
+ }
+
+ override fun onFavoriteToggled() {
+ toggleFavorite(MusicPlayerRemote.currentSong)
+ }
+
+ override fun onUpdateProgressViews(progress: Int, total: Int) {
+ songTotalTime.text = MusicUtil.getReadableDurationString(progress.toLong())
+ }
+
+ private fun setUpPlayerToolbar() {
+ playerToolbar.inflateMenu(R.menu.menu_player)
+ playerToolbar.setNavigationOnClickListener { requireActivity().onBackPressed() }
+ playerToolbar.setOnMenuItemClickListener(this)
+
+ ToolbarContentTintHelper.colorizeToolbar(
+ playerToolbar,
+ ATHUtil.resolveColor(requireContext(), R.attr.colorControlNormal),
+ requireActivity()
+ )
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/preferences/NowPlayingScreenPreferenceDialog.kt b/app/src/main/java/code/name/monkey/retromusic/preferences/NowPlayingScreenPreferenceDialog.kt
index 1638d21ed..4704f27b7 100644
--- a/app/src/main/java/code/name/monkey/retromusic/preferences/NowPlayingScreenPreferenceDialog.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/preferences/NowPlayingScreenPreferenceDialog.kt
@@ -171,14 +171,14 @@ private class NowPlayingScreenAdapter(private val context: Context) : PagerAdapt
}
private fun isNowPlayingThemes(screen: NowPlayingScreen): Boolean {
- return (screen == FULL ||
- screen == CARD ||
- screen == PLAIN ||
- screen == BLUR ||
- screen == COLOR ||
- screen == SIMPLE ||
- screen == BLUR_CARD ||
- screen == CIRCLE ||
- screen == ADAPTIVE)
+ return (screen == Full ||
+ screen == Card ||
+ screen == Plain ||
+ screen == Blur ||
+ screen == Color ||
+ screen == Simple ||
+ screen == BlurCard ||
+ screen == Circle ||
+ screen == Adaptive)
&& !App.isProVersion()
}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.java
index c56c7c16f..5e24f1b7b 100644
--- a/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.java
+++ b/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.java
@@ -294,11 +294,11 @@ public class MusicUtil {
long minutes = (songDurationMillis / 1000) / 60;
long seconds = (songDurationMillis / 1000) % 60;
if (minutes < 60) {
- return String.format(Locale.getDefault(), "%01d:%02d", minutes, seconds);
+ return String.format(Locale.getDefault(), "%02d:%02d", minutes, seconds);
} else {
long hours = minutes / 60;
minutes = minutes % 60;
- return String.format(Locale.getDefault(), "%d:%02d:%02d", hours, minutes, seconds);
+ return String.format(Locale.getDefault(), "%02d:%02d:%02d", hours, minutes, seconds);
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java
index e14e0d894..f8c36eea8 100644
--- a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java
+++ b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java
@@ -641,7 +641,7 @@ public final class PreferenceUtil {
return nowPlayingScreen;
}
}
- return NowPlayingScreen.ADAPTIVE;
+ return NowPlayingScreen.Adaptive;
}
@SuppressLint("CommitPrefEdits")
diff --git a/app/src/main/res/drawable/side_gradient.xml b/app/src/main/res/drawable/side_gradient.xml
new file mode 100644
index 000000000..733ec817c
--- /dev/null
+++ b/app/src/main/res/drawable/side_gradient.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_classic_player.xml b/app/src/main/res/layout/fragment_classic_player.xml
index 6c3857565..76a2346d4 100644
--- a/app/src/main/res/layout/fragment_classic_player.xml
+++ b/app/src/main/res/layout/fragment_classic_player.xml
@@ -27,13 +27,13 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/shadow_down_strong"
- app:layout_constraintBottom_toBottomOf="@id/dummy_statusbar_actionbar"
+ app:layout_constraintBottom_toBottomOf="@id/toolbarContainer"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="@id/dummy_statusbar_actionbar" />
+ app:layout_constraintTop_toTopOf="@id/toolbarContainer" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file