diff --git a/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppHelper.java b/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppHelper.java index 2f6fd9c0..27dad8d7 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppHelper.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppHelper.java @@ -245,6 +245,20 @@ public class AppHelper { menuHelper.show(); } + public static List getEnabledModuleList() { + File file = new File(Constants.getEnabledModulesListFile()); + List s = new ArrayList<>(); + try { + BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); + for (String line; (line = bufferedReader.readLine()) != null; ) { + s.add(line); + } + } catch (IOException e) { + e.printStackTrace(); + } + return s; + } + static List getScopeList(String modulePackageName) { if (scopeList.containsKey(modulePackageName)) { return scopeList.get(modulePackageName); diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/ModuleUtil.java b/app/src/main/java/org/meowcat/edxposed/manager/util/ModuleUtil.java index 157342b4..07ef530b 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/util/ModuleUtil.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/util/ModuleUtil.java @@ -1,7 +1,5 @@ package org.meowcat.edxposed.manager.util; -import android.content.Context; -import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -17,6 +15,7 @@ import com.google.android.material.snackbar.Snackbar; import org.meowcat.edxposed.manager.App; import org.meowcat.edxposed.manager.Constants; import org.meowcat.edxposed.manager.R; +import org.meowcat.edxposed.manager.adapters.AppHelper; import org.meowcat.edxposed.manager.databinding.ActivityModulesBinding; import java.io.IOException; @@ -33,15 +32,15 @@ public final class ModuleUtil { private static ModuleUtil instance = null; private final PackageManager pm; private final List listeners = new CopyOnWriteArrayList<>(); - private final SharedPreferences pref; //private InstalledModule framework = null; private Map installedModules; + private final List enabledModules; private boolean isReloading = false; private Toast toast; private ModuleUtil() { - pref = App.getInstance().getSharedPreferences("enabled_modules", Context.MODE_PRIVATE); pm = App.getInstance().getPackageManager(); + enabledModules = AppHelper.getEnabledModuleList(); } public static synchronized ModuleUtil getInstance() { @@ -140,9 +139,9 @@ public final class ModuleUtil { public void setModuleEnabled(String packageName, boolean enabled) { if (enabled) { - pref.edit().putInt(packageName, 1).apply(); + enabledModules.add(packageName); } else { - pref.edit().remove(packageName).apply(); + enabledModules.remove(packageName); } for (ModuleListener listener : listeners) { listener.onModuleEnableChange(instance); @@ -150,13 +149,13 @@ public final class ModuleUtil { } public boolean isModuleEnabled(String packageName) { - return pref.contains(packageName); + return enabledModules.contains(packageName); } public List getEnabledModules() { LinkedList result = new LinkedList<>(); - for (String packageName : pref.getAll().keySet()) { + for (String packageName : enabledModules) { InstalledModule module = getModule(packageName); if (module != null) result.add(module);