Fix iconpack loading before initialization

This commit is contained in:
Suphon Thanakornpakapong
2022-01-13 13:24:58 +07:00
parent 477ae76a49
commit f69df95eb5
3 changed files with 10 additions and 2 deletions
@@ -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]
@@ -13,13 +13,13 @@ abstract class IconPack(
val packPackageName: String,
) {
private var waiter: Semaphore? = Semaphore(0)
private val deferredLoad: Deferred<Unit>
private lateinit var deferredLoad: Deferred<Unit>
abstract val label: String
private val alphabeticIndexCompat by lazy { AlphabeticIndexCompat(context) }
init {
protected fun startLoad() {
deferredLoad = scope.async(Dispatchers.IO) {
loadInternal()
waiter?.release()
@@ -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