diff --git a/app/src/main/java/io/github/lsposed/manager/adapters/AppHelper.java b/app/src/main/java/io/github/lsposed/manager/adapters/AppHelper.java index 5208192f..95dc8436 100644 --- a/app/src/main/java/io/github/lsposed/manager/adapters/AppHelper.java +++ b/app/src/main/java/io/github/lsposed/manager/adapters/AppHelper.java @@ -12,11 +12,6 @@ import androidx.annotation.NonNull; import androidx.appcompat.widget.PopupMenu; import androidx.fragment.app.FragmentManager; -import io.github.lsposed.manager.App; -import io.github.lsposed.manager.Constants; -import io.github.lsposed.manager.R; -import io.github.lsposed.manager.util.CompileUtil; - import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -26,6 +21,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import io.github.lsposed.manager.App; +import io.github.lsposed.manager.Constants; +import io.github.lsposed.manager.R; +import io.github.lsposed.manager.util.CompileUtil; + import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS; public class AppHelper { @@ -51,20 +51,28 @@ public class AppHelper { public static List getAppList(boolean white) { Path dir = Paths.get(BASE_PATH + (white ? WHITE_LIST_PATH : BLACK_LIST_PATH)); - List s = new ArrayList<>(); + List list = new ArrayList<>(); try { Files.list(dir).forEach(path -> { if (!Files.isDirectory(path)) { - String packageName = path.getFileName().toString(); - if (forceWhiteList.contains(packageName)) { - createAppListFile(packageName, white, white); - } - if (white) s.add(packageName); + list.add(path.getFileName().toString()); } }); - return s; + forceWhiteList.forEach(s -> { + if (list.contains(s)) { + if (!white) { + createAppListFile(s, false, false); + list.remove(s); + } + } else if (white) { + createAppListFile(s, true, true); + list.add(s); + } + }); + return list; } catch (IOException e) { - return s; + e.printStackTrace(); + return list; } }