diff --git a/core/src/main/java/org/lsposed/lspd/service/PackageService.java b/core/src/main/java/org/lsposed/lspd/service/PackageService.java index 5182c856..b27b2392 100644 --- a/core/src/main/java/org/lsposed/lspd/service/PackageService.java +++ b/core/src/main/java/org/lsposed/lspd/service/PackageService.java @@ -134,14 +134,14 @@ public class PackageService { res.addAll(pm.getInstalledPackages(flags, user.id).getList()); } if (filterNoProcess) { - res = res.stream().filter(packageInfo -> { + res.removeIf(packageInfo -> { try { PackageInfo pkgInfo = getPackageInfoWithComponents(packageInfo.packageName, MATCH_ALL_FLAGS, packageInfo.applicationInfo.uid / 100000); - return !fetchProcesses(pkgInfo).isEmpty(); + return fetchProcesses(pkgInfo).isEmpty(); } catch (RemoteException e) { - return true; + return false; } - }).collect(Collectors.toList()); + }); } return new ParceledListSlice<>(res); } @@ -209,7 +209,7 @@ public class PackageService { } } - if (pkgInfo == null || pkgInfo.applicationInfo == null || (!pkgInfo.packageName.equals("android") && (pkgInfo.applicationInfo.sourceDir == null || pkgInfo.applicationInfo.deviceProtectedDataDir == null || !new File(pkgInfo.applicationInfo.sourceDir).exists() || !new File(pkgInfo.applicationInfo.deviceProtectedDataDir).exists()))) + if (pkgInfo == null || pkgInfo.applicationInfo == null || (!pkgInfo.packageName.equals("android") && (pkgInfo.applicationInfo.sourceDir == null || pkgInfo.applicationInfo.deviceProtectedDataDir == null || !new File(pkgInfo.applicationInfo.sourceDir).exists()))) return null; return pkgInfo; }