aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtyom Palvelev <artyompp@google.com>2024-03-08 16:32:59 +0000
committerArtyom Palvelev <artyompp@google.com>2024-03-08 16:37:06 +0000
commit76243d802b6f86b9363aac48464f09af900c0d9b (patch)
tree2ae9473151887cc6da26c333188746299f944208
parent9ac9ebdde4c549ea4b0deec2f9a937b0a604a07d (diff)
downloadgamesdk-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.java35
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 &&