From a74db341214c827e69e109d505859811b2facb52 Mon Sep 17 00:00:00 2001 From: h4h13 Date: Tue, 26 Feb 2019 23:38:07 +0530 Subject: [PATCH] Add tiny theme back --- .../base/AbsSlidingMusicPanelActivity.kt | 4 +- .../ui/fragments/NowPlayingScreen.kt | 2 +- .../mainactivity/home/BannerHomeFragment.kt | 9 +- .../tiny/TinyPlaybackControlsFragment.kt | 97 +++++++++++ .../player/tiny/TinyPlayerFragment.kt | 158 ++++++++++++++++++ .../main/res/drawable-xxxhdpi/np_tiny.webp | Bin 5080 -> 33906 bytes .../drawable/progress_drawable_vertical.xml | 5 +- ...ml => fragment_tiny_controls_fragment.xml} | 4 +- ...mm_player.xml => fragment_tiny_player.xml} | 45 +++-- 9 files changed, 291 insertions(+), 33 deletions(-) create mode 100644 app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/tiny/TinyPlaybackControlsFragment.kt create mode 100644 app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/tiny/TinyPlayerFragment.kt rename app/src/main/res/layout/{fragment_hmm_controls_fragment.xml => fragment_tiny_controls_fragment.xml} (91%) rename app/src/main/res/layout/{fragment_hmm_player.xml => fragment_tiny_player.xml} (79%) diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsSlidingMusicPanelActivity.kt index 36236f32..351ba9d3 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsSlidingMusicPanelActivity.kt @@ -19,11 +19,11 @@ import code.name.monkey.retromusic.ui.fragments.player.adaptive.AdaptiveFragment import code.name.monkey.retromusic.ui.fragments.player.blur.BlurPlayerFragment import code.name.monkey.retromusic.ui.fragments.player.card.CardFragment import code.name.monkey.retromusic.ui.fragments.player.cardblur.CardBlurFragment -import code.name.monkey.retromusic.ui.fragments.player.classic.ClassicPlayerFragment import code.name.monkey.retromusic.ui.fragments.player.color.ColorFragment import code.name.monkey.retromusic.ui.fragments.player.fit.FitFragment import code.name.monkey.retromusic.ui.fragments.player.flat.FlatPlayerFragment import code.name.monkey.retromusic.ui.fragments.player.full.FullPlayerFragment +import code.name.monkey.retromusic.ui.fragments.player.tiny.TinyPlayerFragment import code.name.monkey.retromusic.ui.fragments.player.material.MaterialFragment import code.name.monkey.retromusic.ui.fragments.player.normal.PlayerFragment import code.name.monkey.retromusic.ui.fragments.player.plain.PlainPlayerFragment @@ -192,7 +192,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), Sliding NowPlayingScreen.SIMPLE -> SimplePlayerFragment() NowPlayingScreen.MATERIAL -> MaterialFragment() NowPlayingScreen.COLOR -> ColorFragment() - //NowPlayingScreen.CLASSIC -> ClassicPlayerFragment() + NowPlayingScreen.TINY -> TinyPlayerFragment() else -> PlayerFragment() } // must implement AbsPlayerFragment supportFragmentManager.beginTransaction().replace(R.id.playerFragmentContainer, fragment).commit() diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/NowPlayingScreen.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/NowPlayingScreen.kt index a84eea0c..f11decc5 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/NowPlayingScreen.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/NowPlayingScreen.kt @@ -20,7 +20,7 @@ enum class NowPlayingScreen constructor(@param:StringRes @field:StringRes MATERIAL(R.string.material, R.drawable.np_material, 11), NORMAL(R.string.normal, R.drawable.np_normal, 0), PLAIN(R.string.plain, R.drawable.np_plain, 3), - //CLASSIC(R.string.classic, R.drawable.np_normal, 7), + TINY(R.string.tiny, R.drawable.np_tiny, 7), SIMPLE(R.string.simple, R.drawable.np_simple, 8) } diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt index 49789339..8583fc5d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt @@ -171,9 +171,14 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba } private fun setupToolbar() { - toolbar.navigationIcon = TintHelper.createTintedDrawable(ContextCompat.getDrawable(context!!, R.drawable.ic_search_white_24dp), ThemeStore.textColorSecondary(context!!)) mainActivity.title = null - toolbar.setBackgroundColor(Color.TRANSPARENT) + toolbar.apply { + navigationIcon = TintHelper.createTintedDrawable(ContextCompat.getDrawable(context!!, R.drawable.ic_search_white_24dp), ThemeStore.textColorSecondary(context!!)) + setBackgroundColor(Color.TRANSPARENT) + setNavigationOnClickListener { + NavigationUtil.goToSearch(activity) + } + } } override fun handleBackPress(): Boolean { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/tiny/TinyPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/tiny/TinyPlaybackControlsFragment.kt new file mode 100644 index 00000000..d87a0974 --- /dev/null +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/tiny/TinyPlaybackControlsFragment.kt @@ -0,0 +1,97 @@ +package code.name.monkey.retromusic.ui.fragments.player.tiny + +import android.graphics.PorterDuff +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import code.name.monkey.appthemehelper.util.ColorUtil +import code.name.monkey.appthemehelper.util.MaterialValueHelper +import code.name.monkey.retromusic.R +import code.name.monkey.retromusic.helper.MusicPlayerRemote +import code.name.monkey.retromusic.service.MusicService +import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerControlsFragment +import kotlinx.android.synthetic.main.fragment_tiny_controls_fragment.* + +class TinyPlaybackControlsFragment : AbsPlayerControlsFragment() { + + override fun show() { + + } + + override fun hide() { + + } + + override fun setUpProgressSlider() { + + } + + override fun setDark(color: Int) { + if (ColorUtil.isColorLight(color)) { + lastPlaybackControlsColor = MaterialValueHelper.getSecondaryTextColor(getActivity(), true); + lastDisabledPlaybackControlsColor = MaterialValueHelper.getSecondaryDisabledTextColor(getActivity(), true); + } else { + lastPlaybackControlsColor = MaterialValueHelper.getPrimaryTextColor(getActivity(), false); + lastDisabledPlaybackControlsColor = MaterialValueHelper.getPrimaryDisabledTextColor(getActivity(), false); + } + + updateRepeatState(); + updateShuffleState(); + } + + override fun onUpdateProgressViews(progress: Int, total: Int) { + + } + + private var lastPlaybackControlsColor: Int = 0 + private var lastDisabledPlaybackControlsColor: Int = 0 + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_tiny_controls_fragment, container, false); + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setUpMusicControllers() + } + + private fun setUpMusicControllers() { + setUpRepeatButton() + setUpShuffleButton() + setUpProgressSlider() + } + + private fun setUpShuffleButton() { + playerShuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() } + } + + private fun setUpRepeatButton() { + playerRepeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() } + } + + override fun updateShuffleState() { + when (MusicPlayerRemote.shuffleMode) { + MusicService.SHUFFLE_MODE_SHUFFLE -> playerShuffleButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) + else -> playerShuffleButton.setColorFilter(lastDisabledPlaybackControlsColor, PorterDuff.Mode.SRC_IN) + } + } + + override fun updateRepeatState() { + when (MusicPlayerRemote.repeatMode) { + MusicService.REPEAT_MODE_NONE -> { + playerRepeatButton.setImageResource(R.drawable.ic_repeat_white_24dp) + playerRepeatButton.setColorFilter(lastDisabledPlaybackControlsColor, PorterDuff.Mode.SRC_IN) + } + MusicService.REPEAT_MODE_ALL -> { + playerRepeatButton.setImageResource(R.drawable.ic_repeat_white_24dp) + playerRepeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) + } + MusicService.REPEAT_MODE_THIS -> { + playerRepeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp) + playerRepeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN) + } + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/tiny/TinyPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/tiny/TinyPlayerFragment.kt new file mode 100644 index 00000000..ee9a4aa3 --- /dev/null +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/tiny/TinyPlayerFragment.kt @@ -0,0 +1,158 @@ +package code.name.monkey.retromusic.ui.fragments.player.tiny + +import android.animation.AnimatorSet +import android.animation.ObjectAnimator +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.animation.LinearInterpolator +import androidx.appcompat.widget.Toolbar +import code.name.monkey.appthemehelper.ThemeStore +import code.name.monkey.appthemehelper.util.ColorUtil +import code.name.monkey.appthemehelper.util.MaterialValueHelper +import code.name.monkey.appthemehelper.util.TintHelper +import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper +import code.name.monkey.retromusic.R +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.model.Song +import code.name.monkey.retromusic.ui.fragments.MiniPlayerFragment +import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerFragment +import code.name.monkey.retromusic.ui.fragments.player.PlayerAlbumCoverFragment +import code.name.monkey.retromusic.util.MusicUtil +import code.name.monkey.retromusic.util.PreferenceUtil +import kotlinx.android.synthetic.main.fragment_tiny_player.* + +class TinyPlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelper.Callback { + override fun onUpdateProgressViews(progress: Int, total: Int) { + progressBar.max = total + + val animator = ObjectAnimator.ofInt(progressBar, "progress", progress) + + val animatorSet = AnimatorSet() + animatorSet.playSequentially(animator) + + animatorSet.duration = 1500 + animatorSet.interpolator = LinearInterpolator() + animatorSet.start() + + playerSongTotalTime.text = String.format("%s/%s", MusicUtil.getReadableDurationString(total.toLong()), + MusicUtil.getReadableDurationString(progress.toLong())) + } + + + override fun toolbarGet(): Toolbar { + return playerToolbar + } + + override fun onShow() { + + } + + override fun onHide() { + } + + override fun onBackPressed(): Boolean { + return false + } + + override fun toolbarIconColor(): Int { + return MaterialValueHelper.getSecondaryTextColor(context, ColorUtil.isColorLight(lastColor)) + } + + private var lastColor: Int = 0 + override val paletteColor: Int + get() = lastColor + + override fun onColorChanged(color: Int) { + val lastColor = if (PreferenceUtil.getInstance().adaptiveColor) { + color + } else { + ThemeStore.accentColor(context!!) + } + callbacks?.onPaletteColorChanged() + tinyPlaybackControlsFragment.setDark(lastColor) + + TintHelper.setTintAuto(progressBar, lastColor, false) + + val iconColor = MaterialValueHelper.getSecondaryTextColor(context, ColorUtil.isColorLight(lastColor)) + ToolbarContentTintHelper.colorizeToolbar(playerToolbar, iconColor, activity) + } + + override fun onFavoriteToggled() { + toggleFavorite(MusicPlayerRemote.currentSong) + } + + private lateinit var tinyPlaybackControlsFragment: TinyPlaybackControlsFragment + private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + progressViewUpdateHelper = MusicProgressViewUpdateHelper(this) + } + + override fun onResume() { + super.onResume() + progressViewUpdateHelper.start() + } + + override fun onPause() { + super.onPause() + progressViewUpdateHelper.stop() + } + + private fun updateSong() { + val song = MusicPlayerRemote.currentSong + songTitle.text = song.title + songText.text = String.format("%s \nby -%s", song.albumName, song.artistName) + } + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_tiny_player, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + progressBar.setOnClickListener(PlayPauseButtonOnClickHandler()) + progressBar.setOnTouchListener(MiniPlayerFragment.FlingPlayBackController(activity!!)) + + setUpPlayerToolbar() + setUpSubFragments() + } + + private fun setUpSubFragments() { + tinyPlaybackControlsFragment = childFragmentManager.findFragmentById(R.id.playbackControlsFragment) as TinyPlaybackControlsFragment + val playerAlbumCoverFragment = childFragmentManager.findFragmentById(R.id.playerAlbumCoverFragment) as PlayerAlbumCoverFragment + playerAlbumCoverFragment.setCallbacks(this) + + } + + private fun setUpPlayerToolbar() { + playerToolbar.apply { + inflateMenu(R.menu.menu_player) + setNavigationOnClickListener { activity!!.onBackPressed() } + setOnMenuItemClickListener(this@TinyPlayerFragment) + } + } + + override fun toggleFavorite(song: Song) { + super.toggleFavorite(song) + if (song.id == MusicPlayerRemote.currentSong.id) { + updateIsFavorite() + } + } + + override fun onServiceConnected() { + super.onServiceConnected() + updateSong() + } + + override fun onPlayingMetaChanged() { + super.onPlayingMetaChanged() + updateSong() + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable-xxxhdpi/np_tiny.webp b/app/src/main/res/drawable-xxxhdpi/np_tiny.webp index 0e00061ca172e8a655b5b40a032dbc7b7ca9e1f7..3cc976cdb5c9a849a147b88036147bf2c77ff476 100644 GIT binary patch literal 33906 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 literal 5080 zcmWIYbaT5P%)k)t>J$(bV4-jX$PW0#IG0h&f~ASwZlcE$U)3c`loZS?3^oXHX6F5= znfdf}z^T81{~q5C|C#l1|AlJaH*vw+qQ2P9WLY48x+2cU`RDURab59qnG*X7r!e33 z|B~xGCzauQ@L%bG=aLS#SN^+Qu{;*QUuu7GE8mb)z{Gs@;=J2kQjUpR%b)P8e)!lG z5SO5g!)vZt>{}zY%&lmcD*kHkEXA%>jPI8JGFy1gsG)l0zupzaJqzSs)i2IW&EHh3 z6&b}C@MxC7zMT29)EMS`waI0a`m^jcFDH%wn<2$;e%_P|T+@Pfd;grR{xHU6_WGHt zoq3OZ;}BKmS#E8MBiMOGSIAxE4_z}+i(`M>qiNBc2gH;E4ROSUb!UpSqi4)@!^usT zyxe`f+wVIt%$X)!ubwoeJK|Qm#VK_E%zqjEX1>?7u!fMO{2MlBY~*J9Dee1jL$s31 z2UYLpcMgB_b+9D}d)=c_j6tU^aJ8Dhl;Yu;Y+1ed>SR{d?(4e*)D%@O|3D6{ESbj| z?7QZ_09(Ic=PA#-CriE`xQ`=k`Fh_qVOlzM{w~9q&Li)X#jz*C3D?C}UG>&>&dK%9<~weBSTYaLRQ1vaXKl?=%>;?vMel@S`eqsa_seg@W>BQLv+rian=Fq-V4 zjpotp59vINhQkO7huQ-S|Nd{-aDd|u0}L=X7(IEhk?U3EQGr?E)7QnO#9mcCrd|D} zYIc+~f8d{cj!AkECvzW{Gc7TjHLce%D{*CJpBVSTQ;tV&UtoT+Ygv%WCGQ$V%@&VS z*7uijJSd*Zz{vIV*-<)mh<<@mf!Dv%w6c=DHgQ(-ZNwKn*)K=|z zVt&T%gyNii`_GogTde6Sa(-}Z!^1=DlfS=`X0_h;IBNZ(Ti?G3?97xuYx#jyuCKxV z{?dQdVNXw=G5+oKXw6Rf{7swBKhR|4Q@vRBzjb-_gatB>@4jcs-(66&Z(?1a>o5ZkThs1-k>4Np zBz$|*ay#{I>ecwBb*EUPYIqF4C_GQ)lSq?^`nT$Gd6DwgO@bcNq&{sgcz;)A{tQu( znx=I;Mw+X4#XUFne=Nb^r)Pc1{!e_H{4Bm8{&(C8nZGPNf@Io`RmDge$Qn6c+ud`y zM~X%8V)>iO+CDq>{|stch3kvn{c`L!`Ia&-w$^aozCX&pmr0f9adR!#;L~AwJt6e| z=C`pk%d{B!Px6Ed)v>(nbB_EN$-U=A=X2&Mn_~7fzvG^w@b=A1>uH&cnYGil`kp-e zv&%L-Wl!(td73d_76ep8e)Ie@3(xC3AO(GchpC zM@kBA4C2!29ga8F>?vyCoZe;r{It-mV|&lK9!*SM`Pk|F`pXmh!xzlGz1&PGF6Kp& zIQyE1r!Op?<#&|f^i?Ic7>48n5?*%}JejoV*#CvA7V$7#+{#_86L79;{%yUOtvf## o`)M)xEU&8$V~`befaN|g%_AxOr}DDHdf`KQjCLL - + @@ -10,7 +10,8 @@ android:clipOrientation="vertical" android:gravity="bottom"> - diff --git a/app/src/main/res/layout/fragment_hmm_controls_fragment.xml b/app/src/main/res/layout/fragment_tiny_controls_fragment.xml similarity index 91% rename from app/src/main/res/layout/fragment_hmm_controls_fragment.xml rename to app/src/main/res/layout/fragment_tiny_controls_fragment.xml index 9127e5fb..a31f7ee8 100644 --- a/app/src/main/res/layout/fragment_hmm_controls_fragment.xml +++ b/app/src/main/res/layout/fragment_tiny_controls_fragment.xml @@ -8,7 +8,7 @@ android:orientation="vertical"> - + + - - - - + android:background="#90000000" /> @@ -90,11 +87,11 @@ android:orientation="vertical"> + tools:layout="@layout/fragment_tiny_controls_fragment" /> @@ -116,13 +113,13 @@ android:orientation="horizontal">