/ Rikka \
This commit is contained in:
parent
03f6ecac0e
commit
014d548898
|
|
@ -7,7 +7,7 @@ android {
|
||||||
applicationId "org.meowcat.edxposed.manager"
|
applicationId "org.meowcat.edxposed.manager"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 27
|
targetSdkVersion 27
|
||||||
versionCode 45402
|
versionCode 45403
|
||||||
versionName "4.5.4"
|
versionName "4.5.4"
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
|
@ -32,8 +32,8 @@ dependencies {
|
||||||
implementation "com.github.topjohnwu.libsu:core:2.5.0"
|
implementation "com.github.topjohnwu.libsu:core:2.5.0"
|
||||||
implementation 'androidx.browser:browser:1.2.0'
|
implementation 'androidx.browser:browser:1.2.0'
|
||||||
implementation 'com.timehop.stickyheadersrecyclerview:library:0.4.3@aar'
|
implementation 'com.timehop.stickyheadersrecyclerview:library:0.4.3@aar'
|
||||||
implementation 'moe.shizuku.preference:preference-appcompat:4.1.0-alpha02'
|
implementation 'com.takisoft.preferencex:preferencex:1.1.0'
|
||||||
implementation 'moe.shizuku.preference:preference-simplemenu-appcompat:4.1.0-alpha02'
|
implementation 'com.takisoft.preferencex:preferencex-simplemenu:1.1.0'
|
||||||
implementation "androidx.recyclerview:recyclerview:1.2.0-alpha01"
|
implementation "androidx.recyclerview:recyclerview:1.2.0-alpha01"
|
||||||
implementation 'com.annimon:stream:1.2.0'
|
implementation 'com.annimon:stream:1.2.0'
|
||||||
implementation 'com.google.code.gson:gson:2.8.6'
|
implementation 'com.google.code.gson:gson:2.8.6'
|
||||||
|
|
|
||||||
|
|
@ -4,20 +4,21 @@ import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
|
import com.takisoft.preferencex.PreferenceFragmentCompat;
|
||||||
|
|
||||||
import org.meowcat.edxposed.manager.repo.Module;
|
import org.meowcat.edxposed.manager.repo.Module;
|
||||||
import org.meowcat.edxposed.manager.util.PrefixedSharedPreferences;
|
import org.meowcat.edxposed.manager.util.PrefixedSharedPreferences;
|
||||||
import org.meowcat.edxposed.manager.util.RepoLoader;
|
import org.meowcat.edxposed.manager.util.RepoLoader;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import moe.shizuku.preference.PreferenceFragment;
|
public class DownloadDetailsSettingsFragment extends PreferenceFragmentCompat {
|
||||||
import moe.shizuku.preference.PreferenceManager;
|
|
||||||
|
|
||||||
public class DownloadDetailsSettingsFragment extends PreferenceFragment {
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferencesFix(Bundle savedInstanceState, String rootKey) {
|
||||||
DownloadDetailsActivity mActivity = (DownloadDetailsActivity) getActivity();
|
DownloadDetailsActivity mActivity = (DownloadDetailsActivity) getActivity();
|
||||||
if (mActivity == null) {
|
if (mActivity == null) {
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import android.os.Bundle;
|
||||||
import android.os.FileUtils;
|
import android.os.FileUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
@ -15,8 +16,11 @@ import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.appcompat.app.AppCompatDelegate;
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.SwitchPreference;
|
||||||
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.takisoft.preferencex.PreferenceFragmentCompat;
|
||||||
import com.topjohnwu.superuser.Shell;
|
import com.topjohnwu.superuser.Shell;
|
||||||
|
|
||||||
import org.meowcat.edxposed.manager.util.RepoLoader;
|
import org.meowcat.edxposed.manager.util.RepoLoader;
|
||||||
|
|
@ -27,10 +31,6 @@ import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import moe.shizuku.preference.Preference;
|
|
||||||
import moe.shizuku.preference.PreferenceFragment;
|
|
||||||
import moe.shizuku.preference.SwitchPreference;
|
|
||||||
|
|
||||||
public class SettingsActivity extends BaseActivity {
|
public class SettingsActivity extends BaseActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -47,13 +47,13 @@ public class SettingsActivity extends BaseActivity {
|
||||||
setupWindowInsets();
|
setupWindowInsets();
|
||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
getSupportFragmentManager().beginTransaction()
|
getSupportFragmentManager().beginTransaction()
|
||||||
.add(R.id.container, new SettingsFragment()).commit();
|
.add(R.id.container, SettingsFragment.newInstance(findViewById(R.id.snackbar))).commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings({"ResultOfMethodCallIgnored", "deprecation"})
|
@SuppressWarnings({"ResultOfMethodCallIgnored", "deprecation"})
|
||||||
public static class SettingsFragment extends PreferenceFragment implements Preference.OnPreferenceClickListener, SharedPreferences.OnSharedPreferenceChangeListener {
|
public static class SettingsFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceClickListener, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
static final File mDisableResourcesFlag = new File(XposedApp.BASE_DIR + "conf/disable_resources");
|
static final File mDisableResourcesFlag = new File(XposedApp.BASE_DIR + "conf/disable_resources");
|
||||||
static final File mDynamicModulesFlag = new File(XposedApp.BASE_DIR + "conf/dynamicmodules");
|
static final File mDynamicModulesFlag = new File(XposedApp.BASE_DIR + "conf/dynamicmodules");
|
||||||
static final File mDeoptBootFlag = new File(XposedApp.BASE_DIR + "conf/deoptbootimage");
|
static final File mDeoptBootFlag = new File(XposedApp.BASE_DIR + "conf/deoptbootimage");
|
||||||
|
|
@ -63,10 +63,16 @@ public class SettingsActivity extends BaseActivity {
|
||||||
static final File mDisableModulesLogsFlag = new File(XposedApp.BASE_DIR + "conf/disable_modules_log");
|
static final File mDisableModulesLogsFlag = new File(XposedApp.BASE_DIR + "conf/disable_modules_log");
|
||||||
static final File mVerboseLogProcessID = new File(XposedApp.BASE_DIR + "log/all.pid");
|
static final File mVerboseLogProcessID = new File(XposedApp.BASE_DIR + "log/all.pid");
|
||||||
static final File mModulesLogProcessID = new File(XposedApp.BASE_DIR + "log/error.pid");
|
static final File mModulesLogProcessID = new File(XposedApp.BASE_DIR + "log/error.pid");
|
||||||
|
View rootView;
|
||||||
private Preference stopVerboseLog;
|
private Preference stopVerboseLog;
|
||||||
private Preference stopLog;
|
private Preference stopLog;
|
||||||
|
|
||||||
|
static SettingsFragment newInstance(View rootView) {
|
||||||
|
SettingsFragment fragment = new SettingsFragment();
|
||||||
|
fragment.setRootView(rootView);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("SameParameterValue")
|
@SuppressWarnings("SameParameterValue")
|
||||||
@SuppressLint({"WorldReadableFiles", "WorldWriteableFiles"})
|
@SuppressLint({"WorldReadableFiles", "WorldWriteableFiles"})
|
||||||
static void setFilePermissionsFromMode(String name, int mode) {
|
static void setFilePermissionsFromMode(String name, int mode) {
|
||||||
|
|
@ -81,9 +87,13 @@ public class SettingsActivity extends BaseActivity {
|
||||||
FileUtils.setPermissions(name, perms, -1, -1);
|
FileUtils.setPermissions(name, perms, -1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setRootView(View rootView) {
|
||||||
|
this.rootView = rootView;
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressLint({"ObsoleteSdkInt", "WorldReadableFiles"})
|
@SuppressLint({"ObsoleteSdkInt", "WorldReadableFiles"})
|
||||||
@Override
|
@Override
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferencesFix(Bundle savedInstanceState, String rootKey) {
|
||||||
addPreferencesFromResource(R.xml.prefs);
|
addPreferencesFromResource(R.xml.prefs);
|
||||||
|
|
||||||
stopVerboseLog = findPreference("stop_verbose_log");
|
stopVerboseLog = findPreference("stop_verbose_log");
|
||||||
|
|
@ -94,7 +104,7 @@ public class SettingsActivity extends BaseActivity {
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
SwitchPreference prefWhiteListMode = (SwitchPreference) findPreference("white_list_switch");
|
SwitchPreference prefWhiteListMode = findPreference("white_list_switch");
|
||||||
Objects.requireNonNull(prefWhiteListMode).setChecked(mWhiteListModeFlag.exists());
|
Objects.requireNonNull(prefWhiteListMode).setChecked(mWhiteListModeFlag.exists());
|
||||||
prefWhiteListMode.setOnPreferenceChangeListener((preference, newValue) -> {
|
prefWhiteListMode.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
boolean enabled = (Boolean) newValue;
|
boolean enabled = (Boolean) newValue;
|
||||||
|
|
@ -125,7 +135,7 @@ public class SettingsActivity extends BaseActivity {
|
||||||
return (enabled == mWhiteListModeFlag.exists());
|
return (enabled == mWhiteListModeFlag.exists());
|
||||||
});
|
});
|
||||||
|
|
||||||
SwitchPreference prefVerboseLogs = (SwitchPreference) findPreference("disable_verbose_log");
|
SwitchPreference prefVerboseLogs = findPreference("disable_verbose_log");
|
||||||
Objects.requireNonNull(prefVerboseLogs).setChecked(mDisableVerboseLogsFlag.exists());
|
Objects.requireNonNull(prefVerboseLogs).setChecked(mDisableVerboseLogsFlag.exists());
|
||||||
prefVerboseLogs.setOnPreferenceChangeListener((preference, newValue) -> {
|
prefVerboseLogs.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
boolean enabled = (Boolean) newValue;
|
boolean enabled = (Boolean) newValue;
|
||||||
|
|
@ -156,7 +166,7 @@ public class SettingsActivity extends BaseActivity {
|
||||||
return (enabled == mDisableVerboseLogsFlag.exists());
|
return (enabled == mDisableVerboseLogsFlag.exists());
|
||||||
});
|
});
|
||||||
|
|
||||||
SwitchPreference prefModulesLogs = (SwitchPreference) findPreference("disable_modules_log");
|
SwitchPreference prefModulesLogs = findPreference("disable_modules_log");
|
||||||
Objects.requireNonNull(prefModulesLogs).setChecked(mDisableModulesLogsFlag.exists());
|
Objects.requireNonNull(prefModulesLogs).setChecked(mDisableModulesLogsFlag.exists());
|
||||||
prefModulesLogs.setOnPreferenceChangeListener((preference, newValue) -> {
|
prefModulesLogs.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
boolean enabled = (Boolean) newValue;
|
boolean enabled = (Boolean) newValue;
|
||||||
|
|
@ -187,7 +197,7 @@ public class SettingsActivity extends BaseActivity {
|
||||||
return (enabled == mDisableModulesLogsFlag.exists());
|
return (enabled == mDisableModulesLogsFlag.exists());
|
||||||
});
|
});
|
||||||
|
|
||||||
SwitchPreference prefBlackWhiteListMode = (SwitchPreference) findPreference("black_white_list_switch");
|
SwitchPreference prefBlackWhiteListMode = findPreference("black_white_list_switch");
|
||||||
Objects.requireNonNull(prefBlackWhiteListMode).setChecked(mBlackWhiteListModeFlag.exists());
|
Objects.requireNonNull(prefBlackWhiteListMode).setChecked(mBlackWhiteListModeFlag.exists());
|
||||||
prefBlackWhiteListMode.setOnPreferenceChangeListener((preference, newValue) -> {
|
prefBlackWhiteListMode.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
boolean enabled = (Boolean) newValue;
|
boolean enabled = (Boolean) newValue;
|
||||||
|
|
@ -218,7 +228,7 @@ public class SettingsActivity extends BaseActivity {
|
||||||
return (enabled == mBlackWhiteListModeFlag.exists());
|
return (enabled == mBlackWhiteListModeFlag.exists());
|
||||||
});
|
});
|
||||||
|
|
||||||
SwitchPreference prefEnableDeopt = (SwitchPreference) findPreference("enable_boot_image_deopt");
|
SwitchPreference prefEnableDeopt = findPreference("enable_boot_image_deopt");
|
||||||
Objects.requireNonNull(prefEnableDeopt).setChecked(mDeoptBootFlag.exists());
|
Objects.requireNonNull(prefEnableDeopt).setChecked(mDeoptBootFlag.exists());
|
||||||
prefEnableDeopt.setOnPreferenceChangeListener((preference, newValue) -> {
|
prefEnableDeopt.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
boolean enabled = (Boolean) newValue;
|
boolean enabled = (Boolean) newValue;
|
||||||
|
|
@ -249,7 +259,7 @@ public class SettingsActivity extends BaseActivity {
|
||||||
return (enabled == mDeoptBootFlag.exists());
|
return (enabled == mDeoptBootFlag.exists());
|
||||||
});
|
});
|
||||||
|
|
||||||
SwitchPreference prefDynamicResources = (SwitchPreference) findPreference("is_dynamic_modules");
|
SwitchPreference prefDynamicResources = findPreference("is_dynamic_modules");
|
||||||
Objects.requireNonNull(prefDynamicResources).setChecked(mDynamicModulesFlag.exists());
|
Objects.requireNonNull(prefDynamicResources).setChecked(mDynamicModulesFlag.exists());
|
||||||
prefDynamicResources.setOnPreferenceChangeListener((preference, newValue) -> {
|
prefDynamicResources.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
boolean enabled = (Boolean) newValue;
|
boolean enabled = (Boolean) newValue;
|
||||||
|
|
@ -280,7 +290,7 @@ public class SettingsActivity extends BaseActivity {
|
||||||
return (enabled == mDynamicModulesFlag.exists());
|
return (enabled == mDynamicModulesFlag.exists());
|
||||||
});
|
});
|
||||||
|
|
||||||
SwitchPreference prefDisableResources = (SwitchPreference) findPreference("disable_resources");
|
SwitchPreference prefDisableResources = findPreference("disable_resources");
|
||||||
Objects.requireNonNull(prefDisableResources).setChecked(mDisableResourcesFlag.exists());
|
Objects.requireNonNull(prefDisableResources).setChecked(mDisableResourcesFlag.exists());
|
||||||
prefDisableResources.setOnPreferenceChangeListener((preference, newValue) -> {
|
prefDisableResources.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
boolean enabled = (Boolean) newValue;
|
boolean enabled = (Boolean) newValue;
|
||||||
|
|
@ -337,12 +347,6 @@ public class SettingsActivity extends BaseActivity {
|
||||||
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
|
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public DividerDecoration onCreateItemDecoration() {
|
|
||||||
return new CategoryDivideDividerDecoration();
|
|
||||||
//return new DefaultDividerDecoration();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
if (key.contains("theme") || key.equals("ignore_chinese")) {
|
if (key.contains("theme") || key.equals("ignore_chinese")) {
|
||||||
|
|
@ -386,8 +390,14 @@ public class SettingsActivity extends BaseActivity {
|
||||||
@Override
|
@Override
|
||||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
((FrameLayout) view).setClipChildren(false);
|
if (rootView == null) {
|
||||||
((FrameLayout) view).setClipToPadding(false);
|
return;
|
||||||
|
}
|
||||||
|
//ActionBarShadowController.attachToRecyclerView((AppCompatActivity) getActivity(), getListView());
|
||||||
|
((LinearLayout) ((FrameLayout) rootView.findViewById(R.id.container)).getChildAt(0)).setClipToPadding(false);
|
||||||
|
((LinearLayout) ((FrameLayout) rootView.findViewById(R.id.container)).getChildAt(0)).setClipChildren(false);
|
||||||
|
((FrameLayout) ((LinearLayout) view).getChildAt(0)).setClipChildren(false);
|
||||||
|
((FrameLayout) ((LinearLayout) view).getChildAt(0)).setClipToPadding(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,14 @@ package org.meowcat.edxposed.manager.util;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
|
||||||
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import moe.shizuku.preference.PreferenceManager;
|
|
||||||
|
|
||||||
public class PrefixedSharedPreferences implements SharedPreferences {
|
public class PrefixedSharedPreferences implements SharedPreferences {
|
||||||
private final SharedPreferences mBase;
|
private final SharedPreferences mBase;
|
||||||
private final String mPrefix;
|
private final String mPrefix;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
import moe.shizuku.preference.SimpleMenuPreference;
|
import com.takisoft.preferencex.SimpleMenuPreference;
|
||||||
|
|
||||||
public class IntegerListPreference extends SimpleMenuPreference {
|
public class IntegerListPreference extends SimpleMenuPreference {
|
||||||
public IntegerListPreference(Context context) {
|
public IntegerListPreference(Context context) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue