Read enabled modules from enabled_modules.list

This commit is contained in:
NekoInverter 2021-01-26 16:32:09 +08:00
parent e6b9661465
commit 2d85cd5482
No known key found for this signature in database
GPG Key ID: 280D6CCCF95715F9
2 changed files with 21 additions and 8 deletions

View File

@ -245,6 +245,20 @@ public class AppHelper {
menuHelper.show(); menuHelper.show();
} }
public static List<String> getEnabledModuleList() {
File file = new File(Constants.getEnabledModulesListFile());
List<String> 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<String> getScopeList(String modulePackageName) { static List<String> getScopeList(String modulePackageName) {
if (scopeList.containsKey(modulePackageName)) { if (scopeList.containsKey(modulePackageName)) {
return scopeList.get(modulePackageName); return scopeList.get(modulePackageName);

View File

@ -1,7 +1,5 @@
package org.meowcat.edxposed.manager.util; package org.meowcat.edxposed.manager.util;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; 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.App;
import org.meowcat.edxposed.manager.Constants; import org.meowcat.edxposed.manager.Constants;
import org.meowcat.edxposed.manager.R; import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.adapters.AppHelper;
import org.meowcat.edxposed.manager.databinding.ActivityModulesBinding; import org.meowcat.edxposed.manager.databinding.ActivityModulesBinding;
import java.io.IOException; import java.io.IOException;
@ -33,15 +32,15 @@ public final class ModuleUtil {
private static ModuleUtil instance = null; private static ModuleUtil instance = null;
private final PackageManager pm; private final PackageManager pm;
private final List<ModuleListener> listeners = new CopyOnWriteArrayList<>(); private final List<ModuleListener> listeners = new CopyOnWriteArrayList<>();
private final SharedPreferences pref;
//private InstalledModule framework = null; //private InstalledModule framework = null;
private Map<String, InstalledModule> installedModules; private Map<String, InstalledModule> installedModules;
private final List<String> enabledModules;
private boolean isReloading = false; private boolean isReloading = false;
private Toast toast; private Toast toast;
private ModuleUtil() { private ModuleUtil() {
pref = App.getInstance().getSharedPreferences("enabled_modules", Context.MODE_PRIVATE);
pm = App.getInstance().getPackageManager(); pm = App.getInstance().getPackageManager();
enabledModules = AppHelper.getEnabledModuleList();
} }
public static synchronized ModuleUtil getInstance() { public static synchronized ModuleUtil getInstance() {
@ -140,9 +139,9 @@ public final class ModuleUtil {
public void setModuleEnabled(String packageName, boolean enabled) { public void setModuleEnabled(String packageName, boolean enabled) {
if (enabled) { if (enabled) {
pref.edit().putInt(packageName, 1).apply(); enabledModules.add(packageName);
} else { } else {
pref.edit().remove(packageName).apply(); enabledModules.remove(packageName);
} }
for (ModuleListener listener : listeners) { for (ModuleListener listener : listeners) {
listener.onModuleEnableChange(instance); listener.onModuleEnableChange(instance);
@ -150,13 +149,13 @@ public final class ModuleUtil {
} }
public boolean isModuleEnabled(String packageName) { public boolean isModuleEnabled(String packageName) {
return pref.contains(packageName); return enabledModules.contains(packageName);
} }
public List<InstalledModule> getEnabledModules() { public List<InstalledModule> getEnabledModules() {
LinkedList<InstalledModule> result = new LinkedList<>(); LinkedList<InstalledModule> result = new LinkedList<>();
for (String packageName : pref.getAll().keySet()) { for (String packageName : enabledModules) {
InstalledModule module = getModule(packageName); InstalledModule module = getModule(packageName);
if (module != null) if (module != null)
result.add(module); result.add(module);