diff --git a/app/src/main/java/gm/tieba/tabswitch/XposedInit.kt b/app/src/main/java/gm/tieba/tabswitch/XposedInit.kt index dbabe6b9..41513713 100644 --- a/app/src/main/java/gm/tieba/tabswitch/XposedInit.kt +++ b/app/src/main/java/gm/tieba/tabswitch/XposedInit.kt @@ -59,6 +59,7 @@ import gm.tieba.tabswitch.hooker.eliminate.PurgeVideo import gm.tieba.tabswitch.hooker.eliminate.RedTip import gm.tieba.tabswitch.hooker.eliminate.RemoveUpdate import gm.tieba.tabswitch.hooker.eliminate.UserFilter +import gm.tieba.tabswitch.hooker.extra.AutoRefresh import gm.tieba.tabswitch.hooker.extra.ForbidGesture import gm.tieba.tabswitch.hooker.extra.Hide import gm.tieba.tabswitch.hooker.extra.StackTrace @@ -164,7 +165,8 @@ class XposedInit : XposedContext(), IXposedHookZygoteInit, IXposedHookLoadPackag PurgeVideo(), SelectClipboard(), UserFilter(), - TransitionAnimation() + TransitionAnimation(), + AutoRefresh() ) val matchers = ArrayList(hookers.size + 1) matchers.add(TbToast()) diff --git a/app/src/main/java/gm/tieba/tabswitch/hooker/TSPreference.kt b/app/src/main/java/gm/tieba/tabswitch/hooker/TSPreference.kt index 3d04b5f8..19ac4558 100644 --- a/app/src/main/java/gm/tieba/tabswitch/hooker/TSPreference.kt +++ b/app/src/main/java/gm/tieba/tabswitch/hooker/TSPreference.kt @@ -266,6 +266,7 @@ class TSPreference : XposedContext(), IHooker, Obfuscated { preferenceLayout.addView(SwitchButtonHolder(activity, "禁用帖子手势", "forbid_gesture", SwitchButtonHolder.TYPE_SWITCH)) preferenceLayout.addView(SwitchButtonHolder(activity, "用赞踩差数代替赞数", "agree_num", SwitchButtonHolder.TYPE_SWITCH)) preferenceLayout.addView(SwitchButtonHolder(activity, "禁止检测通知开启状态", "notification_detect", SwitchButtonHolder.TYPE_SWITCH)) + preferenceLayout.addView(SwitchButtonHolder(activity, "禁止首页自动刷新", "auto_refresh", SwitchButtonHolder.TYPE_SWITCH)) preferenceLayout.addView(createButton(TRACE, "希望有一天不再需要贴吧TS", true) { _ -> activity.startActivity(Intent().apply { diff --git a/app/src/main/java/gm/tieba/tabswitch/hooker/extra/AutoRefresh.kt b/app/src/main/java/gm/tieba/tabswitch/hooker/extra/AutoRefresh.kt new file mode 100644 index 00000000..ab997237 --- /dev/null +++ b/app/src/main/java/gm/tieba/tabswitch/hooker/extra/AutoRefresh.kt @@ -0,0 +1,36 @@ +package gm.tieba.tabswitch.hooker.extra + +import de.robv.android.xposed.XposedHelpers +import gm.tieba.tabswitch.XposedContext +import gm.tieba.tabswitch.dao.AcRules.findRule +import gm.tieba.tabswitch.hooker.IHooker +import gm.tieba.tabswitch.hooker.Obfuscated +import gm.tieba.tabswitch.hooker.deobfuscation.Matcher +import gm.tieba.tabswitch.hooker.deobfuscation.StringMatcher + +class AutoRefresh : XposedContext(), IHooker, Obfuscated { + + override fun key(): String { + return "auto_refresh" + } + + override fun matchers(): List { + return listOf( + StringMatcher("recommend_frs_refresh_time") + ) + } + + override fun hook() { + findRule(matchers()) { _, clazz, method -> + val md = XposedHelpers.findMethodExactIfExists( + findClass(clazz), + method, + Boolean::class.javaPrimitiveType + ) ?: XposedHelpers.findMethodExactIfExists( + findClass(clazz), + method + ) + md?.let { hookReplaceMethod(it) { false } } + } + } +}