diff --git a/lawnchair/src/app/lawnchair/icons/CustomIconPack.kt b/lawnchair/src/app/lawnchair/icons/CustomIconPack.kt index a1f77ad1e1..c4645afd0a 100644 --- a/lawnchair/src/app/lawnchair/icons/CustomIconPack.kt +++ b/lawnchair/src/app/lawnchair/icons/CustomIconPack.kt @@ -33,6 +33,10 @@ class CustomIconPack(context: Context, packPackageName: String) : pm.getApplicationInfo(packPackageName, 0).loadLabel(pm).toString() } + init { + startLoad() + } + override fun getIcon(componentName: ComponentName) = componentMap[componentName] override fun getCalendar(componentName: ComponentName) = calendarMap[componentName] override fun getClock(entry: IconEntry) = clockMetas[entry] diff --git a/lawnchair/src/app/lawnchair/icons/IconPack.kt b/lawnchair/src/app/lawnchair/icons/IconPack.kt index a6d6ea5b5b..48caf28d71 100644 --- a/lawnchair/src/app/lawnchair/icons/IconPack.kt +++ b/lawnchair/src/app/lawnchair/icons/IconPack.kt @@ -13,13 +13,13 @@ abstract class IconPack( val packPackageName: String, ) { private var waiter: Semaphore? = Semaphore(0) - private val deferredLoad: Deferred + private lateinit var deferredLoad: Deferred abstract val label: String private val alphabeticIndexCompat by lazy { AlphabeticIndexCompat(context) } - init { + protected fun startLoad() { deferredLoad = scope.async(Dispatchers.IO) { loadInternal() waiter?.release() diff --git a/lawnchair/src/app/lawnchair/icons/SystemIconPack.kt b/lawnchair/src/app/lawnchair/icons/SystemIconPack.kt index f0ce62bc60..a5772eeaca 100644 --- a/lawnchair/src/app/lawnchair/icons/SystemIconPack.kt +++ b/lawnchair/src/app/lawnchair/icons/SystemIconPack.kt @@ -25,6 +25,10 @@ class SystemIconPack(context: Context) : IconPack(context, "") { .associateBy { ComponentKey(it.componentName, it.user) } } + init { + startLoad() + } + override fun getIcon(componentName: ComponentName) = IconEntry(packPackageName, ComponentKey(componentName, Process.myUserHandle()).toString(), IconType.Normal) override fun getCalendar(componentName: ComponentName): IconEntry? = null