Loading java/res/values/bools.xml +1 −0 Original line number Diff line number Diff line Loading @@ -29,4 +29,5 @@ <!-- Whether or not Popup on key press is enabled by default --> <bool name="default_popup_preview">true</bool> <bool name="default_recorrection_enabled">true</bool> <bool name="config_long_press_comma_for_settings_enabled">true</bool> </resources> java/src/com/android/inputmethod/latin/LatinKeyboardView.java +20 −10 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; /** Loading @@ -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) { Loading Loading @@ -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(); Loading Loading
java/res/values/bools.xml +1 −0 Original line number Diff line number Diff line Loading @@ -29,4 +29,5 @@ <!-- Whether or not Popup on key press is enabled by default --> <bool name="default_popup_preview">true</bool> <bool name="default_recorrection_enabled">true</bool> <bool name="config_long_press_comma_for_settings_enabled">true</bool> </resources>
java/src/com/android/inputmethod/latin/LatinKeyboardView.java +20 −10 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; /** Loading @@ -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) { Loading Loading @@ -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(); Loading