Added Snowfall effect

This commit is contained in:
Prathamesh More 2021-12-24 16:47:57 +05:30
parent 8e1dc3a600
commit 5a310ec329
8 changed files with 58 additions and 8 deletions

View file

@ -152,3 +152,4 @@ const val REMEMBER_LAST_TAB = "remember_last_tab"
const val LAST_USED_TAB = "last_used_tab"
const val WHITELIST_MUSIC = "whitelist_music"
const val MATERIAL_YOU = "material_you"
const val SNOWFALL = "snowfall"

View file

@ -16,12 +16,17 @@ package code.name.monkey.retromusic.fragments.player.normal
import android.animation.ArgbEvaluator
import android.animation.ValueAnimator
import android.content.SharedPreferences
import android.graphics.drawable.GradientDrawable
import android.os.Bundle
import android.view.View
import androidx.appcompat.widget.Toolbar
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.preference.PreferenceManager
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.SNOWFALL
import code.name.monkey.retromusic.databinding.FragmentPlayerBinding
import code.name.monkey.retromusic.extensions.colorControlNormal
import code.name.monkey.retromusic.extensions.drawAboveSystemBars
@ -35,7 +40,8 @@ import code.name.monkey.retromusic.util.ViewUtil
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
import code.name.monkey.retromusic.views.DrawableGradient
class PlayerFragment : AbsPlayerFragment(R.layout.fragment_player) {
class PlayerFragment : AbsPlayerFragment(R.layout.fragment_player),
SharedPreferences.OnSharedPreferenceChangeListener {
private var lastColor: Int = 0
override val paletteColor: Int
@ -120,11 +126,23 @@ class PlayerFragment : AbsPlayerFragment(R.layout.fragment_player) {
_binding = FragmentPlayerBinding.bind(view)
setUpSubFragments()
setUpPlayerToolbar()
if (PreferenceUtil.isSnowFalling) {
binding.snowfallView.isVisible = true
binding.snowfallView.restartFalling()
} else {
binding.snowfallView.isVisible = false
binding.snowfallView.stopFalling()
}
PreferenceManager.getDefaultSharedPreferences(requireContext())
.registerOnSharedPreferenceChangeListener(this)
playerToolbar().drawAboveSystemBars()
}
override fun onDestroyView() {
super.onDestroyView()
PreferenceManager.getDefaultSharedPreferences(requireContext())
.unregisterOnSharedPreferenceChangeListener(this)
_binding = null
}
@ -149,6 +167,16 @@ class PlayerFragment : AbsPlayerFragment(R.layout.fragment_player) {
)
}
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
if (key == SNOWFALL && PreferenceUtil.isSnowFalling) {
binding.snowfallView.isVisible = true
binding.snowfallView.restartFalling()
} else {
binding.snowfallView.isVisible = false
binding.snowfallView.stopFalling()
}
}
override fun onServiceConnected() {
updateIsFavorite()
}

View file

@ -657,4 +657,7 @@ object PreferenceUtil {
val materialYou
get() = sharedPreferences.getBoolean(MATERIAL_YOU, VersionUtils.hasS())
val isSnowFalling
get() = sharedPreferences.getBoolean(SNOWFALL, false)
}