[fenix] Add remote wallpapers

pull/600/head
Arturo Mejia 3 years ago committed by mergify[bot]
parent ffb0d67b02
commit 9ce5a7dd27

@ -5,10 +5,8 @@
package org.mozilla.fenix package org.mozilla.fenix
import android.content.Context import android.content.Context
import android.os.StrictMode
import mozilla.components.support.locale.LocaleManager import mozilla.components.support.locale.LocaleManager
import mozilla.components.support.locale.LocaleManager.getSystemDefault import mozilla.components.support.locale.LocaleManager.getSystemDefault
import org.mozilla.fenix.ext.components
/** /**
* A single source for setting feature flags that are mostly based on build type. * A single source for setting feature flags that are mostly based on build type.
@ -87,7 +85,7 @@ object FeatureFlags {
/** /**
* Enables showing the wallpaper functionality. * Enables showing the wallpaper functionality.
*/ */
val showWallpapers = Config.channel.isNightlyOrDebug const val showWallpapers = true
/** /**
* Enables the Contile top sites. * Enables the Contile top sites.
@ -103,12 +101,9 @@ object FeatureFlags {
* Enables themed wallpapers feature. * Enables themed wallpapers feature.
*/ */
fun isThemedWallpapersFeatureEnabled(context: Context): Boolean { fun isThemedWallpapersFeatureEnabled(context: Context): Boolean {
val strictMode = context.components.strictMode val langTag = LocaleManager.getCurrentLocale(context)
return strictMode.resetAfter(StrictMode.allowThreadDiskReads()) { ?.toLanguageTag() ?: getSystemDefault().toLanguageTag()
val langTag = LocaleManager.getCurrentLocale(context) return listOf("en-US", "es-US").contains(langTag)
?.toLanguageTag() ?: getSystemDefault().toLanguageTag()
listOf("en-US", "es-US").contains(langTag) && Config.channel.isNightlyOrDebug
}
} }
/** /**

@ -790,7 +790,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider {
@OptIn(DelicateCoroutinesApi::class) @OptIn(DelicateCoroutinesApi::class)
open fun downloadWallpapers() { open fun downloadWallpapers() {
if (FeatureFlags.showWallpapers) { if (FeatureFlags.showWallpapers && FeatureFlags.isThemedWallpapersFeatureEnabled(this)) {
GlobalScope.launch { GlobalScope.launch {
components.wallpaperManager.downloadAllRemoteWallpapers() components.wallpaperManager.downloadAllRemoteWallpapers()
} }

@ -5,6 +5,7 @@
package org.mozilla.fenix.wallpapers package org.mozilla.fenix.wallpapers
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import java.util.Calendar
import java.util.Date import java.util.Date
/** /**
@ -47,8 +48,15 @@ sealed class Wallpaper {
sealed class Remote : Wallpaper() { sealed class Remote : Wallpaper() {
abstract val expirationDate: Date? abstract val expirationDate: Date?
abstract val remoteParentDirName: String abstract val remoteParentDirName: String
data class Focus(override val name: String, override val expirationDate: Date? = null) : Remote() { @Suppress("MagicNumber")
override val remoteParentDirName: String = "focus" data class House(
override val name: String,
override val expirationDate: Date? = Calendar.getInstance().run {
set(2022, Calendar.APRIL, 30)
time
}
) : Remote() {
override val remoteParentDirName: String = "house"
} }
} }

@ -240,8 +240,11 @@ class WallpaperManager(
Wallpaper.Local.Firefox("sunrise", R.drawable.sunrise), Wallpaper.Local.Firefox("sunrise", R.drawable.sunrise),
) )
private val remoteWallpapers: List<Wallpaper.Remote> = listOf( private val remoteWallpapers: List<Wallpaper.Remote> = listOf(
Wallpaper.Remote.Focus( Wallpaper.Remote.House(
"focus", "panda",
),
Wallpaper.Remote.House(
"mei",
), ),
) )
private val availableWallpapers = listOf(defaultWallpaper) + localWallpapers + remoteWallpapers private val availableWallpapers = listOf(defaultWallpaper) + localWallpapers + remoteWallpapers

@ -61,7 +61,7 @@ class WallpaperFileManagerTest {
val currentName = "current" val currentName = "current"
val currentWallpaper = Wallpaper.Expired(currentName) val currentWallpaper = Wallpaper.Expired(currentName)
val availableName = "available" val availableName = "available"
val available = Wallpaper.Remote.Focus(name = availableName) val available = Wallpaper.Remote.House(name = availableName)
val unavailableName = "unavailable" val unavailableName = "unavailable"
createAllFiles(currentName) createAllFiles(currentName)
createAllFiles(availableName) createAllFiles(availableName)

@ -145,6 +145,6 @@ class WallpaperManagerTest {
TimeRelation.LATER -> fakeCalendar.add(Calendar.DATE, 5) TimeRelation.LATER -> fakeCalendar.add(Calendar.DATE, 5)
} }
val relativeTime = fakeCalendar.time val relativeTime = fakeCalendar.time
return Wallpaper.Remote.Focus(name = name, expirationDate = relativeTime) return Wallpaper.Remote.House(name = name, expirationDate = relativeTime)
} }
} }

Loading…
Cancel
Save