Modify change the way of getting app list data in FrameworkHooker

This commit is contained in:
2023-01-17 05:11:38 +08:00
parent fd168f8810
commit 2eae45a640

View File

@@ -236,17 +236,15 @@ object FrameworkHooker : YukiBaseHooker() {
onPushAppListData { filters -> onPushAppListData { filters ->
appContext?.let { context -> appContext?.let { context ->
arrayListOf<AppInfoBean>().apply { arrayListOf<AppInfoBean>().apply {
context.listOfPackages().also { info -> context.listOfPackages().filter { it.packageName != BuildConfig.APPLICATION_ID }.also { info ->
(if (filters.name.isNotBlank()) (if (filters.name.isNotBlank()) info.filter {
info.filter { it.packageName.contains(filters.name) || context.appNameOf(it.packageName).contains(filters.name) } it.packageName.contains(filters.name) || context.appNameOf(it.packageName).contains(filters.name)
else info).let { result -> } else info).let { result ->
if (filters.isContainsSystem.not()) if (filters.isContainsSystem.not())
result.filter { (it.applicationInfo.flags and ApplicationInfo.FLAG_SYSTEM) == 0 } result.filter { (it.applicationInfo.flags and ApplicationInfo.FLAG_SYSTEM) == 0 }
else result else result
}.sortedByDescending { it.lastUpdateTime } }.sortedByDescending { it.lastUpdateTime }
.forEach { add(AppInfoBean(name = context.appNameOf(it.packageName), packageName = it.packageName)) } .forEach { add(AppInfoBean(name = context.appNameOf(it.packageName), packageName = it.packageName)) }
/** 移除模块自身 */
removeIf { it.packageName == BuildConfig.APPLICATION_ID }
} }
loggerD(msg = "Fetched installed packages list, size $size") loggerD(msg = "Fetched installed packages list, size $size")
} }