cinit / QAuxiliary

QNotified phoenix - To make OICQ great again
Other
4.37k stars 321 forks source link

[Bug] QQ 9 中“输入框增加提示”功能失效 #725

Closed MSDNicrosoft closed 9 months ago

MSDNicrosoft commented 11 months ago

Steps to reproduce/复现步骤

  1. 在QA设置界面中开启“输入框增加提示”(文本默认即可)
  2. 打开任意聊天对话

注:已尝试过【故障排查】中的“清除模块缓存”

Expected behaviour/预期行为

空输入框中显示设置的文本提示

Actual behaviour/实际行为

冷启动 QQ 后打开任意聊天对话,QQ会卡住一会再进入相应界面,空输入框没有文本提示; 返回 QQ 主界面再打开任意聊天对话,无卡顿,空输入框仍然没有文本提示。

XPosed Framework you used/你使用的XP框架

应用转生

QQ(TIM)版本/QQ(TIM) Version

9.0.0.13960(5222)

Module Version/模块版本

1.4.6.r1830.3979438

Version and Other Requirements/版本和其他要求

Logs/日志


1.4.6.r1830.3979438
QQ9.0.0(5222)
PID: 31148, UID: 10322
xyz.nextalone.hook.ChatInputHint
isInitialized: true
isInitializationSuccessful: true
isEnabled: true
isAvailable: true
isPreparationRequired: false
errors: 2
java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.EditText
    at xyz.nextalone.hook.ChatInputHint$initOnce$1$2.invoke(SourceFile:3)
    at xyz.nextalone.hook.ChatInputHint$initOnce$1$2.invoke(SourceFile:1)
    at xyz.nextalone.util.HookUtilsKt$hookAfter$1.afterMethod(SourceFile:3)
    at BugHooker_crpoo5v5reqsm4p1fuam8g9sq.hook(Unknown Source:46)
    at com.tencent.mobileqq.aio.input.b.c.o(P:3)
    at com.tencent.mobileqq.aio.input.b.c.q(P:1)
    at com.tencent.mobileqq.aio.input.b.c.handleUIState(P:1)
    at com.tencent.input.base.mvicompat.c$a.a(P:1)
    at com.tencent.mobileqq.aio.input.b.c.b(P:1)
    at com.tencent.mobileqq.aio.input.b.c.accept(P:1)
    at com.tencent.input.base.mvicompat.DelegateMediator.f(P:7)
    at com.tencent.mobileqq.aio.input.e.a.R0(P:1)
    at com.tencent.mobileqq.aio.input.e.a.handleUIState(P:1)
    at com.tencent.mvi.mvvm.BaseVB$mObserver$2$a.a(P:1)
    at com.tencent.mvi.mvvm.BaseVB$mObserver$2$a.onChanged(P:1)
    at androidx.lifecycle.MVILiveData$MVIObserverWrapper.onChanged(P:2)
    at androidx.lifecycle.LiveData.considerNotify(P:6)
    at androidx.lifecycle.LiveData.dispatchingValue(P:8)
    at androidx.lifecycle.LiveData.setValue(P:4)
    at androidx.lifecycle.MutableLiveData.setValue(P:1)
    at androidx.lifecycle.MVILiveData.setValue(P:2)
    at com.tencent.mvi.mvvm.b.c.dispatchState$mvi_debug(P:3)
    at com.tencent.mvi.mvvm.BaseVM.updateUI(P:3)
    at com.tencent.mobileqq.aio.input.e.b$c.a(P:1)
    at com.tencent.mobileqq.aio.input.e.b$c.accept(P:1)
    at com.tencent.input.base.mvicompat.e$a.b(P:1)
    at com.tencent.mobileqq.aio.input.b.d.o(P:1)
    at com.tencent.mobileqq.aio.input.b.d.p(P:1)
    at com.tencent.mobileqq.aio.input.b.d.k(P:4)
    at com.tencent.mobileqq.aio.input.b.d.l(P:2)
    at com.tencent.mobileqq.aio.input.b.d.e(P:1)
    at com.tencent.input.base.mvicompat.e$a.a(P:1)
    at com.tencent.mobileqq.aio.input.b.d.a(P:1)
    at com.tencent.mobileqq.aio.input.b.d.accept(P:1)
    at com.tencent.input.base.mvicompat.DelegateMediator.f(P:7)
    at com.tencent.mobileqq.aio.input.e.b.handleIntent(P:2)
    at com.tencent.mobileqq.aio.input.e.b.handleIntent(P:1)
    at com.tencent.mvi.mvvm.BaseVB.sendIntent(P:1)
    at com.tencent.mobileqq.aio.input.e.a$c.a(P:1)
    at com.tencent.mobileqq.aio.input.e.a$c.accept(P:1)
    at com.tencent.input.base.mvicompat.c$a.f(P:1)
    at com.tencent.mobileqq.aio.input.b.c.s(P:1)
    at com.tencent.mobileqq.aio.input.b.c.t(P:1)
    at com.tencent.mobileqq.aio.input.b.c.a(P:1)
    at com.tencent.input.base.mvicompat.g.a(P:3)
    at com.tencent.mobileqq.aio.input.e.a.bindViewAndData(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:13)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.aio.base.chat.ChatPie.g(P:7)
    at BugHooker_4ir7ksmsep6fkpavout21f9d70.hook(Unknown Source:61)
    at com.tencent.aio.base.chat.b.h(P:14)
    at com.tencent.aio.main.fragment.ChatFragment.zi(P:21)
    at com.tencent.aio.main.fragment.ChatFragment.onCreateView(P:5)
    at androidx.fragment.app.Fragment.performCreateView(P:4)
    at androidx.fragment.app.FragmentStateManager.createView(P:15)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(P:20)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(P:34)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(P:10)
    at androidx.fragment.app.FragmentManager.execPendingActions(P:4)
    at androidx.fragment.app.FragmentManager.dispatchStateChange(P:9)
    at androidx.fragment.app.FragmentManager.dispatchViewCreated(P:1)
    at androidx.fragment.app.Fragment.performViewCreated(P:2)
    at androidx.fragment.app.FragmentStateManager.createView(P:26)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(P:20)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(P:34)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(P:10)
    at androidx.fragment.app.FragmentManager.execPendingActions(P:4)
    at androidx.fragment.app.FragmentManager$5.run(P:1)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:257)
    at android.app.ActivityThread.main(ActivityThread.java:8272)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1031)

java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.EditText
    at xyz.nextalone.hook.ChatInputHint$initOnce$1$2.invoke(SourceFile:3)
    at xyz.nextalone.hook.ChatInputHint$initOnce$1$2.invoke(SourceFile:1)
    at xyz.nextalone.util.HookUtilsKt$hookAfter$1.afterMethod(SourceFile:3)
    at BugHooker_crpoo5v5reqsm4p1fuam8g9sq.hook(Unknown Source:46)
    at com.tencent.mobileqq.aio.input.b.c.o(P:3)
    at com.tencent.mobileqq.aio.input.b.c.q(P:1)
    at com.tencent.mobileqq.aio.input.b.c.handleUIState(P:1)
    at com.tencent.input.base.mvicompat.c$a.a(P:1)
    at com.tencent.mobileqq.aio.input.b.c.b(P:1)
    at com.tencent.mobileqq.aio.input.b.c.accept(P:1)
    at com.tencent.input.base.mvicompat.DelegateMediator.f(P:7)
    at com.tencent.mobileqq.aio.input.e.a.R0(P:1)
    at com.tencent.mobileqq.aio.input.e.a.handleUIState(P:1)
    at com.tencent.mvi.mvvm.BaseVB$mObserver$2$a.a(P:1)
    at com.tencent.mvi.mvvm.BaseVB$mObserver$2$a.onChanged(P:1)
    at androidx.lifecycle.MVILiveData$MVIObserverWrapper.onChanged(P:2)
    at androidx.lifecycle.LiveData.considerNotify(P:6)
    at androidx.lifecycle.LiveData.dispatchingValue(P:8)
    at androidx.lifecycle.LiveData.setValue(P:4)
    at androidx.lifecycle.MutableLiveData.setValue(P:1)
    at androidx.lifecycle.MVILiveData.setValue(P:2)
    at com.tencent.mvi.mvvm.b.c.dispatchState$mvi_debug(P:3)
    at com.tencent.mvi.mvvm.BaseVM.updateUI(P:3)
    at com.tencent.mobileqq.aio.input.e.b$c.a(P:1)
    at com.tencent.mobileqq.aio.input.e.b$c.accept(P:1)
    at com.tencent.input.base.mvicompat.e$a.b(P:1)
    at com.tencent.mobileqq.aio.input.b.d.o(P:1)
    at com.tencent.mobileqq.aio.input.b.d.p(P:1)
    at com.tencent.mobileqq.aio.input.b.d.k(P:4)
    at com.tencent.mobileqq.aio.input.b.d.l(P:2)
    at com.tencent.mobileqq.aio.input.b.d.e(P:1)
    at com.tencent.input.base.mvicompat.e$a.a(P:1)
    at com.tencent.mobileqq.aio.input.b.d.a(P:1)
    at com.tencent.mobileqq.aio.input.b.d.accept(P:1)
    at com.tencent.input.base.mvicompat.DelegateMediator.f(P:7)
    at com.tencent.mobileqq.aio.input.e.b.handleIntent(P:2)
    at com.tencent.mobileqq.aio.input.e.b.handleIntent(P:1)
    at com.tencent.mvi.mvvm.BaseVB.sendIntent(P:1)
    at com.tencent.mobileqq.aio.input.e.a$c.a(P:1)
    at com.tencent.mobileqq.aio.input.e.a$c.accept(P:1)
    at com.tencent.input.base.mvicompat.c$a.f(P:1)
    at com.tencent.mobileqq.aio.input.b.c.s(P:1)
    at com.tencent.mobileqq.aio.input.b.c.t(P:1)
    at com.tencent.mobileqq.aio.input.b.c.a(P:1)
    at com.tencent.input.base.mvicompat.g.a(P:3)
    at com.tencent.mobileqq.aio.input.e.a.bindViewAndData(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:13)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.c.a.c.a.buildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildChildVM(P:1)
    at com.tencent.mvi.mvvm.b.b.buildVM(P:11)
    at com.tencent.c.a.c.a.buildVM(P:5)
    at com.tencent.aio.base.chat.ChatPie.g(P:7)
    at BugHooker_4ir7ksmsep6fkpavout21f9d70.hook(Unknown Source:61)
    at com.tencent.aio.base.chat.b.h(P:14)
    at com.tencent.aio.main.fragment.ChatFragment.zi(P:21)
    at com.tencent.aio.main.fragment.ChatFragment.onHiddenChanged(P:6)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(P:52)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(P:34)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(P:10)
    at androidx.fragment.app.FragmentManager.execPendingActions(P:4)
    at androidx.fragment.app.FragmentManager$5.run(P:1)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:257)
    at android.app.ActivityThread.main(ActivityThread.java:8272)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1031)
MSDNicrosoft commented 9 months ago

Fixed in https://github.com/cinit/QAuxiliary/commit/1aac880e6d65b4460da0cae55533d970a2328562