aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/res/values-en/whitelist.xml4
-rw-r--r--java/res/xml-sw600dp/rows_number_password.xml26
-rw-r--r--java/res/xml/rows_number_password.xml32
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java14
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java3
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java5
6 files changed, 63 insertions, 21 deletions
diff --git a/java/res/values-en/whitelist.xml b/java/res/values-en/whitelist.xml
index 9c1085883..bcb884e1d 100644
--- a/java/res/values-en/whitelist.xml
+++ b/java/res/values-en/whitelist.xml
@@ -434,6 +434,10 @@
<item>makes</item>
<item>255</item>
+ <item>moat</item>
+ <item>most</item>
+
+ <item>255</item>
<item>monday</item>
<item>Monday</item>
diff --git a/java/res/xml-sw600dp/rows_number_password.xml b/java/res/xml-sw600dp/rows_number_password.xml
index 36f4bba46..6c3855a01 100644
--- a/java/res/xml-sw600dp/rows_number_password.xml
+++ b/java/res/xml-sw600dp/rows_number_password.xml
@@ -31,9 +31,8 @@
latin:keyStyle="num2KeyStyle" />
<Key
latin:keyStyle="num3KeyStyle" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyXPos="-16%p"
+ <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
+ <Spacer
latin:keyWidth="fillRight" />
</Row>
<Row>
@@ -46,9 +45,8 @@
latin:keyStyle="num5KeyStyle" />
<Key
latin:keyStyle="num6KeyStyle" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyXPos="-16%p"
+ <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
+ <Spacer
latin:keyWidth="fillRight" />
</Row>
<Row>
@@ -62,17 +60,21 @@
<Key
latin:keyStyle="num9KeyStyle" />
<!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
- <Spacer />
+ <Spacer
+ latin:keyWidth="fillRight" />
</Row>
<Row>
<!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
<Spacer
- latin:keyWidth="41%p" />
+ latin:keyWidth="23%p" />
+ <Key
+ latin:keyStyle="deleteKeyStyle" />
<Key
latin:keyStyle="num0KeyStyle" />
- <include
- latin:keyXPos="-10%p"
- latin:keyWidth="fillRight"
- latin:keyboardLayout="@xml/key_shortcut" />
+ <Key
+ latin:keyStyle="enterKeyStyle" />
+ <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
+ <Spacer
+ latin:keyWidth="fillRight" />
</Row>
</merge>
diff --git a/java/res/xml/rows_number_password.xml b/java/res/xml/rows_number_password.xml
index e4272ed3f..2e61a08ae 100644
--- a/java/res/xml/rows_number_password.xml
+++ b/java/res/xml/rows_number_password.xml
@@ -22,41 +22,59 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<Row>
+ <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
+ <Spacer
+ latin:keyWidth="10%p" />
<Key
latin:keyStyle="num1KeyStyle" />
<Key
latin:keyStyle="num2KeyStyle" />
<Key
latin:keyStyle="num3KeyStyle" />
- <Spacer />
+ <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
+ <Spacer
+ latin:keyWidth="fillRight" />
</Row>
<Row>
+ <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
+ <Spacer
+ latin:keyWidth="10%p" />
<Key
latin:keyStyle="num4KeyStyle" />
<Key
latin:keyStyle="num5KeyStyle" />
<Key
latin:keyStyle="num6KeyStyle" />
- <Spacer />
+ <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
+ <Spacer
+ latin:keyWidth="fillRight" />
</Row>
<Row>
+ <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
+ <Spacer
+ latin:keyWidth="10%p" />
<Key
latin:keyStyle="num7KeyStyle" />
<Key
latin:keyStyle="num8KeyStyle" />
<Key
latin:keyStyle="num9KeyStyle" />
- <Key
- latin:keyStyle="deleteKeyStyle"
+ <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
+ <Spacer
latin:keyWidth="fillRight" />
</Row>
<Row>
- <Spacer />
+ <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
+ <Spacer
+ latin:keyWidth="10%p" />
+ <Key
+ latin:keyStyle="deleteKeyStyle" />
<Key
latin:keyStyle="num0KeyStyle" />
- <Spacer />
<Key
- latin:keyStyle="enterKeyStyle"
+ latin:keyStyle="enterKeyStyle" />
+ <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
+ <Spacer
latin:keyWidth="fillRight" />
</Row>
</merge>
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index bd3b0e114..0be4cf3a7 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -197,6 +197,20 @@ public class Keyboard {
return null;
}
+ public boolean hasKey(Key aKey) {
+ if (mKeyCache.containsKey(aKey)) {
+ return true;
+ }
+
+ for (final Key key : mKeys) {
+ if (key == aKey) {
+ mKeyCache.put(key.mCode, key);
+ return true;
+ }
+ }
+ return false;
+ }
+
public static boolean isLetterCode(int code) {
return code >= MINIMUM_LETTER_CODE;
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index c0d5b6772..cc0a1fb10 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -487,6 +487,9 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
} else {
// Draw invalidated keys.
for (final Key key : mInvalidatedKeys) {
+ if (!mKeyboard.hasKey(key)) {
+ continue;
+ }
final int x = key.mX + getPaddingLeft();
final int y = key.mY + getPaddingTop();
mInvalidatedKeysRect.set(x, y, x + key.mWidth, y + key.mHeight);
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index b59e939b7..261755f53 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1298,8 +1298,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
break;
}
switcher.onCodeInput(primaryCode);
- // Reset after any single keystroke
- if (!didAutoCorrect)
+ // Reset after any single keystroke, except shift and symbol-shift
+ if (!didAutoCorrect && primaryCode != Keyboard.CODE_SHIFT
+ && primaryCode != Keyboard.CODE_SWITCH_ALPHA_SYMBOL)
mLastComposedWord.deactivate();
mEnteredText = null;
}