From bb3ffeee3c3ae3ec5ad7ccc57cbb9169da66076e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8F=8C=E8=8D=89=E9=85=B8=E9=85=AF?=
<17663689+kotori2@users.noreply.github.com>
Date: Sat, 27 Feb 2021 01:57:21 +0800
Subject: [PATCH] [app & key-selector] Deprecate SandHook (#208)
* fix contributor
* Mark SandHook as deprecated
---
.../manager/ui/activity/SettingsActivity.java | 12 +++++++++++-
app/src/main/res/values-zh-rCN/strings.xml | 2 ++
app/src/main/res/values/arrays.xml | 4 ++--
app/src/main/res/values/strings.xml | 2 ++
key-selector/src/main/cpp/Languages.h | 6 ++++++
key-selector/src/main/cpp/key_selector.cpp | 6 ++++--
6 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/io/github/lsposed/manager/ui/activity/SettingsActivity.java b/app/src/main/java/io/github/lsposed/manager/ui/activity/SettingsActivity.java
index 13662435..37b0eb21 100644
--- a/app/src/main/java/io/github/lsposed/manager/ui/activity/SettingsActivity.java
+++ b/app/src/main/java/io/github/lsposed/manager/ui/activity/SettingsActivity.java
@@ -22,6 +22,7 @@ package io.github.lsposed.manager.ui.activity;
import android.annotation.SuppressLint;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -222,7 +223,16 @@ public class SettingsActivity extends BaseActivity {
} else {
prefVariant.setEnabled(installed);
prefVariant.setValue(String.valueOf(ConfigManager.getVariant()));
- prefVariant.setOnPreferenceChangeListener((preference, newValue) -> ConfigManager.setVariant(Integer.parseInt((String) newValue)));
+ prefVariant.setOnPreferenceChangeListener((preference, newValue) -> {
+ if (newValue.equals("2")) {
+ new AlertDialog.Builder(requireActivity())
+ .setCancelable(true)
+ .setMessage(R.string.settings_sandhook_deprecated_warning)
+ .setPositiveButton(android.R.string.ok, (di, i) -> {})
+ .show();
+ }
+ return ConfigManager.setVariant(Integer.parseInt((String) newValue));
+ });
}
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 633a7b4e..49bf36f9 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -151,6 +151,8 @@
恢复中…
恢复成功!
恢复失败
+ SandHook(已废弃)
+ 警告:SandHook 现已废弃,并且将在以后的版本中移除。\n请考虑切换到 YAHFA。
备份…
备份
恢复
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 1d0a5cdc..578a08d1 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -33,9 +33,9 @@
- MODE_NIGHT_FOLLOW_SYSTEM
-
+
- YAHFA
- - SandHook
+ - @string/settings_variant_sandhook
- 1
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bab0566f..557cf43c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -140,6 +140,8 @@
Restoring…
Restore finished!
Failed to restore
+ SandHook (Deprecated)
+ Warning: SandHook is deprecated and will be removed in the future. \nPlease consider migrating to YAHFA.
Network
DNS over HTTPS
Workaround DNS poisoning in some nations
diff --git a/key-selector/src/main/cpp/Languages.h b/key-selector/src/main/cpp/Languages.h
index 18798740..3b320ff7 100644
--- a/key-selector/src/main/cpp/Languages.h
+++ b/key-selector/src/main/cpp/Languages.h
@@ -39,6 +39,9 @@ public:
const char base[] = "No operation after %hu seconds.";
return u16fmt(base, seconds);
};
+ virtual const std::string deprecated() {
+ return "(Deprecated)";
+ };
protected:
std::string u16fmt(const char* base, std::uint16_t s){
std::string out;
@@ -61,6 +64,9 @@ public:
const char base[] = "在 %hu 秒内没有任何操作。";
return u16fmt(base, seconds);
}
+ virtual const std::string deprecated() override {
+ return "(已废弃)";
+ };
};
#endif //LSPOSED_LANGUAGES_H
diff --git a/key-selector/src/main/cpp/key_selector.cpp b/key-selector/src/main/cpp/key_selector.cpp
index b4bb6e78..b28f3ca9 100644
--- a/key-selector/src/main/cpp/key_selector.cpp
+++ b/key-selector/src/main/cpp/key_selector.cpp
@@ -14,7 +14,8 @@
* You should have received a copy of the GNU General Public License
* along with LSPosed. If not, see .
*
- * Copyright (C) 2020 EdXposed Contributors
+ * Copyright (C) 2010 The Android Open Source Project
+ * Copyright (C) 2015-2016 The CyanogenMod Project
* Copyright (C) 2021 LSPosed Contributors
*/
@@ -266,6 +267,7 @@ int main() {
#endif
std::unordered_map variants;
+ std::string sandhook_deprecated = "SandHook " + l->deprecated();
for (const auto i: AllVariants) {
switch (i) {
case Variant::YAHFA:
@@ -276,7 +278,7 @@ int main() {
break;
case Variant::SandHook:
variants[i] = {
- .expression = "SandHook",
+ .expression = sandhook_deprecated.c_str(),
.supported_arch = {ARM, ARM64}
};
break;