diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d38784a6..eb28e8f5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Oct 19 13:30:51 EST 2014 +#Mon Dec 08 16:11:22 EST 2014 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip diff --git a/keymap.txt.emulator b/keymap.txt.emulator new file mode 100644 index 00000000..f7cf1a42 --- /dev/null +++ b/keymap.txt.emulator @@ -0,0 +1,15 @@ +# Keycodes useful for emulator +# softleft = [ softright = ] +# star = ; pound = ' +DPAD_CENTER 23 +DPAD_DOWN 20 +DPAD_UP 19 +DPAD_LEFT 21 +DPAD_RIGHT 22 +SOFT_RIGHT 72 +SOFT_LEFT 71 +DEL 67 +BACK 4 +ENTER 66 +POUND 75 +STAR 74 diff --git a/keymap.txt.sample b/keymap.txt.sample index b4bf8934..fbc29c73 100644 --- a/keymap.txt.sample +++ b/keymap.txt.sample @@ -1,3 +1,4 @@ +# Default keycodes DPAD_CENTER 23 DPAD_DOWN 20 DPAD_UP 19 @@ -7,4 +8,6 @@ SOFT_RIGHT 2 SOFT_LEFT 1 DEL 67 BACK 4 -ENTER 66 \ No newline at end of file +ENTER 66 +POUND 18 +STAR 17 diff --git a/src/org/nyanya/android/traditionalt9/KeyMap.java b/src/org/nyanya/android/traditionalt9/KeyMap.java index 16ab353d..9d5ad753 100644 --- a/src/org/nyanya/android/traditionalt9/KeyMap.java +++ b/src/org/nyanya/android/traditionalt9/KeyMap.java @@ -23,7 +23,8 @@ public class KeyMap { public static int DEL = KeyEvent.KEYCODE_DEL; public static int BACK = KeyEvent.KEYCODE_BACK; public static int ENTER = KeyEvent.KEYCODE_ENTER; - + public static int STAR = KeyEvent.KEYCODE_STAR; + public static int POUND = KeyEvent.KEYCODE_POUND; static { setKeys(); } @@ -45,6 +46,7 @@ public class KeyMap { while ((line = br.readLine()) != null) { String[] ws = line.split(" "); if (ws.length != 2) {continue;} + else if (line.startsWith("#")) {continue;} try { if (ws[0].equals("DPAD_CENTER")) { DPAD_CENTER = Integer.parseInt(ws[1]); @@ -66,6 +68,10 @@ public class KeyMap { BACK = Integer.parseInt(ws[1]); } else if (ws[0].equals("ENTER")) { ENTER = Integer.parseInt(ws[1]); + } else if (ws[0].equals("STAR")) { + STAR = Integer.parseInt(ws[1]); + } else if (ws[0].equals("POUND")) { + POUND = Integer.parseInt(ws[1]); } } catch (NumberFormatException _ignore) { Log.w("T9.KeyMap", "Invalid number found"); diff --git a/src/org/nyanya/android/traditionalt9/TraditionalT9.java b/src/org/nyanya/android/traditionalt9/TraditionalT9.java index 1022b6ea..e660a221 100644 --- a/src/org/nyanya/android/traditionalt9/TraditionalT9.java +++ b/src/org/nyanya/android/traditionalt9/TraditionalT9.java @@ -70,7 +70,7 @@ public class TraditionalT9 extends InputMethodService implements private static final int CAPS_ALL = 2; private final static int[] CAPS_CYCLE = { CAPS_OFF, CAPS_SINGLE, CAPS_ALL }; - private final static int T9DELAY = 1200; + private final static int T9DELAY = 900; final Handler t9releasehandler = new Handler(); Runnable mt9release = new Runnable() { @Override @@ -478,23 +478,6 @@ public class TraditionalT9 extends InputMethodService implements } mFirstPress = false; - // Log.d("onKeyDown", "Key: " + keyCode); - // TODO: remove emulator special keys - switch (keyCode) { - case 75: - keyCode = KeyEvent.KEYCODE_POUND; - break; - case 74: - keyCode = KeyEvent.KEYCODE_STAR; - break; - case 72: - keyCode = KeyMap.SOFT_RIGHT; - break; - case 71: - keyCode = KeyMap.SOFT_LEFT; - break; - } - if (keyCode == KeyMap.DPAD_CENTER) { if (interfacehandler != null) { interfacehandler.setPressed(keyCode, true); @@ -551,7 +534,10 @@ public class TraditionalT9 extends InputMethodService implements event.startTracking(); return true; - } else if (keyCode == KeyEvent.KEYCODE_0 || keyCode == KeyEvent.KEYCODE_1 || keyCode == KeyEvent.KEYCODE_2 || keyCode == KeyEvent.KEYCODE_3 || keyCode == KeyEvent.KEYCODE_4 || keyCode == KeyEvent.KEYCODE_5 || keyCode == KeyEvent.KEYCODE_6 || keyCode == KeyEvent.KEYCODE_7 || keyCode == KeyEvent.KEYCODE_8 || keyCode == KeyEvent.KEYCODE_9 || keyCode == KeyEvent.KEYCODE_POUND || keyCode == KeyEvent.KEYCODE_STAR || keyCode == 94) { + } else if (keyCode == KeyEvent.KEYCODE_0 || keyCode == KeyEvent.KEYCODE_1 || keyCode == KeyEvent.KEYCODE_2 || + keyCode == KeyEvent.KEYCODE_3 || keyCode == KeyEvent.KEYCODE_4 || keyCode == KeyEvent.KEYCODE_5 || + keyCode == KeyEvent.KEYCODE_6 || keyCode == KeyEvent.KEYCODE_7 || keyCode == KeyEvent.KEYCODE_8 || + keyCode == KeyEvent.KEYCODE_9 || keyCode == KeyMap.POUND || keyCode == KeyMap.STAR) { event.startTracking(); return true; } else {// KeyCharacterMap.load(KeyCharacterMap.BUILT_IN_KEYBOARD).getNumber(keyCode) @@ -568,7 +554,7 @@ public class TraditionalT9 extends InputMethodService implements awintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); awintent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); if (interfacehandler != null) { - interfacehandler.setPressed(KeyEvent.KEYCODE_SOFT_RIGHT, false); + interfacehandler.setPressed(KeyMap.SOFT_RIGHT, false); } hideWindow(); startActivity(awintent); @@ -580,32 +566,17 @@ public class TraditionalT9 extends InputMethodService implements if (event.getRepeatCount() != 1) { return true; } - // TODO: remove emulator special keys - switch (keyCode) { - case 75: - keyCode = KeyEvent.KEYCODE_POUND; - break; - case 74: - keyCode = KeyEvent.KEYCODE_STAR; - break; - case 72: - keyCode = KeyMap.SOFT_RIGHT; - break; - case 71: - keyCode = KeyMap.SOFT_LEFT; - break; - } // Log.d("onLongPress", "LONG PRESS: " + keyCode); // HANDLE SPECIAL KEYS - if (keyCode == KeyEvent.KEYCODE_POUND) { + if (keyCode == KeyMap.POUND) { commitReset(); // do default action or insert new line if (!sendDefaultEditorAction(true)) { onText("\n"); } return true; - } else if (keyCode == KeyEvent.KEYCODE_STAR) { + } else if (keyCode == KeyMap.STAR) { if (mKeyMode != MODE_NUM) { if (mLangsAvailable.length > 1) { nextLang(); @@ -673,22 +644,6 @@ public class TraditionalT9 extends InputMethodService implements return super.onKeyUp(keyCode, event); } - // TODO: remove emulator special keys - switch (keyCode) { - case 75: - keyCode = KeyEvent.KEYCODE_POUND; - break; - case 74: - keyCode = KeyEvent.KEYCODE_STAR; - break; - case 72: - keyCode = KeyMap.SOFT_RIGHT; - break; - case 71: - keyCode = KeyMap.SOFT_LEFT; - break; - } - if (keyCode == KeyMap.DPAD_CENTER) { if (interfacehandler != null) { interfacehandler.setPressed(keyCode, false); @@ -738,19 +693,15 @@ public class TraditionalT9 extends InputMethodService implements } // pass-through - - //case KeyEvent.KEYCODE_FOCUS: - // if (!isInputViewShown()){ - // Log.d("onKeyUp", "showing window."); - // //showWindow(true); - // } if (!isInputViewShown()) { showWindow(true); } onKey(keyCode, null); return true; } else if (keyCode == KeyEvent.KEYCODE_0 || keyCode == KeyEvent.KEYCODE_1 || keyCode == KeyEvent.KEYCODE_2 - || keyCode == KeyEvent.KEYCODE_3 || keyCode == KeyEvent.KEYCODE_4 || keyCode == KeyEvent.KEYCODE_5 || keyCode == KeyEvent.KEYCODE_6 || keyCode == KeyEvent.KEYCODE_7 || keyCode == KeyEvent.KEYCODE_8 || keyCode == KeyEvent.KEYCODE_9 || keyCode == KeyEvent.KEYCODE_POUND || keyCode == KeyEvent.KEYCODE_STAR || keyCode == 94) {//case KeyEvent.KEYCODE_FOCUS: + || keyCode == KeyEvent.KEYCODE_3 || keyCode == KeyEvent.KEYCODE_4 || keyCode == KeyEvent.KEYCODE_5 || + keyCode == KeyEvent.KEYCODE_6 || keyCode == KeyEvent.KEYCODE_7 || keyCode == KeyEvent.KEYCODE_8 || + keyCode == KeyEvent.KEYCODE_9 || keyCode == KeyMap.POUND || keyCode == KeyMap.STAR) { // if (!isInputViewShown()){ // Log.d("onKeyUp", "showing window."); // //showWindow(true); @@ -838,9 +789,9 @@ public class TraditionalT9 extends InputMethodService implements handleBackspace(); // change case - } else if (keyCode == KeyEvent.KEYCODE_STAR) { + } else if (keyCode == KeyMap.STAR) { if (mKeyMode == MODE_NUM) { - handleCharacter(KeyEvent.KEYCODE_STAR); + handleCharacter(KeyMap.STAR); } else { handleShift(); } @@ -849,8 +800,8 @@ public class TraditionalT9 extends InputMethodService implements handleClose(); // space - } else if (keyCode == KeyEvent.KEYCODE_POUND) { - handleCharacter(KeyEvent.KEYCODE_POUND); + } else if (keyCode == KeyMap.POUND) { + handleCharacter(KeyMap.POUND); } else if (keyCode == KeyMap.SOFT_LEFT) { if (mWordFound) { @@ -1048,7 +999,7 @@ public class TraditionalT9 extends InputMethodService implements updateCandidates(); } else { mPreviousWord = ""; - keyDownUp(KeyEvent.KEYCODE_DEL); + keyDownUp(KeyMap.DEL); } updateShiftKeyState(getCurrentInputEditorInfo()); // Log.d("handleBS", "Cm: " + mCapsMode); @@ -1083,7 +1034,7 @@ public class TraditionalT9 extends InputMethodService implements case MODE_LANG: // it begins // on POUND commit and space - if (keyCode == KeyEvent.KEYCODE_POUND) { + if (keyCode == KeyMap.POUND) { if (mComposing.length() > 0) { commitTyped(); } @@ -1102,10 +1053,11 @@ public class TraditionalT9 extends InputMethodService implements case MODE_TEXT: t9releasehandler.removeCallbacks(mt9release); - if (keyCode == KeyEvent.KEYCODE_POUND) { - keyCode--; + if (keyCode == KeyMap.POUND) { + keyCode = 10; + } else { + keyCode = keyCode - KeyEvent.KEYCODE_0; } - keyCode = keyCode - KeyEvent.KEYCODE_0; // Log.d("handleChar", "PRIMARY CODE (num): " + keyCode); boolean newChar = false; @@ -1149,23 +1101,17 @@ public class TraditionalT9 extends InputMethodService implements break; case MODE_NUM: - switch (keyCode) { - // Manual this - case KeyEvent.KEYCODE_POUND: - onText("#"); - break; - case KeyEvent.KEYCODE_STAR: - onText("*"); - break; - default: - onText(String.valueOf(keyCode - KeyEvent.KEYCODE_0)); + if (keyCode == KeyMap.POUND) { + onText("#"); + } else if (keyCode == KeyMap.STAR) { + onText("*"); + } else { + onText(String.valueOf(keyCode - KeyEvent.KEYCODE_0)); } break; - default: Log.e("handleCharacter", "Unknown input?"); } - } // This is a really hacky way to handle DPAD long presses in a way that we can pass them on to