diff --git a/app/build.gradle b/app/build.gradle index dfe01e62..c77f4519 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,8 +30,8 @@ android { minSdkVersion 26 //noinspection OldTargetApi targetSdkVersion 27 - versionCode 457030 - versionName "4.5.7.3" + versionCode 457040 + versionName "4.5.7.4" signingConfig signingConfigs.release } buildTypes { diff --git a/app/src/main/java/org/meowcat/edxposed/manager/AboutActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/AboutActivity.java index d387a01b..d0e1355f 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/AboutActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/AboutActivity.java @@ -2,7 +2,6 @@ package org.meowcat.edxposed.manager; import android.content.Intent; import android.content.SharedPreferences; -import android.content.pm.PackageManager; import android.os.Bundle; import android.view.View; diff --git a/app/src/main/java/org/meowcat/edxposed/manager/BaseAdvancedInstaller.java b/app/src/main/java/org/meowcat/edxposed/manager/BaseAdvancedInstaller.java index e8763b60..afb2e2f9 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/BaseAdvancedInstaller.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/BaseAdvancedInstaller.java @@ -87,7 +87,7 @@ public class BaseAdvancedInstaller extends Fragment { Uri uri = Uri.parse(selectedInstaller.link); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); - })); + }, tab.description)); binding.btnUninstall.setOnClickListener(v -> warningArchitecture( (dialog, which) -> { @@ -95,7 +95,7 @@ public class BaseAdvancedInstaller extends Fragment { Uri uri = Uri.parse(selectedUninstaller.link); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); - })); + }, tab.description)); binding.noticeTv.setText(HtmlCompat.fromHtml(tab.notice, HtmlCompat.FROM_HTML_MODE_LEGACY)); binding.author.setText(getString(R.string.download_author, tab.author)); @@ -126,12 +126,18 @@ public class BaseAdvancedInstaller extends Fragment { return binding.getRoot(); } - private void warningArchitecture(DialogInterface.OnClickListener listener) { + private void warningArchitecture(DialogInterface.OnClickListener listener, String description) { Activity activity = getActivity(); + StringBuilder sb = new StringBuilder(); + sb.append(getString(R.string.warningArchitecture)); + sb.append("\n\n"); + sb.append(getString(R.string.changes)); + sb.append("\n"); + sb.append(HtmlCompat.fromHtml(description, HtmlCompat.FROM_HTML_MODE_LEGACY)); if (activity != null) { new MaterialAlertDialogBuilder(activity) .setTitle(R.string.areyousure) - .setMessage(R.string.warningArchitecture) + .setMessage(sb.toString()) .setPositiveButton(android.R.string.yes, listener) .setNegativeButton(android.R.string.no, null) .show(); diff --git a/app/src/main/java/org/meowcat/edxposed/manager/EdDownloadActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/EdDownloadActivity.java index 5fe9fd81..0dfe1d2c 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/EdDownloadActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/EdDownloadActivity.java @@ -49,9 +49,9 @@ public class EdDownloadActivity extends BaseActivity { if (!XposedApp.getPreferences().getBoolean("hide_install_warning", false)) { DialogInstallWarningBinding binding = DialogInstallWarningBinding.inflate(getLayoutInflater()); - binding.message.setText(R.string.not_logcat); new MaterialAlertDialogBuilder(this) .setTitle(R.string.install_warning_title) + .setMessage(R.string.install_warning) .setView(binding.getRoot()) .setPositiveButton(android.R.string.ok, (dialog, which) -> { if (binding.checkbox.isChecked()) diff --git a/app/src/main/java/org/meowcat/edxposed/manager/LogsActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/LogsActivity.java index 3cf661e5..09d7d503 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/LogsActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/LogsActivity.java @@ -65,9 +65,9 @@ public class LogsActivity extends BaseActivity { if (!XposedApp.getPreferences().getBoolean("hide_logcat_warning", false)) { DialogInstallWarningBinding binding = DialogInstallWarningBinding.inflate(getLayoutInflater()); - binding.message.setText(R.string.not_logcat); new MaterialAlertDialogBuilder(this) .setTitle(R.string.install_warning_title) + .setMessage(R.string.not_logcat) .setView(binding.getRoot()) .setPositiveButton(android.R.string.ok, (dialog, which) -> { if (binding.checkbox.isChecked()) diff --git a/app/src/main/java/org/meowcat/edxposed/manager/MainActivity.java b/app/src/main/java/org/meowcat/edxposed/manager/MainActivity.java index 038591a6..e50c28f4 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/MainActivity.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/MainActivity.java @@ -14,8 +14,6 @@ import org.meowcat.edxposed.manager.databinding.ActivityMainBinding; import org.meowcat.edxposed.manager.util.ModuleUtil; import org.meowcat.edxposed.manager.util.RepoLoader; -import me.zhanghai.android.appiconloader.AppIconLoader; - public class MainActivity extends BaseActivity implements RepoLoader.RepoListener, ModuleUtil.ModuleListener { ActivityMainBinding binding; private RepoLoader repoLoader; diff --git a/app/src/main/java/org/meowcat/edxposed/manager/XposedApp.java b/app/src/main/java/org/meowcat/edxposed/manager/XposedApp.java index 962c19ab..ebb932cd 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/XposedApp.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/XposedApp.java @@ -148,10 +148,10 @@ public class XposedApp extends de.robv.android.xposed.installer.XposedApp implem RepoLoader.getInstance().triggerFirstLoadIfNecessary(); appIconLoader = new AppIconLoader(getResources().getDimensionPixelSize( - R.dimen.app_icon_size), this); + R.dimen.app_icon_size), false, this); } - public AppIconLoader getAppIconLoader(){ + public AppIconLoader getAppIconLoader() { return appIconLoader; } diff --git a/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppAdapter.java b/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppAdapter.java index 36f26e38..f4e3a11d 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppAdapter.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/adapters/AppAdapter.java @@ -33,8 +33,6 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import me.zhanghai.android.appiconloader.AppIconLoader; - public class AppAdapter extends RecyclerView.Adapter implements Filterable { protected final Context context; 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 15a3e459..9d2bd43c 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 @@ -18,7 +18,6 @@ import androidx.fragment.app.FragmentManager; import org.meowcat.edxposed.manager.BuildConfig; import org.meowcat.edxposed.manager.R; -import org.meowcat.edxposed.manager.StatusInstallerFragment; import org.meowcat.edxposed.manager.XposedApp; import org.meowcat.edxposed.manager.util.CompileUtil; diff --git a/app/src/main/java/org/meowcat/edxposed/manager/receivers/BootReceiver.java b/app/src/main/java/org/meowcat/edxposed/manager/receivers/BootReceiver.java index 24b27f21..3b6ee46c 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/receivers/BootReceiver.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/receivers/BootReceiver.java @@ -3,8 +3,6 @@ package org.meowcat.edxposed.manager.receivers; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; import android.os.AsyncTask; import android.util.Log; 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 7a68c67b..da21b3b8 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,13 +1,11 @@ package org.meowcat.edxposed.manager.util; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; -import android.content.pm.ResolveInfo; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.os.Build; @@ -33,13 +31,11 @@ import java.util.List; import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; -import me.zhanghai.android.appiconloader.AppIconLoader; - @SuppressWarnings("OctalInteger") public final class ModuleUtil { + private static final String PLAY_STORE_PACKAGE = "com.android.vending"; // xposedminversion below this public static String MODULES_LIST_FILE = XposedApp.BASE_DIR + "conf/modules.list"; - private static final String PLAY_STORE_PACKAGE = "com.android.vending"; public static int MIN_MODULE_VERSION = 2; // reject modules with private static ModuleUtil instance = null; private final PackageManager pm; diff --git a/app/src/main/java/org/meowcat/edxposed/manager/xposed/Enhancement.java b/app/src/main/java/org/meowcat/edxposed/manager/xposed/Enhancement.java index 8795ae1b..d96be712 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/xposed/Enhancement.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/xposed/Enhancement.java @@ -12,8 +12,6 @@ import android.util.SparseArray; import androidx.annotation.Keep; import androidx.annotation.Nullable; -import org.meowcat.edxposed.manager.StatusInstallerFragment; - import java.io.BufferedReader; import java.io.File; import java.io.FileReader; @@ -29,6 +27,7 @@ import de.robv.android.xposed.XC_MethodReplacement; import de.robv.android.xposed.XposedBridge; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; +import de.robv.android.xposed.installer.XposedApp; import static de.robv.android.xposed.XposedHelpers.callMethod; import static de.robv.android.xposed.XposedHelpers.callStaticMethod; @@ -347,7 +346,7 @@ public class Enhancement implements IXposedHookLoadPackage { } } else if (lpparam.packageName.equals(APPLICATION_ID)) { // Make sure Xposed work - XposedHelpers.findAndHookMethod(StatusInstallerFragment.class.getName(), lpparam.classLoader, "isEnhancementEnabled", XC_MethodReplacement.returnConstant(true)); + XposedHelpers.findAndHookMethod(XposedApp.class.getName(), lpparam.classLoader, "isEnhancementEnabled", XC_MethodReplacement.returnConstant(true)); // XposedHelpers.findAndHookMethod(StatusInstallerFragment.class.getName(), lpparam.classLoader, "isSELinuxEnforced", XC_MethodReplacement.returnConstant(SELinuxHelper.isSELinuxEnforced())); } } diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index 4a8dd996..d8aa315b 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -26,10 +26,10 @@ + android:clipToPadding="false" + android:orientation="horizontal" + android:padding="16dp"> + android:layout_height="match_parent" + android:orientation="vertical"> - + android:layout_marginLeft="?attr/dialogPreferredPadding" + android:layout_marginRight="?attr/dialogPreferredPadding" + android:text="@string/dont_show_again" /> - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/values-night/colors_md2.xml b/app/src/main/res/values-night/colors_md2.xml new file mode 100644 index 00000000..e3a16e22 --- /dev/null +++ b/app/src/main/res/values-night/colors_md2.xml @@ -0,0 +1,4 @@ + + + #e5ffffff + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 9e325702..6d1defb0 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1,6 +1,5 @@ - 设置 已激活 未激活 安装 @@ -200,7 +199,6 @@ 重启至救援模式 正在加载… 滚动到底部 - 重启确认 关闭状态检查 关闭针对模块的"EdXposed 安装状态"检查 获取帮助 @@ -249,8 +247,6 @@ 正在安装 %s 这是一个不稳定的构建\n安装风险由您自行承担 这是一个非官方的构建\n安装风险由您自行承担 - 备用下载方法 - 如果下载模块时出现问题, 请开启此选项 以 Dexopt 模式优化全部应用 以 Speed 模式优化全部应用 请稍后, 这将需要一段时间… @@ -272,8 +268,6 @@ 使用镜像化的模块列表 镜像化的模块列表可以帮助加速加载\n但新提交的模块显示会有延迟(大约24小时) 未安装 - 通过 SafetyNet 校验 - 强制将 GMS 和 GSF 加入黑名单并移出白名单\n关闭此选项并不会移除已勾选的应用标识\n仅当启用应用名单模式时有效 Telegram 频道: @EdXposed 应用名单模式未启用,您可以在设置中启用 参数为空 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 5e85f0ac..5bd48679 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1,6 +1,5 @@ - 設置 已激活 未激活 安裝 @@ -200,7 +199,6 @@ 重啟至救援模式 正在加載… 滾動到底部 - 重啟確認 關閉狀態檢查 關閉針對模塊的"EdXposed 安裝狀態"檢查 獲取幫助 @@ -249,8 +247,6 @@ 正在安裝 %s 這是一個不穩定的構建\n安裝風險由您自行承擔 這是一個非官方的構建\n安裝風險由您自行承擔 - 備用下載方法 - 如果下載模塊時出現問題, 請開啟此選項 以 Dexopt 模式優化全部應用 以 Speed 模式優化全部應用 請稍後, 這將需要一段時間… @@ -271,8 +267,6 @@ 使用鏡像化的模塊列表 鏡像化的模塊列表可以幫助加速加載\n但新提交的模塊顯示會有延遲(大約24小時) 未安裝 - 通過 SafetyNet 校驗 - 強制將 GMS 和 GSF 加入黑名單並移出白名單\n關閉此選項並不會移除已勾選的應用標識\n僅當啟用應用名單模式時有效 Telegram 頻道: @EdXposed 應用名單模式未啟用,您可以在設置中啟用 參數為空 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 21c9c608..f1bcd185 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1,6 +1,5 @@ - 設定 已啟用 未啟用 安裝 @@ -200,7 +199,6 @@ 重啟至救援模式 正在載入… 滾動到底部 - 重啟確認 關閉狀態檢查 關閉針對模組的"EdXposed 安裝狀態"檢查 獲取幫助 @@ -249,8 +247,6 @@ 正在安裝 %s 這是一個不穩定的構建\n安裝風險由您自行承擔 這是一個非官方的構建\n安裝風險由您自行承擔 - 備用下載方法 - 如果下載模組時出現問題, 請開啟此選項 以 Dexopt 模式優化全部應用 以 Speed 模式優化全部應用 請稍後, 這將需要一段時間… @@ -271,8 +267,6 @@ 使用映象化的模組列表 映象化的模組列表可以幫助加速載入\n但新提交的模組顯示會有延遲(大約24小時) 未安裝 - 通過 SafetyNet 校驗 - 強制將 GMS 和 GSF 加入黑名單並移出白名單\n關閉此選項並不會移除已勾選的應用標識\n僅當啟用應用名單模式時有效 Telegram 頻道: @EdXposed 應用名單模式未啟用,您可以在設定中啟用 引數為空 diff --git a/app/src/main/res/values/colors_md2.xml b/app/src/main/res/values/colors_md2.xml index 81709faa..3f9a06bc 100644 --- a/app/src/main/res/values/colors_md2.xml +++ b/app/src/main/res/values/colors_md2.xml @@ -6,5 +6,5 @@ @color/material_blue_700 #fff #eaffffff - #3dffffff + #1affffff diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3664b795..1ee41c95 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,5 @@ EdXposed Manager - Settings Activated Inactivate Install @@ -202,7 +201,6 @@ Reboot to Emergency Loading… Scroll to bottom - Confirm reboots Skip status check Skip \"EdXposed Status\" check for modules @@ -221,8 +219,6 @@ This is a unstable build\nInstall it at your own risk This is a unofficial build\nInstall it at your own risk - Alternative download method - Check this option if you get issues when downloading a module Use mirrored modules list Mirrored modules list can help load faster\nBut the newly submitted module display will be delayed (about 24 hours) @@ -304,8 +300,6 @@ Force hook modules Force add modules to white-list and remove from black list\nClosing this option does not remove modules from white list\nApp list mode is required to enable Not installed - Pass SafetyNet - Force add GMS and GSF to black list and remove from white list\nClosing this option does not remove modules from black list\nApp list mode is required to enable Telegram Channel: @EdXposed Application list mode is not enabled, you can enable in settings Params empty