diff options
author | Artyom Palvelev <artyompp@google.com> | 2024-03-08 16:32:59 +0000 |
---|---|---|
committer | Artyom Palvelev <artyompp@google.com> | 2024-03-08 16:37:06 +0000 |
commit | 76243d802b6f86b9363aac48464f09af900c0d9b (patch) | |
tree | 2ae9473151887cc6da26c333188746299f944208 | |
parent | 9ac9ebdde4c549ea4b0deec2f9a937b0a604a07d (diff) | |
download | gamesdk-76243d802b6f86b9363aac48464f09af900c0d9b.tar.gz |
populate list of ignored characters in InputConnection
Hardware keyboards generate key events for many characters that are not
being used by text editors, which is what GameTextInput implements.
Here we maintain a list of keycodes that are ignored by our input
connection.
Test: build and run AGDKTunnel
Fix: 327668285
Change-Id: Ibbe28bf5a52d6013103808eebf61b5052a16c373
-rw-r--r-- | game-text-input/src/main/java/com/google/androidgamesdk/gametextinput/InputConnection.java | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/game-text-input/src/main/java/com/google/androidgamesdk/gametextinput/InputConnection.java b/game-text-input/src/main/java/com/google/androidgamesdk/gametextinput/InputConnection.java index 273b201f..469897bf 100644 --- a/game-text-input/src/main/java/com/google/androidgamesdk/gametextinput/InputConnection.java +++ b/game-text-input/src/main/java/com/google/androidgamesdk/gametextinput/InputConnection.java @@ -57,10 +57,39 @@ public class InputConnection KeyEvent.KEYCODE_BUTTON_THUMBR, KeyEvent.KEYCODE_BUTTON_SELECT, KeyEvent.KEYCODE_BUTTON_START, KeyEvent.KEYCODE_BUTTON_MODE, KeyEvent.KEYCODE_MEDIA_RECORD, KeyEvent.KEYCODE_BUTTON_Z, KeyEvent.KEYCODE_BUTTON_C, + // End of common game controller button keycodes - KeyEvent.KEYCODE_DEL, KeyEvent.KEYCODE_FORWARD_DEL, + KeyEvent.KEYCODE_DEL, KeyEvent.KEYCODE_FORWARD_DEL, KeyEvent.KEYCODE_CTRL_RIGHT, KeyEvent.KEYCODE_SHIFT_LEFT, KeyEvent.KEYCODE_SHIFT_RIGHT, KeyEvent.KEYCODE_BACK, - KeyEvent.KEYCODE_VOLUME_UP, KeyEvent.KEYCODE_VOLUME_DOWN, KeyEvent.KEYCODE_VOLUME_MUTE}; + KeyEvent.KEYCODE_VOLUME_UP, KeyEvent.KEYCODE_VOLUME_DOWN, KeyEvent.KEYCODE_VOLUME_MUTE, + KeyEvent.KEYCODE_ALT_LEFT, KeyEvent.KEYCODE_ALT_RIGHT, KeyEvent.KEYCODE_CTRL_LEFT, + KeyEvent.KEYCODE_F1, KeyEvent.KEYCODE_F10, KeyEvent.KEYCODE_F11, KeyEvent.KEYCODE_F12, + KeyEvent.KEYCODE_F2, KeyEvent.KEYCODE_F3, KeyEvent.KEYCODE_F4, KeyEvent.KEYCODE_F5, + KeyEvent.KEYCODE_F6, KeyEvent.KEYCODE_F7, KeyEvent.KEYCODE_F8, KeyEvent.KEYCODE_F9, + KeyEvent.KEYCODE_INSERT, KeyEvent.KEYCODE_MOVE_HOME, KeyEvent.KEYCODE_MOVE_END, + KeyEvent.KEYCODE_PAGE_UP, KeyEvent.KEYCODE_PAGE_DOWN, KeyEvent.KEYCODE_UNKNOWN, + KeyEvent.KEYCODE_SEARCH, + + // all media keys + KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, + KeyEvent.KEYCODE_MEDIA_STOP, + KeyEvent.KEYCODE_MEDIA_NEXT, + KeyEvent.KEYCODE_MEDIA_PREVIOUS, + KeyEvent.KEYCODE_MEDIA_REWIND, + KeyEvent.KEYCODE_MEDIA_FAST_FORWARD, + KeyEvent.KEYCODE_MEDIA_PLAY, + KeyEvent.KEYCODE_MEDIA_PAUSE, + KeyEvent.KEYCODE_MEDIA_CLOSE, + KeyEvent.KEYCODE_MEDIA_EJECT, + KeyEvent.KEYCODE_MEDIA_RECORD, + KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK, + KeyEvent.KEYCODE_MEDIA_TOP_MENU, + KeyEvent.KEYCODE_TV_MEDIA_CONTEXT_MENU, + KeyEvent.KEYCODE_MEDIA_SKIP_FORWARD, + KeyEvent.KEYCODE_MEDIA_SKIP_BACKWARD, + KeyEvent.KEYCODE_MEDIA_STEP_FORWARD, + KeyEvent.KEYCODE_MEDIA_STEP_BACKWARD, + }; private final InputMethodManager imm; private final View targetView; private final Settings settings; @@ -448,7 +477,7 @@ public class InputConnection } private boolean processKeyEvent(KeyEvent event) { - Log.d(TAG, "processKeyEvent"); + Log.d(TAG, String.format("processKeyEvent(key=%d)", event.getKeyCode())); // Filter out Enter keys if multi-line mode is disabled. if ((settings.mEditorInfo.inputType & EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE) == 0 && |