Skip to content

Commit

Permalink
Fix: Array out-of-bounds crash due to some cases of AppRule update (#154
Browse files Browse the repository at this point in the history
)

* Fix: Array out of bounds due to some cases in AppRule

* Why not just .firstOrNull ?

* My mom said ?.let{} would be better.
  • Loading branch information
VictorModi authored Jun 7, 2024
1 parent 25d570a commit a5d7e00
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions app/src/main/java/cn/lyric/getter/ui/fragment/AppRulesFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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) } }
}
Expand All @@ -191,4 +194,4 @@ class AppRulesFragment : Fragment() {
}
_binding = null
}
}
}

0 comments on commit a5d7e00

Please sign in to comment.