From a625dcc1d91a61db0a3ba0598ee947af3b12ce6c Mon Sep 17 00:00:00 2001 From: Jonas L Date: Mon, 20 May 2019 00:00:00 +0000 Subject: [PATCH] Fix crashs during getting app activities --- .../integration/platform/android/Apps.kt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/timelimit/android/integration/platform/android/Apps.kt b/app/src/main/java/io/timelimit/android/integration/platform/android/Apps.kt index b042c48..b3cc019 100644 --- a/app/src/main/java/io/timelimit/android/integration/platform/android/Apps.kt +++ b/app/src/main/java/io/timelimit/android/integration/platform/android/Apps.kt @@ -118,15 +118,21 @@ object AndroidIntegrationApps { fun getLocalAppActivities(deviceId: String, context: Context): Collection { return context.packageManager.getInstalledApplications(0).asSequence().map { applicationInfo -> - (context.packageManager.getPackageInfo(applicationInfo.packageName, PackageManager.GET_ACTIVITIES)?.activities ?: emptyArray()) - .map { - AppActivity( - deviceId = deviceId, - appPackageName = applicationInfo.packageName, - activityClassName = it.name, - title = it.loadLabel(context.packageManager).toString() - ) + ( + try { + context.packageManager.getPackageInfo(applicationInfo.packageName, PackageManager.GET_ACTIVITIES)?.activities + } catch (ex: PackageManager.NameNotFoundException) { + null } + ?: emptyArray() + ).map { + AppActivity( + deviceId = deviceId, + appPackageName = applicationInfo.packageName, + activityClassName = it.name, + title = it.loadLabel(context.packageManager).toString() + ) + } }.flatten().toSet() }