Embedding themeId in the themeController
> Adding freshnessId when parsing theme data from cache
Bug: 381897614
Test: atest ThemeManagerTest
Flag: EXEMPT refactor
Change-Id: I4d9c89d98d46c1781d97d5e0db35aef4d2a73317
diff --git a/iconloaderlib/src/com/android/launcher3/icons/ThemedBitmap.kt b/iconloaderlib/src/com/android/launcher3/icons/ThemedBitmap.kt
index c9641ef..d94aec8 100644
--- a/iconloaderlib/src/com/android/launcher3/icons/ThemedBitmap.kt
+++ b/iconloaderlib/src/com/android/launcher3/icons/ThemedBitmap.kt
@@ -32,6 +32,8 @@
interface IconThemeController {
+ val themeID: String
+
fun createThemedBitmap(
icon: AdaptiveIconDrawable,
info: BitmapInfo,
diff --git a/iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.kt b/iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.kt
index f930afe..b755e1f 100644
--- a/iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.kt
+++ b/iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.kt
@@ -551,7 +551,8 @@
data = monoIconData,
info = entry.bitmap,
factory = factory,
- sourceHint = SourceHint(cacheKey, logic),
+ sourceHint =
+ SourceHint(cacheKey, logic, c.getString(INDEX_FRESHNESS_ID)),
)
}
}
@@ -659,9 +660,10 @@
@JvmField
val COLUMNS_HIGH_RES =
- COLUMNS_LOW_RES.copyOf(COLUMNS_LOW_RES.size + 2).apply {
- this[size - 2] = COLUMN_ICON
- this[size - 1] = COLUMN_MONO_ICON
+ COLUMNS_LOW_RES.copyOf(COLUMNS_LOW_RES.size + 3).apply {
+ this[size - 3] = COLUMN_ICON
+ this[size - 2] = COLUMN_MONO_ICON
+ this[size - 1] = COLUMN_FRESHNESS_ID
}
@JvmField val INDEX_TITLE = COLUMNS_HIGH_RES.indexOf(COLUMN_LABEL)
@@ -669,6 +671,7 @@
@JvmField val INDEX_FLAGS = COLUMNS_HIGH_RES.indexOf(COLUMN_FLAGS)
@JvmField val INDEX_ICON = COLUMNS_HIGH_RES.indexOf(COLUMN_ICON)
@JvmField val INDEX_MONO_ICON = COLUMNS_HIGH_RES.indexOf(COLUMN_MONO_ICON)
+ @JvmField val INDEX_FRESHNESS_ID = COLUMNS_HIGH_RES.indexOf(COLUMN_FRESHNESS_ID)
@JvmStatic
fun CacheLookupFlag.toLookupColumns() =
diff --git a/iconloaderlib/src/com/android/launcher3/icons/mono/MonoIconThemeController.kt b/iconloaderlib/src/com/android/launcher3/icons/mono/MonoIconThemeController.kt
index b15ef93..2f637f5 100644
--- a/iconloaderlib/src/com/android/launcher3/icons/mono/MonoIconThemeController.kt
+++ b/iconloaderlib/src/com/android/launcher3/icons/mono/MonoIconThemeController.kt
@@ -45,6 +45,8 @@
private val colorProvider: (Context) -> IntArray = ThemedIconDrawable.Companion::getColors
) : IconThemeController {
+ override val themeID = "with-theme"
+
override fun createThemedBitmap(
icon: AdaptiveIconDrawable,
info: BitmapInfo,