aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorsatok <satok@google.com>2010-09-01 23:33:43 +0900
committersatok <satok@google.com>2010-09-02 11:47:33 +0900
commitdd8dd9fc1b10d0457a0b4b74c1c1899ff5350601 (patch)
tree3f01ccab5c9f50bd82788122b6af52ea972af552 /java
parent681b102a492b7d5301c1ca87985b4c391eb5eb14 (diff)
downloadlatinime-dd8dd9fc1b10d0457a0b4b74c1c1899ff5350601.tar.gz
latinime-dd8dd9fc1b10d0457a0b4b74c1c1899ff5350601.tar.xz
latinime-dd8dd9fc1b10d0457a0b4b74c1c1899ff5350601.zip
Change background color for functional keys in LatinIME
Change-Id: I45f13c1fd139ce43478e5d0b2cdb62e56e9f77a8
Diffstat (limited to 'java')
-rw-r--r--java/res/drawable/btn_keyboard_key_gingerbread.xml10
-rwxr-xr-xjava/res/xml/kbd_qwerty.xml59
-rwxr-xr-xjava/res/xml/kbd_qwerty_black.xml1
-rwxr-xr-xjava/res/xml/kbd_symbols.xml14
-rwxr-xr-xjava/res/xml/kbd_symbols_shift.xml14
-rw-r--r--java/src/com/android/inputmethod/latin/LatinKeyboard.java37
6 files changed, 86 insertions, 49 deletions
diff --git a/java/res/drawable/btn_keyboard_key_gingerbread.xml b/java/res/drawable/btn_keyboard_key_gingerbread.xml
index 24a547974..4a113a8a1 100644
--- a/java/res/drawable/btn_keyboard_key_gingerbread.xml
+++ b/java/res/drawable/btn_keyboard_key_gingerbread.xml
@@ -16,10 +16,16 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- Functional keys. -->
+
+ <item android:state_single="true" android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_pressed" />
+ <item android:state_single="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_normal" />
+
<!-- Toggle keys. Use checkable/checked state. -->
- <item android:state_checkable="true" android:state_checked="true"
- android:state_pressed="true"
+ <item android:state_checkable="true" android:state_checked="true" android:state_pressed="true"
android:drawable="@drawable/btn_keyboard_key_dark_pressed_on" />
<item android:state_checkable="true" android:state_pressed="true"
android:drawable="@drawable/btn_keyboard_key_dark_pressed_off" />
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index 59c61e4c8..d7d1ee0d5 100755
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -18,6 +18,9 @@
*/
-->
+<!-- TODO: Add settings key to other languages -->
+<!-- TODO: Add modifier attr to functional keys in other languages -->
+
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
@@ -106,75 +109,75 @@
<Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
android:keyWidth="15%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ android:isRepeatable="true" android:isModifier="true"/>
</Row>
<Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+ android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
<Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
+ android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
<Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
</Row>
<Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+ android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
<Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:keyLabel="/" android:keyWidth="10%p"/>
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
+ android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
<Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
</Row>
<Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+ android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
<Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:keyLabel="\@"/>
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
+ android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
<Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
</Row>
<Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+ android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
<Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
+ android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
<Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:keyLabel=":-)" android:keyOutputText=":-) "
android:popupKeyboard="@xml/popup_smileys"
android:keyWidth="25%p" android:keyEdgeFlags="right"/>
@@ -182,23 +185,23 @@
<Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+ android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
<Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="20%p" android:isRepeatable="true"/>
+ android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
<Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="15%p"/>
+ android:keyWidth="15%p" android:isModifier="true"/>
<Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
</Row>
</Keyboard>
diff --git a/java/res/xml/kbd_qwerty_black.xml b/java/res/xml/kbd_qwerty_black.xml
index 076359c95..286547283 100755
--- a/java/res/xml/kbd_qwerty_black.xml
+++ b/java/res/xml/kbd_qwerty_black.xml
@@ -201,5 +201,4 @@
android:iconPreview="@drawable/sym_keyboard_feedback_return"
android:keyWidth="15%p" android:keyEdgeFlags="right"/>
</Row>
-
</Keyboard>
diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml
index 3f6b8ac85..fad3ebc10 100755
--- a/java/res/xml/kbd_symbols.xml
+++ b/java/res/xml/kbd_symbols.xml
@@ -118,25 +118,25 @@
/>
<Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" android:keyWidth="15%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ android:isRepeatable="true" android:isModifier="true"/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/label_alpha_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+ android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
<Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
+ <Key android:codes="@integer/key_f1" android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:keyWidth="30%p"
android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true"/>
+ android:isRepeatable="true" android:isModifier="true"/>
<Key android:codes="46" android:keyLabel="."
android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
+ android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="25%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_return"
- />
+ android:isModifier="true"/>
</Row>
</Keyboard>
diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml
index 0ec4c713c..b0693917e 100755
--- a/java/res/xml/kbd_symbols_shift.xml
+++ b/java/res/xml/kbd_symbols_shift.xml
@@ -85,24 +85,24 @@
/>
<Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" android:keyWidth="15%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ android:isRepeatable="true" android:isModifier="true"/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyLabel="@string/label_alpha_key" android:keyWidth="15%p"
- android:keyEdgeFlags="left"/>
+ android:keyEdgeFlags="left" android:isModifier="true"/>
<Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="„" android:keyWidth="10%p" />
+ android:keyWidth="10%p" android:isModifier="true"/>
+ <Key android:keyLabel="„" android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:keyWidth="30%p"
android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true"/>
- <Key android:keyLabel="…" android:keyWidth="10%p" />
+ android:isRepeatable="true" android:isModifier="true"/>
+ <Key android:keyLabel="…" android:keyWidth="10%p" android:isModifier="true"/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
android:keyWidth="25%p" android:keyEdgeFlags="right"
android:iconPreview="@drawable/sym_keyboard_feedback_return"
- />
+ android:isModifier="true"/>
</Row>
</Keyboard>
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboard.java b/java/src/com/android/inputmethod/latin/LatinKeyboard.java
index 15e22f318..33519e4be 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboard.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboard.java
@@ -628,9 +628,20 @@ public class LatinKeyboard extends Keyboard {
}
class LatinKey extends Keyboard.Key {
-
+
+ // functional normal state (with properties)
+ private final int[] KEY_STATE_FUNCTIONAL_NORMAL = {
+ android.R.attr.state_single
+ };
+
+ // functional pressed state (with properties)
+ private final int[] KEY_STATE_FUNCTIONAL_PRESSED = {
+ android.R.attr.state_single,
+ android.R.attr.state_pressed
+ };
+
private boolean mShiftLockEnabled;
-
+
public LatinKey(Resources res, Keyboard.Row parent, int x, int y,
XmlResourceParser parser) {
super(res, parent, x, y, parser);
@@ -639,11 +650,17 @@ public class LatinKeyboard extends Keyboard {
popupResId = 0;
}
}
-
- void enableShiftLock() {
+
+ private void enableShiftLock() {
mShiftLockEnabled = true;
}
+ // sticky is used for shift key. If a key is not sticky and is modifier,
+ // the key will be treated as functional.
+ private boolean isFunctionalKey() {
+ return !sticky && modifier;
+ }
+
@Override
public void onReleased(boolean inside) {
if (!mShiftLockEnabled) {
@@ -665,6 +682,18 @@ public class LatinKeyboard extends Keyboard {
boolean isInsideSuper(int x, int y) {
return super.isInside(x, y);
}
+
+ @Override
+ public int[] getCurrentDrawableState() {
+ if (isFunctionalKey()) {
+ if (pressed) {
+ return KEY_STATE_FUNCTIONAL_PRESSED;
+ } else {
+ return KEY_STATE_FUNCTIONAL_NORMAL;
+ }
+ }
+ return super.getCurrentDrawableState();
+ }
}
/**