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 d25174c5c0..a1ae8990b2 100644 --- a/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperManager.kt +++ b/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperManager.kt @@ -115,10 +115,10 @@ class WallpaperManager( } private fun getCurrentWallpaperFromSettings(): Wallpaper { - val currentWallpaper = settings.currentWallpaper - return if (currentWallpaper.isEmpty()) { + return if (isDefaultTheCurrentWallpaper(settings)) { defaultWallpaper } else { + val currentWallpaper = settings.currentWallpaper wallpapers.find { it.name == currentWallpaper } ?: fileManager.lookupExpiredWallpaper(currentWallpaper) ?: defaultWallpaper @@ -240,6 +240,13 @@ class WallpaperManager( } companion object { + /** + * Get whether the default wallpaper should be used. + */ + fun isDefaultTheCurrentWallpaper(settings: Settings): Boolean = with(settings.currentWallpaper) { + return isEmpty() || equals(defaultWallpaper.name) + } + val defaultWallpaper = Wallpaper.Default private val localWallpapers: List = listOf( Wallpaper.Local.Firefox("amethyst", R.drawable.amethyst), 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 1ade0f4968..606dd1442b 100644 --- a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperManagerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperManagerTest.kt @@ -166,6 +166,33 @@ class WallpaperManagerTest { assertEquals(expected, wallpaperManager.currentWallpaper) } + @Test + fun `GIVEN no custom wallpaper set WHEN checking whether the current wallpaper should be default THEN return true`() { + every { mockSettings.currentWallpaper } returns "" + + val result = WallpaperManager.isDefaultTheCurrentWallpaper(mockSettings) + + assertTrue(result) + } + + @Test + fun `GIVEN the default wallpaper is set to be shown WHEN checking whether the current wallpaper should be default THEN return true`() { + every { mockSettings.currentWallpaper } returns WallpaperManager.defaultWallpaper.name + + val result = WallpaperManager.isDefaultTheCurrentWallpaper(mockSettings) + + assertTrue(result) + } + + @Test + fun `GIVEN a custom wallpaper is set to be shown WHEN checking whether the current wallpaper should be default THEN return false`() { + every { mockSettings.currentWallpaper } returns "test" + + val result = WallpaperManager.isDefaultTheCurrentWallpaper(mockSettings) + + assertFalse(result) + } + private enum class TimeRelation { BEFORE, NOW,