Add remote wallpapers

upstream-sync
Arturo Mejia 2 years ago committed by mergify[bot]
parent b6f066c9ed
commit 1c66804c0b

@ -5,10 +5,8 @@
package org.mozilla.fenix
import android.content.Context
import android.os.StrictMode
import mozilla.components.support.locale.LocaleManager
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.
@ -87,7 +85,7 @@ object FeatureFlags {
/**
* Enables showing the wallpaper functionality.
*/
val showWallpapers = Config.channel.isNightlyOrDebug
const val showWallpapers = true
/**
* Enables the Contile top sites.
@ -103,12 +101,9 @@ object FeatureFlags {
* Enables themed wallpapers feature.
*/
fun isThemedWallpapersFeatureEnabled(context: Context): Boolean {
val strictMode = context.components.strictMode
return strictMode.resetAfter(StrictMode.allowThreadDiskReads()) {
val langTag = LocaleManager.getCurrentLocale(context)
?.toLanguageTag() ?: getSystemDefault().toLanguageTag()
listOf("en-US", "es-US").contains(langTag) && Config.channel.isNightlyOrDebug
}
val langTag = LocaleManager.getCurrentLocale(context)
?.toLanguageTag() ?: getSystemDefault().toLanguageTag()
return listOf("en-US", "es-US").contains(langTag)
}
/**

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

@ -5,6 +5,7 @@
package org.mozilla.fenix.wallpapers
import androidx.annotation.DrawableRes
import java.util.Calendar
import java.util.Date
/**
@ -47,8 +48,15 @@ sealed class Wallpaper {
sealed class Remote : Wallpaper() {
abstract val expirationDate: Date?
abstract val remoteParentDirName: String
data class Focus(override val name: String, override val expirationDate: Date? = null) : Remote() {
override val remoteParentDirName: String = "focus"
@Suppress("MagicNumber")
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),
)
private val remoteWallpapers: List<Wallpaper.Remote> = listOf(
Wallpaper.Remote.Focus(
"focus",
Wallpaper.Remote.House(
"panda",
),
Wallpaper.Remote.House(
"mei",
),
)
private val availableWallpapers = listOf(defaultWallpaper) + localWallpapers + remoteWallpapers

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

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

Loading…
Cancel
Save