diff --git a/app/src/main/java/code/name/monkey/retromusic/helper/WallpaperAccentManager.kt b/app/src/main/java/code/name/monkey/retromusic/helper/WallpaperAccentManager.kt
index fa4dc38f9..62191bdd3 100644
--- a/app/src/main/java/code/name/monkey/retromusic/helper/WallpaperAccentManager.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/helper/WallpaperAccentManager.kt
@@ -1,6 +1,5 @@
package code.name.monkey.retromusic.helper
-import android.app.WallpaperColors
import android.app.WallpaperManager
import android.content.Context
import android.os.Handler
@@ -12,18 +11,21 @@ import code.name.monkey.retromusic.util.PreferenceUtil
class WallpaperAccentManager(val context: Context) {
private val onColorsChangedListener by lazy {
- WallpaperManager.OnColorsChangedListener { colors, which ->
- updateColors(colors, which)
+ WallpaperManager.OnColorsChangedListener { _, _ ->
+ updateColors()
}
}
fun init() {
- if (VersionUtils.hasOreoMR1() && PreferenceUtil.wallpaperAccent) {
- WallpaperManager.getInstance(context).apply {
- addOnColorsChangedListener(onColorsChangedListener, Handler(Looper.getMainLooper()))
- ThemeStore.editTheme(context).wallpaperColor(
- getWallpaperColors(WallpaperManager.FLAG_SYSTEM)?.primaryColor?.toArgb() ?: 0
- ).commit()
+ if (VersionUtils.hasOreoMR1()) {
+ with(WallpaperManager.getInstance(context)) {
+ updateColors()
+ if (PreferenceUtil.wallpaperAccent) {
+ addOnColorsChangedListener(
+ onColorsChangedListener,
+ Handler(Looper.getMainLooper())
+ )
+ }
}
}
}
@@ -35,11 +37,15 @@ class WallpaperAccentManager(val context: Context) {
}
}
- private fun updateColors(colors: WallpaperColors?, which: Int) {
+ private fun updateColors() {
if (VersionUtils.hasOreoMR1()) {
- if (which == WallpaperManager.FLAG_SYSTEM && colors != null) {
- ThemeStore.editTheme(context).wallpaperColor(colors.primaryColor.toArgb())
- .commit()
+ val colors = WallpaperManager.getInstance(context)
+ .getWallpaperColors(WallpaperManager.FLAG_SYSTEM)
+ if (colors != null) {
+ val primaryColor = colors.primaryColor.toArgb()
+ if (primaryColor != ThemeStore.wallpaperColor(context)) {
+ ThemeStore.editTheme(context).wallpaperColor(primaryColor).commit()
+ }
}
}
}
diff --git a/app/src/main/res/xml/pref_now_playing_screen.xml b/app/src/main/res/xml/pref_now_playing_screen.xml
index 60a3348b8..42df7b16b 100644
--- a/app/src/main/res/xml/pref_now_playing_screen.xml
+++ b/app/src/main/res/xml/pref_now_playing_screen.xml
@@ -39,7 +39,7 @@