diff --git a/data/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt b/data/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt index 5e063c39..35998590 100644 --- a/data/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt +++ b/data/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt @@ -113,7 +113,11 @@ internal class AppRepositoryImpl( }, Handler(Looper.getMainLooper())) val apps = profiles.map { p -> - launcherApps.getActivityList(null, p).mapNotNull { getApplication(it, p) } + try { + launcherApps.getActivityList(null, p).mapNotNull { getApplication(it, p) } + } catch (e: SecurityException) { + emptyList() + } }.flatten() installedApps.value = apps } @@ -127,7 +131,11 @@ internal class AppRepositoryImpl( if (packageName == context.packageName) return emptyList() return profiles.map { p -> - launcherApps.getActivityList(packageName, p).mapNotNull { getApplication(it, p) } + try { + launcherApps.getActivityList(packageName, p).mapNotNull { getApplication(it, p) } + } catch (e: SecurityException) { + emptyList() + } }.flatten() } diff --git a/data/applications/src/main/java/de/mm20/launcher2/search/data/AppSerialization.kt b/data/applications/src/main/java/de/mm20/launcher2/search/data/AppSerialization.kt index 26a27a9f..8f5a9282 100644 --- a/data/applications/src/main/java/de/mm20/launcher2/search/data/AppSerialization.kt +++ b/data/applications/src/main/java/de/mm20/launcher2/search/data/AppSerialization.kt @@ -36,8 +36,12 @@ class LauncherAppDeserializer(val context: Context) : SearchableDeserializer { val intent = Intent().also { it.component = ComponentName(pkg, json.getString("activity")) } - val launcherActivityInfo = launcherApps.resolveActivity(intent, user) ?: return null - return LauncherApp(context, launcherActivityInfo) + try { + val launcherActivityInfo = launcherApps.resolveActivity(intent, user) ?: return null + return LauncherApp(context, launcherActivityInfo) + } catch (e: SecurityException) { + return null + } } }