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