diff options
author | 2010-09-30 04:57:40 -0700 | |
---|---|---|
committer | 2010-09-30 04:57:40 -0700 | |
commit | 3297ee80f0b5b93128123d98d7f8b42257e36445 (patch) | |
tree | 33e376db5426567144a003861d42d995464c71bb /java/src | |
parent | 77c9f2d314d9fbb5c4bd5b6918326d2e1f4e3a98 (diff) | |
parent | a1cc4f0a8d9a70ff1515d1ddb1476f6ce630afe2 (diff) | |
download | latinime-3297ee80f0b5b93128123d98d7f8b42257e36445.tar.gz latinime-3297ee80f0b5b93128123d98d7f8b42257e36445.tar.xz latinime-3297ee80f0b5b93128123d98d7f8b42257e36445.zip |
Merge "Long pressing mic/comma key will show settings menue" into gingerbread
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinKeyboardView.java | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java index 2872f6b46..c4afd9a27 100644 --- a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java @@ -17,6 +17,7 @@ package com.android.inputmethod.latin; import android.content.Context; +import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Paint; import android.inputmethodservice.Keyboard; @@ -41,6 +42,8 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { private Keyboard mPhoneKeyboard; + private final boolean mLongPressCommaForSettingsEnabled; + /** Whether we've started dropping move events because we found a big jump */ private boolean mDroppingEvents; /** @@ -54,11 +57,15 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { private int mLastRowY; public LatinKeyboardView(Context context, AttributeSet attrs) { - super(context, attrs); + this(context, attrs, 0); } public LatinKeyboardView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); + + Resources res = context.getResources(); + mLongPressCommaForSettingsEnabled = res.getBoolean( + R.bool.config_long_press_comma_for_settings_enabled); } public void setPhoneKeyboard(Keyboard phoneKeyboard) { @@ -90,22 +97,25 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { protected boolean onLongPress(Key key) { int primaryCode = key.codes[0]; if (primaryCode == KEYCODE_OPTIONS) { - getOnKeyboardActionListener().onKey(KEYCODE_OPTIONS_LONGPRESS, null, - LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE, - LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE); - return true; + return invokeOnKey(KEYCODE_OPTIONS_LONGPRESS); } else if (primaryCode == '0' && getKeyboard() == mPhoneKeyboard) { // Long pressing on 0 in phone number keypad gives you a '+'. - getOnKeyboardActionListener().onKey( - '+', null, - LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE, - LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE); - return true; + return invokeOnKey('+'); + } else if (primaryCode == KEYCODE_VOICE + || (primaryCode == ',' && mLongPressCommaForSettingsEnabled)) { + return invokeOnKey(KEYCODE_OPTIONS); } else { return super.onLongPress(key); } } + private boolean invokeOnKey(int primaryCode) { + getOnKeyboardActionListener().onKey(primaryCode, null, + LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE, + LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE); + return true; + } + @Override protected CharSequence adjustCase(CharSequence label) { Keyboard keyboard = getKeyboard(); |