diff --git a/app/src/main/java/cn/lyric/getter/ui/fragment/AppRulesFragment.kt b/app/src/main/java/cn/lyric/getter/ui/fragment/AppRulesFragment.kt index a189fbc..02ffa57 100644 --- a/app/src/main/java/cn/lyric/getter/ui/fragment/AppRulesFragment.kt +++ b/app/src/main/java/cn/lyric/getter/ui/fragment/AppRulesFragment.kt @@ -164,13 +164,16 @@ class AppRulesFragment : Fragment() { appRules.forEach { appRule -> var appInfos: AppInfos? = null if (appInfosPackNames.contains(appRule.packageName)) { - val packageInfo = installedPackages.filter { it.packageName == appRule.packageName }[0] - val applicationInfo = packageInfo.applicationInfo - appInfos = AppInfos(applicationInfo.loadLabel(packageManager).toString(), applicationInfo.loadIcon(packageManager), packageInfo.packageName, packageInfo.versionCode, appRule) - + val packageInfo = installedPackages.firstOrNull { it.packageName == appRule.packageName } + packageInfo?.let { + val applicationInfo = packageInfo.applicationInfo + appInfos = AppInfos(applicationInfo.loadLabel(packageManager).toString(), applicationInfo.loadIcon(packageManager), packageInfo.packageName, packageInfo.versionCode, appRule) + } } else if (config.showAllRules) { - val packageInfo = installedPackages.filter { it.packageName == "com.android.systemui" }[0] - appInfos = AppInfos(appRule.name, packageInfo.applicationInfo.loadIcon(packageManager), appRule.packageName, 0, appRule, false) + val packageInfo = installedPackages.firstOrNull { it.packageName == "com.android.systemui" } + packageInfo?.let { + appInfos = AppInfos(appRule.name, packageInfo.applicationInfo.loadIcon(packageManager), appRule.packageName, 0, appRule, false) + } } goMainThread { appInfos?.let { appAdapter.addData(it) } } } @@ -191,4 +194,4 @@ class AppRulesFragment : Fragment() { } _binding = null } -} \ No newline at end of file +}