summaryrefslogtreecommitdiffstats
path: root/apps/Term
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2010-04-13 11:45:19 -0400
committerSteve Kondik <shade@chemlab.org>2010-04-13 11:45:19 -0400
commitd706d8c560a1c9339bf2ee5e270c774eb7404d88 (patch)
tree3b92cd772f8a5cf1166b37a320594f74a7aa5e9b /apps/Term
parent41c93216f02146fc9bc989d3d82ea3be5b5c06f8 (diff)
downloadandroid_development-d706d8c560a1c9339bf2ee5e270c774eb7404d88.tar.gz
android_development-d706d8c560a1c9339bf2ee5e270c774eb7404d88.tar.bz2
android_development-d706d8c560a1c9339bf2ee5e270c774eb7404d88.zip
Fix issue with Term not recognizing numeric keys on VK.
Patch from Jack Palevich's Google Code project.
Diffstat (limited to 'apps/Term')
-rw-r--r--apps/Term/src/com/android/term/Term.java77
1 files changed, 22 insertions, 55 deletions
diff --git a/apps/Term/src/com/android/term/Term.java b/apps/Term/src/com/android/term/Term.java
index f9302d0bd..057d2cc86 100644
--- a/apps/Term/src/com/android/term/Term.java
+++ b/apps/Term/src/com/android/term/Term.java
@@ -2657,63 +2657,12 @@ class EmulatorView extends View implements GestureDetector.OnGestureListener {
return new BaseInputConnection(this, false) {
@Override
- public boolean beginBatchEdit() {
- return true;
- }
-
- @Override
- public boolean clearMetaKeyStates(int states) {
- return true;
- }
-
- @Override
- public boolean commitCompletion(CompletionInfo text) {
- return true;
- }
-
- @Override
public boolean commitText(CharSequence text, int newCursorPosition) {
sendText(text);
return true;
}
@Override
- public boolean deleteSurroundingText(int leftLength, int rightLength) {
- return true;
- }
-
- @Override
- public boolean endBatchEdit() {
- return true;
- }
-
- @Override
- public boolean finishComposingText() {
- return true;
- }
-
- @Override
- public int getCursorCapsMode(int reqModes) {
- return 0;
- }
-
- @Override
- public ExtractedText getExtractedText(ExtractedTextRequest request,
- int flags) {
- return null;
- }
-
- @Override
- public CharSequence getTextAfterCursor(int n, int flags) {
- return null;
- }
-
- @Override
- public CharSequence getTextBeforeCursor(int n, int flags) {
- return null;
- }
-
- @Override
public boolean performEditorAction(int actionCode) {
if(actionCode == EditorInfo.IME_ACTION_UNSPECIFIED) {
// The "return" key has been pressed on the IME.
@@ -2736,15 +2685,33 @@ class EmulatorView extends View implements GestureDetector.OnGestureListener {
@Override
public boolean sendKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
- switch(event.getKeyCode()) {
- case KeyEvent.KEYCODE_DEL:
- sendChar(127);
- break;
+ // Some keys are sent here rather than to commitText.
+ // In particular, del and the digit keys are sent here.
+ // As a bit of defensive programming, handle every
+ // key with an ASCII meaning.
+ int keyCode = event.getKeyCode();
+ if (keyCode >= 0 && keyCode < KEYCODE_CHARS.length()) {
+ char c = KEYCODE_CHARS.charAt(keyCode);
+ if (c > 0) {
+ sendChar(c);
+ }
}
}
return true;
}
+ private final String KEYCODE_CHARS =
+ "\000\000\000\000\000\000\000" + "0123456789*#"
+ + "\000\000\000\000\000\000\000\000\000\000"
+ + "abcdefghijklmnopqrstuvwxyz,."
+ + "\000\000\000\000"
+ + "\011 " // tab, space
+ + "\000\000\000" // sym .. envelope
+ + "\015\177" // enter, del
+ + "`-=[]\\;'/@"
+ + "\000\000\000"
+ + "+";
+
@Override
public boolean setComposingText(CharSequence text, int newCursorPosition) {
return true;