From e608c504fe2d9ce1580330ee49f6fa5019078b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=8C=E5=A0=86=E5=B0=8F=E9=80=8F=E6=98=8E?= Date: Mon, 14 Mar 2022 17:31:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8E=BB=E9=99=A4=E6=89=93?= =?UTF-8?q?=E5=BC=80=E5=BA=94=E7=94=A8=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/SettingsActivity.kt | 9 +++++ .../hook/app/SecurityCenter.kt | 9 +++-- .../RemoveOpenAppConfirmationPopup.kt | 34 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 ++ 4 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/RemoveOpenAppConfirmationPopup.kt diff --git a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt index e5b1b977..d6fb95cc 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt @@ -1019,6 +1019,15 @@ class SettingsActivity : MIUIActivity() { SwitchV("skip_waiting_time") ) ) + add( + TextSummaryWithSwitchV( + TextSummaryV( + textId = R.string.remove_open_app_confirmation_popup, + tipsId = R.string.remove_open_app_confirmation_popup_summary + ), + SwitchV("remove_open_app_confirmation_popup") + ) + ) add( TextSummaryWithSwitchV( TextSummaryV( diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/SecurityCenter.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/SecurityCenter.kt index 6b2dcd6f..33fa7bfa 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/SecurityCenter.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/SecurityCenter.kt @@ -1,9 +1,6 @@ package com.lt2333.simplicitytools.hook.app -import com.lt2333.simplicitytools.hook.app.securitycenter.LockOneHundred -import com.lt2333.simplicitytools.hook.app.securitycenter.RemoveMacroBlacklist -import com.lt2333.simplicitytools.hook.app.securitycenter.ShowBatteryTemperature -import com.lt2333.simplicitytools.hook.app.securitycenter.SkipWaitingTime +import com.lt2333.simplicitytools.hook.app.securitycenter.* import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam @@ -11,7 +8,7 @@ import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam class SecurityCenter : IXposedHookLoadPackage { override fun handleLoadPackage(lpparam: LoadPackageParam) { - XposedBridge.log("Simplicitytools: 成功 Hook "+javaClass.simpleName) + XposedBridge.log("Simplicitytools: 成功 Hook " + javaClass.simpleName) //跳过 5/10秒等待时间 SkipWaitingTime().handleLoadPackage(lpparam) //锁定 100分 @@ -20,5 +17,7 @@ class SecurityCenter : IXposedHookLoadPackage { RemoveMacroBlacklist().handleLoadPackage(lpparam) //显示电池温度 ShowBatteryTemperature().handleLoadPackage(lpparam) + //去除打开应用弹窗 + RemoveOpenAppConfirmationPopup().handleLoadPackage(lpparam) } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/RemoveOpenAppConfirmationPopup.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/RemoveOpenAppConfirmationPopup.kt new file mode 100644 index 00000000..44d84be2 --- /dev/null +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/RemoveOpenAppConfirmationPopup.kt @@ -0,0 +1,34 @@ +package com.lt2333.simplicitytools.hook.app.securitycenter + +import android.widget.TextView +import com.lt2333.simplicitytools.util.XSPUtils +import com.lt2333.simplicitytools.util.findClass +import com.lt2333.simplicitytools.util.hookAfterMethod +import de.robv.android.xposed.IXposedHookLoadPackage +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class RemoveOpenAppConfirmationPopup : IXposedHookLoadPackage { + override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { + val textViewClass = "android.widget.TextView".findClass(lpparam.classLoader) + textViewClass.hookAfterMethod( + "setText", + CharSequence::class.java + ) { + if (XSPUtils.getBoolean("remove_open_app_confirmation_popup", false)) { + val textView = it.thisObject as TextView + if (it.args.isNotEmpty() && it.args[0]?.toString().equals( + textView.context.resources.getString( + textView.context.resources.getIdentifier( + "button_text_accept", + "string", + textView.context.packageName + ) + ) + ) + ) { + textView.performClick() + } + } + } + } +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fcf6c059..e6a237be 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -158,4 +158,6 @@ Help us translate the app into your language Display current information during charging Current + remove open app popup + remove \"Allow XXX to open XXX\" Chain start popup