From c47a1c1d9bc0be22ef63a7275e135a8a764e6a40 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Wed, 1 Mar 2023 20:48:36 +0100 Subject: [PATCH] Compat icon provider: load activity info on IO dispatcher --- .../icons/providers/CompatIconProvider.kt | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/services/icons/src/main/java/de/mm20/launcher2/icons/providers/CompatIconProvider.kt b/services/icons/src/main/java/de/mm20/launcher2/icons/providers/CompatIconProvider.kt index eef72519..81d7c799 100644 --- a/services/icons/src/main/java/de/mm20/launcher2/icons/providers/CompatIconProvider.kt +++ b/services/icons/src/main/java/de/mm20/launcher2/icons/providers/CompatIconProvider.kt @@ -18,19 +18,19 @@ class CompatIconProvider( override suspend fun getIcon(searchable: SavableSearchable, size: Int): LauncherIcon? { if (searchable !is LauncherApp) return null val component = ComponentName(searchable.`package`, searchable.activity) - val activityInfo = try { - context.packageManager.getActivityInfo(component, 0) - } catch (e: PackageManager.NameNotFoundException) { - return null - } - val iconRes = activityInfo.iconResource - val resources = try { - context.packageManager.getResourcesForApplication(activityInfo.packageName) - } catch (e: PackageManager.NameNotFoundException) { - return null - } val icon = withContext(Dispatchers.IO) { + val activityInfo = try { + context.packageManager.getActivityInfo(component, 0) + } catch (e: PackageManager.NameNotFoundException) { + return@withContext null + } + val iconRes = activityInfo.iconResource + val resources = try { + context.packageManager.getResourcesForApplication(activityInfo.packageName) + } catch (e: PackageManager.NameNotFoundException) { + return@withContext null + } AdaptiveIconDrawableCompat.from(resources, iconRes) } ?: return null