Giter Club home page Giter Club logo

Comments (9)

green-green-avk avatar green-green-avk commented on May 26, 2024

Please, use the IME Test app once more in the "cooked" mode. Only one Fn+key press is enough.

from anotherterm.

guillaume-d avatar guillaume-d commented on May 26, 2024

OK, Fn+s it is:


=====
Using raw mode
=====

=====
Using raw mode
=====

=====
Using cooked mode
=====
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:151)
android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1292)
android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1245)
android.view.inputmethod.InputMethodManager.access$000(InputMethodManager.java:203)
android.view.inputmethod.InputMethodManager$H.handleMessage(InputMethodManager.java:416)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.beginBatchEdit(InputView.java:96)
android.view.inputmethod.BaseInputConnection.finishComposingText(BaseInputConnection.java:269)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:152)
android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1292)
android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1245)
android.view.inputmethod.InputMethodManager.access$000(InputMethodManager.java:203)
android.view.inputmethod.InputMethodManager$H.handleMessage(InputMethodManager.java:416)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.endBatchEdit(InputView.java:102)
android.view.inputmethod.BaseInputConnection.finishComposingText(BaseInputConnection.java:271)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:152)
android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1292)
android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1245)
android.view.inputmethod.InputMethodManager.access$000(InputMethodManager.java:203)
android.view.inputmethod.InputMethodManager$H.handleMessage(InputMethodManager.java:416)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)

=====
Using cooked mode
=====
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:151)
android.view.inputmethod.InputMethodManager.reportFinishInputConnection(InputMethodManager.java:749)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3178)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.beginBatchEdit(InputView.java:96)
android.view.inputmethod.BaseInputConnection.finishComposingText(BaseInputConnection.java:269)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:152)
android.view.inputmethod.InputMethodManager.reportFinishInputConnection(InputMethodManager.java:749)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3178)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.endBatchEdit(InputView.java:102)
android.view.inputmethod.BaseInputConnection.finishComposingText(BaseInputConnection.java:271)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:152)
android.view.inputmethod.InputMethodManager.reportFinishInputConnection(InputMethodManager.java:749)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3178)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
java.lang.Integer
57
android.view.KeyEvent
KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_ALT_LEFT, scanCode=56, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=21062761, downTime=21062761, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyPreIme(InputView.java:81)
android.view.View.dispatchKeyEventPreIme(View.java:7236)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewRootImpl.deliverKeyEvent(ViewRootImpl.java:3848)
android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3437)
android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4535)
android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4513)
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4617)
android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:125)
android.os.Looper.loop(Looper.java:124)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
java.lang.Integer
57
android.view.KeyEvent
KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_ALT_LEFT, scanCode=56, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=21062761, downTime=21062761, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyDown(InputView.java:251)
android.view.KeyEvent.dispatch(KeyEvent.java:2715)
android.view.View.dispatchKeyEvent(View.java:7262)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2144)
com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1472)
android.app.Activity.dispatchKeyEvent(Activity.java:2415)
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2071)
android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3946)
android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:3894)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3028)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
java.lang.Integer
47
android.view.KeyEvent
KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_S, scanCode=31, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=21063090, downTime=21063090, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyPreIme(InputView.java:81)
android.view.View.dispatchKeyEventPreIme(View.java:7236)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewRootImpl.deliverKeyEvent(ViewRootImpl.java:3848)
android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3437)
android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4535)
android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4513)
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4617)
android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:125)
android.os.Looper.loop(Looper.java:124)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
java.lang.Integer
47
android.view.KeyEvent
KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_S, scanCode=31, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=21063090, downTime=21063090, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyDown(InputView.java:251)
android.view.KeyEvent.dispatch(KeyEvent.java:2715)
android.view.View.dispatchKeyEvent(View.java:7262)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2144)
com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1472)
android.app.Activity.dispatchKeyEvent(Activity.java:2415)
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2071)
android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3946)
android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:3894)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3028)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
java.lang.Integer
47
android.view.KeyEvent
KeyEvent { action=ACTION_UP, keyCode=KEYCODE_S, scanCode=31, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=21063239, downTime=21063090, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyPreIme(InputView.java:81)
android.view.View.dispatchKeyEventPreIme(View.java:7236)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewRootImpl.deliverKeyEvent(ViewRootImpl.java:3848)
android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3437)
android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4535)
android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4513)
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4617)
android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:125)
android.os.Looper.loop(Looper.java:124)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
java.lang.Integer
47
android.view.KeyEvent
KeyEvent { action=ACTION_UP, keyCode=KEYCODE_S, scanCode=31, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=21063239, downTime=21063090, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyUp(InputView.java:257)
android.view.KeyEvent.dispatch(KeyEvent.java:2739)
android.view.View.dispatchKeyEvent(View.java:7262)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2144)
com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1472)
android.app.Activity.dispatchKeyEvent(Activity.java:2415)
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2071)
android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3946)
android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:3894)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3028)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
java.lang.Integer
57
android.view.KeyEvent
KeyEvent { action=ACTION_UP, keyCode=KEYCODE_ALT_LEFT, scanCode=56, metaState=0, flags=0x8, repeatCount=0, eventTime=21063448, downTime=21063090, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyPreIme(InputView.java:81)
android.view.View.dispatchKeyEventPreIme(View.java:7236)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewGroup.dispatchKeyEventPreIme(ViewGroup.java:1394)
android.view.ViewRootImpl.deliverKeyEvent(ViewRootImpl.java:3848)
android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3437)
android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4535)
android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4513)
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4617)
android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:125)
android.os.Looper.loop(Looper.java:124)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
java.lang.Integer
57
android.view.KeyEvent
KeyEvent { action=ACTION_UP, keyCode=KEYCODE_ALT_LEFT, scanCode=56, metaState=0, flags=0x8, repeatCount=0, eventTime=21063448, downTime=21063090, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyUp(InputView.java:257)
android.view.KeyEvent.dispatch(KeyEvent.java:2739)
android.view.View.dispatchKeyEvent(View.java:7262)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1413)
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2144)
com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1472)
android.app.Activity.dispatchKeyEvent(Activity.java:2415)
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2071)
android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3946)
android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:3894)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3028)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:151)
android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1292)
android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1245)
android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1254)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3184)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.beginBatchEdit(InputView.java:96)
android.view.inputmethod.BaseInputConnection.finishComposingText(BaseInputConnection.java:269)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:152)
android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1292)
android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1245)
android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1254)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3184)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.endBatchEdit(InputView.java:102)
android.view.inputmethod.BaseInputConnection.finishComposingText(BaseInputConnection.java:271)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:152)
android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1292)
android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1245)
android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1254)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3184)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:151)
android.view.inputmethod.InputMethodManager.reportFinishInputConnection(InputMethodManager.java:749)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3178)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.beginBatchEdit(InputView.java:96)
android.view.inputmethod.BaseInputConnection.finishComposingText(BaseInputConnection.java:269)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:152)
android.view.inputmethod.InputMethodManager.reportFinishInputConnection(InputMethodManager.java:749)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3178)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)
===
---
green_green_avk.imetest.InputView.access$000(InputView.java:20)
green_green_avk.imetest.InputView$1.endBatchEdit(InputView.java:102)
android.view.inputmethod.BaseInputConnection.finishComposingText(BaseInputConnection.java:271)
green_green_avk.imetest.InputView$1.finishComposingText(InputView.java:152)
android.view.inputmethod.InputMethodManager.reportFinishInputConnection(InputMethodManager.java:749)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3178)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4962)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
dalvik.system.NativeStart.main(Native Method)

from anotherterm.

green-green-avk avatar green-green-avk commented on May 26, 2024

Hmm...

Either do we need to have an option for the Alt behavior?
Or just treat any left Alt in a special way if the deviceId==0 (https://developer.android.com/reference/android/view/KeyCharacterMap#BUILT_IN_KEYBOARD)?
Ambiguous...

Surprisingly, the IME dispatches the event directly to the view around its InputConnection interface, so it's supposed to be done by KeyEvent.getUnicodeChar() thus using the keyboard mapping table.

So at the moment your Fn acts exactly as the Alt supposed to do (i.e. prepending any symbol by ESC with one detail):

final char c = (char) event.getUnicodeChar(event.getMetaState() & KeyEvent.META_SHIFT_MASK);

(as for any usual external keyboard the Shift must be the only modifier to be taken into account here).

Raw mode:

KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_G, scanCode=34, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=6591161, downTime=6591161, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyPreIme(InputView.java:81)

...

KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_G, scanCode=34, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=6591161, downTime=6591161, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyDown(InputView.java:251)
android.view.KeyEvent.dispatch(KeyEvent.java:2715)
android.view.View.dispatchKeyEvent(View.java:7262)
...
android.os.Handler.dispatchMessage(Handler.java:99)

Cooked mode:

KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_S, scanCode=31, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=21063090, downTime=21063090, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyPreIme(InputView.java:81)

...

KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_S, scanCode=31, metaState=META_ALT_ON|META_ALT_LEFT_ON, flags=0x8, repeatCount=0, eventTime=21063090, downTime=21063090, deviceId=0, source=0x301 }
---
green_green_avk.imetest.InputView.onKeyDown(InputView.java:251)
android.view.KeyEvent.dispatch(KeyEvent.java:2715)
android.view.View.dispatchKeyEvent(View.java:7262)
...
android.os.Handler.dispatchMessage(Handler.java:99)

from anotherterm.

green-green-avk avatar green-green-avk commented on May 26, 2024

May be we need also to think about possible remapping Alt and mapping Ctrl and Insert somewhere?

from anotherterm.

green-green-avk avatar green-green-avk commented on May 26, 2024

As a concept: https://github.com/green-green-avk/AnotherTerm/releases/tag/%2311-1
Look into settings.

from anotherterm.

guillaume-d avatar guillaume-d commented on May 26, 2024

#11 test 1 fully worked once I activated the new setting! 👍
Note the checkbox labels are pretty long and look truncated: they end with "acts as.." and "and similar" here.
One more time thanks a lot!

May be we need also to think about possible remapping Alt and mapping Ctrl and Insert somewhere?

I do not mind about losing Insert or even Alt, but having Ctrl is crucial, and (at least in Vi) it can also compensate for other missing keys (Esc: Ctrl-C, Tab: Ctrl-I).
Some way of mapping physical keys or buttons to PC keys would be perfect, even when only over a textual configuration file. The Key Mapping Editor might already support this, but I am currently unsure how to use it, more documentation about it could help.
One should be able to map at least Volume-Up, Volume-Down and Back (should be present on many devices), ideally also the hardware keyboards' exotic keys ("Search", "Chat", web (sic!) and OK keys here) by entering their key code.
I won't push it 😉 by asking for the Menu button which is probably almost nowhere else to be found nowadays, or for the Power and Home ones which IIRC need convoluted tricks...

from anotherterm.

green-green-avk avatar green-green-avk commented on May 26, 2024

...ideally also the hardware keyboards' exotic keys...

Logging them in the "raw" mode could be a good idea. Just to estimate the possibility at least.

from anotherterm.

guillaume-d avatar guillaume-d commented on May 26, 2024

...ideally also the hardware keyboards' exotic keys...

Logging them in the "raw" mode could be a good idea. Just to estimate the possibility at least.

Here you are then:

  • "Search" is KEYCODE_SEARCH
  • "Chat" outputs nothing at all in the IME Test app, but directly opens the stock Messaging app, so that one key is probably hopeless
  • web: same as above (opens the stock web browser app)
  • OK is KEYCODE_DPAD_CENTER
  • ...and Menu is KEYCODE_MENU as one would expect

(Please tell me if you'd need more logs from the IME Test app.)

However listing each and every physical key Android ever defined for mapping in the UI might be too much given the few users concerned.
(Note that the other apps listed in #10 all do something similar but all leave out some keys that nobody claimed, and their UI is already pretty crowded.)

As said in #11 (comment) a more generic solution might be more appropriate: I for one would not mind having to install IME Test and copy part of the results from there during the initial configuration to get my own keys working.

from anotherterm.

guillaume-d avatar guillaume-d commented on May 26, 2024

#11 test 1 fully worked once I activated the new setting! 👍
Note the checkbox labels are pretty long and look truncated: they end with "acts as.." and "and similar" here.
One more time thanks a lot!

The original issue is also fixed in the official MkIIIv4 release, and the labels are not truncated anymore, thanks!

from anotherterm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.