From 470d2aac9debcafbc800e6ce6549a4d61d4ddd77 Mon Sep 17 00:00:00 2001 From: klxiaoniu Date: Fri, 30 Jun 2023 17:40:47 +0800 Subject: [PATCH] fix: RepeaterPlus DoubleClick for QQ 8.9.63 --- .../dialog/RepeaterPlusIconSettingDialog.java | 1 - .../java/cc/hicore/hook/RepeaterPlus.java | 28 ++++++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/cc/hicore/dialog/RepeaterPlusIconSettingDialog.java b/app/src/main/java/cc/hicore/dialog/RepeaterPlusIconSettingDialog.java index 7796fd2c6f..fd94bb1ff6 100644 --- a/app/src/main/java/cc/hicore/dialog/RepeaterPlusIconSettingDialog.java +++ b/app/src/main/java/cc/hicore/dialog/RepeaterPlusIconSettingDialog.java @@ -136,7 +136,6 @@ public RepeaterPlusIconSettingDialog(Context context) { // temporary if (HostInfo.requireMinQQVersion(QQVersion.QQ_8_9_63)) { - check_double_click.setEnabled(false); check_showUpper.setEnabled(false); check_showInMenu.setEnabled(false); } diff --git a/app/src/main/java/cc/hicore/hook/RepeaterPlus.java b/app/src/main/java/cc/hicore/hook/RepeaterPlus.java index 022dd7abe4..4b3908e3b9 100644 --- a/app/src/main/java/cc/hicore/hook/RepeaterPlus.java +++ b/app/src/main/java/cc/hicore/hook/RepeaterPlus.java @@ -108,13 +108,8 @@ public Function2 getExtraSearchKeywordProvider( @Override public Function3 getOnClickListener() { return (agent, activity, view) -> { - // temporary -// if (HostInfo.requireMinQQVersion(QQVersion.QQ_8_9_63)) { -// Toasts.info(activity, "当前QQ版本暂不支持自定义"); -// } else { - RepeaterPlusIconSettingDialog dialog = new RepeaterPlusIconSettingDialog(activity); - dialog.show(); - //} + RepeaterPlusIconSettingDialog dialog = new RepeaterPlusIconSettingDialog(activity); + dialog.show(); return Unit.INSTANCE; }; } @@ -164,6 +159,7 @@ public boolean initOnce() throws Exception { // temporary XC_MethodHook callback = new XC_MethodHook() { private ImageView img; + private volatile long click_time = 0; @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { ImageView imageView; @@ -177,6 +173,24 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { if (img.getContext().getClass().getName().contains("MultiForwardActivity")) { return; } + if (RepeaterPlusIconSettingDialog.getIsDoubleClick()) { + img.setOnClickListener(v -> { + try { + if (System.currentTimeMillis() - 200 > click_time) { + return; + } + } finally { + click_time = System.currentTimeMillis(); + } + try { + Object a = Initiator.loadClass("com.tencent.mobileqq.aio.msglist.holder.component.msgfollow.a") + .getDeclaredConstructor(param.thisObject.getClass()).newInstance(param.thisObject); + a.getClass().getMethod("onClick", View.class).invoke(a, v); + } catch (Exception e) { + Log.e(e); + } + }); + } imageView.setVisibility(0); } }