AppLockPackageListFragment: fix app filter

Change-Id: I2e1441f6b394f5f3a40b627e039aa9a47fe26c1a
This commit is contained in:
rmp22
2025-04-19 13:39:26 +08:00
committed by Joey
parent 9bd6860aa1
commit 0371350cc3

View File

@@ -62,24 +62,34 @@ class AppLockPackageListFragment : DashboardFragment() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
super.onCreatePreferences(savedInstanceState, rootKey) super.onCreatePreferences(savedInstanceState, rootKey)
lifecycleScope.launch { lifecycleScope.launch {
val selectedPackages = getSelectedPackages() val selectedPackages = getSelectedPackages()
val preferences = withContext(Dispatchers.Default) { val preferences = withContext(Dispatchers.Default) {
pm.getInstalledPackages( val installedPackages = pm.getInstalledPackages(
PackageInfoFlags.of(PackageManager.MATCH_ALL.toLong()) PackageInfoFlags.of(PackageManager.MATCH_ALL.toLong())
).filter { packageInfo -> )
val isSystemApp = packageInfo.applicationInfo?.isSystemApp ?: false
!isSystemApp || launchablePackages.contains(packageInfo.packageName) || installedPackages
whiteListedPackages.contains(packageInfo.packageName) .filter { packageInfo ->
}.sortedWith { first, second -> val pkgName = packageInfo.packageName
getLabel(first).compareTo(getLabel(second)) val appInfo = packageInfo.applicationInfo
} val isSystemApp = appInfo?.isSystemApp ?: false
val isLaunchable = pm.getLaunchIntentForPackage(pkgName) != null
val isWhitelisted = whiteListedPackages.contains(pkgName)
val shouldInclude = isLaunchable && (!isSystemApp || isWhitelisted)
shouldInclude
}
.sortedBy { getLabel(it) }
}.map { packageInfo -> }.map { packageInfo ->
createPreference(packageInfo, selectedPackages.contains(packageInfo.packageName)) createPreference(packageInfo, selectedPackages.contains(packageInfo.packageName))
} }
preferenceScreen?.let {
preferenceScreen?.let { screen ->
preferences.forEach { pref -> preferences.forEach { pref ->
it.addPreference(pref) screen.addPreference(pref)
} }
} }
} }