|
|
@ -7,6 +7,7 @@ package org.mozilla.fenix.wallpapers
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Context
|
|
|
|
import android.view.View
|
|
|
|
import android.view.View
|
|
|
|
import androidx.appcompat.app.AppCompatDelegate
|
|
|
|
import androidx.appcompat.app.AppCompatDelegate
|
|
|
|
|
|
|
|
import mozilla.components.support.base.log.logger.Logger
|
|
|
|
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
|
|
|
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
|
|
|
import org.mozilla.fenix.ext.asActivity
|
|
|
|
import org.mozilla.fenix.ext.asActivity
|
|
|
|
import org.mozilla.fenix.utils.Settings
|
|
|
|
import org.mozilla.fenix.utils.Settings
|
|
|
@ -15,7 +16,7 @@ import org.mozilla.fenix.utils.Settings
|
|
|
|
* Provides access to available wallpapers and manages their states.
|
|
|
|
* Provides access to available wallpapers and manages their states.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
class WallpaperManager(private val settings: Settings) {
|
|
|
|
class WallpaperManager(private val settings: Settings) {
|
|
|
|
|
|
|
|
val logger = Logger("WallpaperManager")
|
|
|
|
var currentWallpaper: Wallpaper = getCurrentWallpaperFromSettings()
|
|
|
|
var currentWallpaper: Wallpaper = getCurrentWallpaperFromSettings()
|
|
|
|
set(value) {
|
|
|
|
set(value) {
|
|
|
|
settings.currentWallpaper = value.name
|
|
|
|
settings.currentWallpaper = value.name
|
|
|
@ -29,7 +30,9 @@ class WallpaperManager(private val settings: Settings) {
|
|
|
|
if (newWallpaper == Wallpaper.NONE) {
|
|
|
|
if (newWallpaper == Wallpaper.NONE) {
|
|
|
|
val context = wallpaperContainer.context
|
|
|
|
val context = wallpaperContainer.context
|
|
|
|
wallpaperContainer.setBackgroundColor(context.getColorFromAttr(newWallpaper.drawable))
|
|
|
|
wallpaperContainer.setBackgroundColor(context.getColorFromAttr(newWallpaper.drawable))
|
|
|
|
|
|
|
|
logger.info("Wallpaper update to default background")
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
logger.info("Wallpaper update to ${newWallpaper.name}")
|
|
|
|
wallpaperContainer.setBackgroundResource(newWallpaper.drawable)
|
|
|
|
wallpaperContainer.setBackgroundResource(newWallpaper.drawable)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
currentWallpaper = newWallpaper
|
|
|
|
currentWallpaper = newWallpaper
|
|
|
@ -41,8 +44,10 @@ class WallpaperManager(private val settings: Settings) {
|
|
|
|
val mode = if (currentWallpaper != Wallpaper.NONE) {
|
|
|
|
val mode = if (currentWallpaper != Wallpaper.NONE) {
|
|
|
|
if (currentWallpaper.isDark) {
|
|
|
|
if (currentWallpaper.isDark) {
|
|
|
|
updateThemePreference(useDarkTheme = true)
|
|
|
|
updateThemePreference(useDarkTheme = true)
|
|
|
|
|
|
|
|
logger.info("theme changed to useDarkTheme")
|
|
|
|
AppCompatDelegate.MODE_NIGHT_YES
|
|
|
|
AppCompatDelegate.MODE_NIGHT_YES
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
logger.info("theme changed to useLightTheme")
|
|
|
|
updateThemePreference(useLightTheme = true)
|
|
|
|
updateThemePreference(useLightTheme = true)
|
|
|
|
AppCompatDelegate.MODE_NIGHT_NO
|
|
|
|
AppCompatDelegate.MODE_NIGHT_NO
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -55,6 +60,7 @@ class WallpaperManager(private val settings: Settings) {
|
|
|
|
|
|
|
|
|
|
|
|
if (AppCompatDelegate.getDefaultNightMode() != mode) {
|
|
|
|
if (AppCompatDelegate.getDefaultNightMode() != mode) {
|
|
|
|
AppCompatDelegate.setDefaultNightMode(mode)
|
|
|
|
AppCompatDelegate.setDefaultNightMode(mode)
|
|
|
|
|
|
|
|
logger.info("theme updated activity recreated")
|
|
|
|
context.asActivity()?.recreate()
|
|
|
|
context.asActivity()?.recreate()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|