From 9ce5a7dd27198657c5a8fe2c9887cc243b606a84 Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Tue, 1 Mar 2022 15:58:23 -0500 Subject: [PATCH] [fenix] Add remote wallpapers --- app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 13 ++++--------- .../main/java/org/mozilla/fenix/FenixApplication.kt | 2 +- .../java/org/mozilla/fenix/wallpapers/Wallpaper.kt | 12 ++++++++++-- .../mozilla/fenix/wallpapers/WallpaperManager.kt | 7 +++++-- .../fenix/wallpapers/WallpaperFileManagerTest.kt | 2 +- .../fenix/wallpapers/WallpaperManagerTest.kt | 2 +- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index ca0a8d14e8..eab79a290f 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -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) } /** diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index 39a85ac3db..0d8cfa5529 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -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() } diff --git a/app/src/main/java/org/mozilla/fenix/wallpapers/Wallpaper.kt b/app/src/main/java/org/mozilla/fenix/wallpapers/Wallpaper.kt index e67bdbce3d..21efbb0730 100644 --- a/app/src/main/java/org/mozilla/fenix/wallpapers/Wallpaper.kt +++ b/app/src/main/java/org/mozilla/fenix/wallpapers/Wallpaper.kt @@ -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" } } diff --git a/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperManager.kt b/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperManager.kt index 1522b02b41..e5bdab144f 100644 --- a/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperManager.kt +++ b/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperManager.kt @@ -240,8 +240,11 @@ class WallpaperManager( Wallpaper.Local.Firefox("sunrise", R.drawable.sunrise), ) private val remoteWallpapers: List = listOf( - Wallpaper.Remote.Focus( - "focus", + Wallpaper.Remote.House( + "panda", + ), + Wallpaper.Remote.House( + "mei", ), ) private val availableWallpapers = listOf(defaultWallpaper) + localWallpapers + remoteWallpapers diff --git a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperFileManagerTest.kt b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperFileManagerTest.kt index c15d919dfb..c506fa7515 100644 --- a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperFileManagerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperFileManagerTest.kt @@ -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) diff --git a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperManagerTest.kt b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperManagerTest.kt index 96a169c2d7..672e8c92fc 100644 --- a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperManagerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperManagerTest.kt @@ -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) } }