diff --git a/app/build.gradle b/app/build.gradle index 233110c89..8e7c3c5e0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -154,6 +154,7 @@ dependencies { implementation 'com.github.bosphere.android-fadingedgelayout:fadingedgelayout:1.0.0' implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:3.0.0-RC3' + implementation 'com.github.jetradarmobile:android-snowfall:1.2.1' implementation 'org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5' implementation 'com.github.Adonai:jaudiotagger:2.3.15' diff --git a/app/src/main/assets/license.html b/app/src/main/assets/license.html index 5c375daf0..b0de6464e 100644 --- a/app/src/main/assets/license.html +++ b/app/src/main/assets/license.html @@ -68,6 +68,8 @@ title="FadingEdgeLayout">FadingEdgeLayout by bosphere

KeyboardVisibilityEvent by Yasuhiro SHIMIZU

+

android-snowfall by Jetradar Mobile

Icons by Austin Andrews

Material Design City Wallpaper

diff --git a/app/src/main/java/code/name/monkey/retromusic/Constants.kt b/app/src/main/java/code/name/monkey/retromusic/Constants.kt index 153c12758..a8e96d211 100644 --- a/app/src/main/java/code/name/monkey/retromusic/Constants.kt +++ b/app/src/main/java/code/name/monkey/retromusic/Constants.kt @@ -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" diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerFragment.kt index 96dfc28d3..d23dc64e1 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerFragment.kt @@ -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() } diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt index cdcc2216d..6aca8cde7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt @@ -657,4 +657,7 @@ object PreferenceUtil { val materialYou get() = sharedPreferences.getBoolean(MATERIAL_YOU, VersionUtils.hasS()) + + val isSnowFalling + get() = sharedPreferences.getBoolean(SNOWFALL, false) } diff --git a/app/src/main/res/layout-land/fragment_player.xml b/app/src/main/res/layout-land/fragment_player.xml index e447c6198..29c98c625 100755 --- a/app/src/main/res/layout-land/fragment_player.xml +++ b/app/src/main/res/layout-land/fragment_player.xml @@ -7,16 +7,18 @@ android:clickable="true" android:focusable="true"> - - + diff --git a/app/src/main/res/layout/fragment_player.xml b/app/src/main/res/layout/fragment_player.xml index 2b443c336..895c72909 100644 --- a/app/src/main/res/layout/fragment_player.xml +++ b/app/src/main/res/layout/fragment_player.xml @@ -8,7 +8,6 @@ android:clickable="true" android:focusable="true"> - + + + + @@ -77,8 +83,8 @@ android:max="25" android:summary="@string/pref_blur_amount_summary" android:title="@string/pref_blur_amount_title" - app:icon="@drawable/ic_blur_on" app:ateKey_pref_unit="px" + app:icon="@drawable/ic_blur_on" app:showSeekBarValue="true" />