fix: EditTextContent add recallMsg

This commit is contained in:
hd
2024-07-25 09:25:36 +08:00
parent b6bb0127c3
commit 00d7cc27ac

View File

@@ -28,11 +28,16 @@ import cc.ioctl.util.hookAfterIfEnabled
import com.github.kyuubiran.ezxhelper.utils.findField import com.github.kyuubiran.ezxhelper.utils.findField
import com.tencent.qqnt.kernel.nativeinterface.MsgRecord import com.tencent.qqnt.kernel.nativeinterface.MsgRecord
import com.xiaoniu.dispatcher.OnMenuBuilder import com.xiaoniu.dispatcher.OnMenuBuilder
import com.xiaoniu.util.ContextUtils
import io.github.qauxv.R import io.github.qauxv.R
import io.github.qauxv.base.annotation.FunctionHookEntry import io.github.qauxv.base.annotation.FunctionHookEntry
import io.github.qauxv.base.annotation.UiItemAgentEntry import io.github.qauxv.base.annotation.UiItemAgentEntry
import io.github.qauxv.bridge.AppRuntimeHelper
import io.github.qauxv.bridge.kernelcompat.ContactCompat
import io.github.qauxv.bridge.ntapi.MsgServiceHelper
import io.github.qauxv.dsl.FunctionEntryRouter import io.github.qauxv.dsl.FunctionEntryRouter
import io.github.qauxv.hook.CommonSwitchFunctionHook import io.github.qauxv.hook.CommonSwitchFunctionHook
import io.github.qauxv.ui.CommonContextWrapper
import io.github.qauxv.util.CustomMenu import io.github.qauxv.util.CustomMenu
import io.github.qauxv.util.QQVersion import io.github.qauxv.util.QQVersion
import io.github.qauxv.util.Toasts import io.github.qauxv.util.Toasts
@@ -89,6 +94,7 @@ object EditTextContent : CommonSwitchFunctionHook(
} }
} }
editText?.setText(stringBuilder.toString()) editText?.setText(stringBuilder.toString())
recallMsg(msgRecord)
} }
MIX_CONTEXT -> { MIX_CONTEXT -> {
@@ -99,4 +105,20 @@ object EditTextContent : CommonSwitchFunctionHook(
} }
param.result = listOf(item) + param.result as List<*> param.result = listOf(item) + param.result as List<*>
} }
private fun recallMsg(msgRecord: MsgRecord) {
val context = CommonContextWrapper.createAppCompatContext(ContextUtils.getCurrentActivity())
val appRuntime = AppRuntimeHelper.getAppRuntime()!!
val msgService = MsgServiceHelper.getKernelMsgService(appRuntime)!!
msgService.recallMsg(
ContactCompat(msgRecord.chatType, msgRecord.peerUid, ""),
ArrayList<Long>(listOf(msgRecord.msgId)),
) { status, reason ->
if (status == 0) {
Toasts.success(context, "撤回成功")
} else {
Toasts.error(context, "撤回失败: $reason")
}
}
}
} }