Filter out modules if forced to add modules
This commit is contained in:
parent
e4a9e4e3ce
commit
86fa186a71
|
|
@ -86,11 +86,9 @@ public class AppAdapter extends RecyclerView.Adapter<AppAdapter.ViewHolder> impl
|
|||
rmList.add(info);
|
||||
continue;
|
||||
}
|
||||
if (!preferences.getBoolean("show_modules", true)) {
|
||||
if (info.applicationInfo.metaData != null && info.applicationInfo.metaData.containsKey("xposedmodule")) {
|
||||
rmList.add(info);
|
||||
continue;
|
||||
}
|
||||
if (AppHelper.forceWhiteList.contains(info.packageName)) {
|
||||
rmList.add(info);
|
||||
continue;
|
||||
}
|
||||
if (!preferences.getBoolean("show_system_apps", true) && (info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
|
||||
rmList.add(info);
|
||||
|
|
@ -150,9 +148,6 @@ public class AppAdapter extends RecyclerView.Adapter<AppAdapter.ViewHolder> impl
|
|||
if (itemId == R.id.item_show_system) {
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit().putBoolean("show_system_apps", item.isChecked()).apply();
|
||||
} else if (itemId == R.id.item_show_modules) {
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit().putBoolean("show_modules", item.isChecked()).apply();
|
||||
} else if (!AppHelper.onOptionsItemSelected(item, preferences)) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -162,7 +157,6 @@ public class AppAdapter extends RecyclerView.Adapter<AppAdapter.ViewHolder> impl
|
|||
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
inflater.inflate(R.menu.menu_app_list, menu);
|
||||
menu.findItem(R.id.item_show_modules).setChecked(preferences.getBoolean("show_modules", true));
|
||||
menu.findItem(R.id.item_show_system).setChecked(preferences.getBoolean("show_system_apps", true));
|
||||
switch (preferences.getInt("list_sort", 0)) {
|
||||
case 7:
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import io.github.lsposed.manager.Constants;
|
|||
import io.github.lsposed.manager.R;
|
||||
import io.github.lsposed.manager.databinding.ActivitySettingsBinding;
|
||||
import io.github.lsposed.manager.ui.widget.IntegerListPreference;
|
||||
import io.github.lsposed.manager.util.ModuleUtil;
|
||||
|
||||
public class SettingsActivity extends BaseActivity {
|
||||
private static final String KEY_PREFIX = SettingsActivity.class.getName() + '.';
|
||||
|
|
@ -110,6 +111,14 @@ public class SettingsActivity extends BaseActivity {
|
|||
public void onCreatePreferencesFix(Bundle savedInstanceState, String rootKey) {
|
||||
addPreferencesFromResource(R.xml.prefs);
|
||||
|
||||
SwitchPreferenceCompat prefHookModules = findPreference("hook_modules");
|
||||
if (prefHookModules != null) {
|
||||
prefHookModules.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
ModuleUtil.getInstance().reloadInstalledModules((Boolean) newValue);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
SwitchPreferenceCompat prefVerboseLogs = findPreference("disable_verbose_log");
|
||||
if (prefVerboseLogs != null) {
|
||||
prefVerboseLogs.setChecked(Files.exists(disableVerboseLogsFlag));
|
||||
|
|
|
|||
|
|
@ -67,8 +67,12 @@ public final class ModuleUtil {
|
|||
return result;
|
||||
}
|
||||
|
||||
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
|
||||
public void reloadInstalledModules() {
|
||||
reloadInstalledModules(prefs.getBoolean("hook_modules", true));
|
||||
}
|
||||
|
||||
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
|
||||
public void reloadInstalledModules(boolean hookModules) {
|
||||
synchronized (this) {
|
||||
if (isReloading)
|
||||
return;
|
||||
|
|
@ -77,7 +81,6 @@ public final class ModuleUtil {
|
|||
|
||||
Map<String, InstalledModule> modules = new HashMap<>();
|
||||
AppHelper.forceWhiteList.clear();
|
||||
|
||||
for (PackageInfo pkg : pm.getInstalledPackages(PackageManager.GET_META_DATA)) {
|
||||
ApplicationInfo app = pkg.applicationInfo;
|
||||
if (!app.enabled)
|
||||
|
|
@ -86,7 +89,7 @@ public final class ModuleUtil {
|
|||
if (app.metaData != null && app.metaData.containsKey("xposedmodule")) {
|
||||
InstalledModule installed = new InstalledModule(pkg, false);
|
||||
modules.put(pkg.packageName, installed);
|
||||
AppHelper.forceWhiteList.add(pkg.packageName);
|
||||
if (hookModules) AppHelper.forceWhiteList.add(pkg.packageName);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,12 +14,6 @@
|
|||
android:checked="true"
|
||||
android:title="@string/menu_show_system_apps" />
|
||||
|
||||
<item
|
||||
android:id="@+id/item_show_modules"
|
||||
android:checkable="true"
|
||||
android:checked="true"
|
||||
android:title="@string/menu_show_modules" />
|
||||
|
||||
<item
|
||||
android:id="@+id/item_list_sort"
|
||||
android:title="@string/menu_sort"
|
||||
|
|
|
|||
Loading…
Reference in New Issue