osfans / trime

同文安卓輸入法平臺3.x/Android-rime/Rime Input Method Engine for Android
http://osfans.github.io/trime/
GNU General Public License v3.0
3.08k stars 372 forks source link

NullPointerException when KEYCODE_DPAD_LEFT #568

Closed iovxw closed 2 years ago

iovxw commented 2 years ago

Describe the bug

The left and right key seems broken, and even crashed in Termux

To Reproduce Steps to reproduce the bug:

  1. Open Termux
  2. Send KeyEvent.KEYCODE_DPAD_LEFT or KeyEvent.KEYCODE_DPAD_RIGHT
  3. Crashed

Expected behavior A clear and concise description of what you expected to happen.

Log

java.lang.NullPointerException: Attempt to read from field 'java.lang.CharSequence android.view.inputmethod.ExtractedText.text' on a null object reference
 at com.osfans.trime.ime.text.TextInputManager.handleEditorAction(TextInputManager.kt:470)
 at com.osfans.trime.ime.core.Trime.handleKey(Trime.java:864)
 at com.osfans.trime.ime.text.TextInputManager.onKey(TextInputManager.kt:359)
 at com.osfans.trime.ime.text.TextInputManager.onEvent(TextInputManager.kt:354)
 at com.osfans.trime.ime.keyboard.KeyboardView.detectAndSendKey(KeyboardView.java:925)
 at com.osfans.trime.ime.keyboard.KeyboardView.detectAndSendKey(KeyboardView.java:935)
 at com.osfans.trime.ime.keyboard.KeyboardView.repeatKey(KeyboardView.java:1506)
 at com.osfans.trime.ime.keyboard.KeyboardView.onModifiedTouchEvent(KeyboardView.java:1479)
 at com.osfans.trime.ime.keyboard.KeyboardView.onTouchEvent(KeyboardView.java:1308)
 at android.view.View.dispatchTouchEvent(View.java:14316)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
 at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:488)
 at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1874)
 at android.app.Dialog.dispatchTouchEvent(Dialog.java:859)
 at android.inputmethodservice.SoftInputWindow.dispatchTouchEvent(SoftInputWindow.java:160)
 at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:446)
 at android.view.View.dispatchPointerEvent(View.java:14575)
 at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6026)
 at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5825)
 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5316)
 at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5373)
 at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5339)
 at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5491)
 at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5347)
 at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5548)
 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5320)
 at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5373)
 at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5339)
 at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5347)
 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5320)
 at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8090)
 at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8041)
 at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8002)
 at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8213)
 at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:220)
 at android.os.MessageQueue.nativePollOnce(Native Method)
 at android.os.MessageQueue.next(MessageQueue.java:335)
 at android.os.Looper.loop(Looper.java:183)

Screenshots If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

Additional context

Related: #559 #558 handleEditorAction

Bambooin commented 2 years ago

Colse by #571