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();
}
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) {
if (scopeList.containsKey(modulePackageName)) {
return scopeList.get(modulePackageName);

View File

@ -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<ModuleListener> listeners = new CopyOnWriteArrayList<>();
private final SharedPreferences pref;
//private InstalledModule framework = null;
private Map<String, InstalledModule> installedModules;
private final List<String> 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<InstalledModule> getEnabledModules() {
LinkedList<InstalledModule> result = new LinkedList<>();
for (String packageName : pref.getAll().keySet()) {
for (String packageName : enabledModules) {
InstalledModule module = getModule(packageName);
if (module != null)
result.add(module);