From 9506fd75eaa3ead7e04ea08f63db5603c2cbe912 Mon Sep 17 00:00:00 2001 From: WhiredPlanck Date: Tue, 12 Nov 2024 19:06:12 +0800 Subject: [PATCH] fix: temporary workaround for duplicated return action (again) --- .../com/osfans/trime/ime/core/TrimeInputMethodService.kt | 7 ++++++- .../trime/ime/keyboard/CommonKeyboardActionListener.kt | 3 +-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/osfans/trime/ime/core/TrimeInputMethodService.kt b/app/src/main/java/com/osfans/trime/ime/core/TrimeInputMethodService.kt index a57bc254e3..ca1b79f7cb 100644 --- a/app/src/main/java/com/osfans/trime/ime/core/TrimeInputMethodService.kt +++ b/app/src/main/java/com/osfans/trime/ime/core/TrimeInputMethodService.kt @@ -275,6 +275,11 @@ open class TrimeInputMethodService : LifecycleInputMethodService() { it.data.let event@{ val keyCode = it.value.keyCode if (keyCode != KeyEvent.KEYCODE_UNKNOWN) { + // TODO: look for better workaround for this + if (keyCode == KeyEvent.KEYCODE_ENTER) { + handleReturnKey() + return@event + } val eventTime = SystemClock.uptimeMillis() if (it.up) { sendUpKeyEvent(eventTime, keyCode, it.modifiers.metaState) @@ -318,7 +323,7 @@ open class TrimeInputMethodService : LifecycleInputMethodService() { instance = null } - fun handleReturnKey() { + private fun handleReturnKey() { currentInputEditorInfo.run { if (inputType and InputType.TYPE_MASK_CLASS == InputType.TYPE_NULL) { sendDownUpKeyEvents(KeyEvent.KEYCODE_ENTER) diff --git a/app/src/main/java/com/osfans/trime/ime/keyboard/CommonKeyboardActionListener.kt b/app/src/main/java/com/osfans/trime/ime/keyboard/CommonKeyboardActionListener.kt index b257354d42..2e5d76d525 100644 --- a/app/src/main/java/com/osfans/trime/ime/keyboard/CommonKeyboardActionListener.kt +++ b/app/src/main/java/com/osfans/trime/ime/keyboard/CommonKeyboardActionListener.kt @@ -279,8 +279,7 @@ class CommonKeyboardActionListener( shouldReleaseKey = false when (keyEventCode) { - KeyEvent.KEYCODE_ENTER -> service.handleReturnKey() - KeyEvent.KEYCODE_BACK, KeyEvent.KEYCODE_ESCAPE -> service.requestHideSelf(0) + KeyEvent.KEYCODE_BACK -> service.requestHideSelf(0) else -> { // 小键盘自动增加锁定 if (keyEventCode in KeyEvent.KEYCODE_NUMPAD_0..KeyEvent.KEYCODE_NUMPAD_EQUALS) {