diff options
Diffstat (limited to 'java')
13 files changed, 37 insertions, 17 deletions
diff --git a/java/res/values-sw540dp/config-per-form-factor.xml b/java/res/values-sw430dp/config-per-form-factor.xml index 7f898e017..8868081c3 100644 --- a/java/res/values-sw540dp/config-per-form-factor.xml +++ b/java/res/values-sw430dp/config-per-form-factor.xml @@ -20,13 +20,14 @@ <!-- Configuration values for Large Phone. --> <resources> - <bool name="config_enable_show_key_preview_popup_option">false</bool> + <bool name="config_enable_show_key_preview_popup_option">true</bool> <!-- Whether or not Popup on key press is enabled by default --> - <bool name="config_default_key_preview_popup">false</bool> - <bool name="config_default_sound_enabled">true</bool> + <bool name="config_default_key_preview_popup">true</bool> + <bool name="config_default_sound_enabled">false</bool> <bool name="config_enable_show_voice_key_option">true</bool> - <bool name="config_key_selection_by_dragging_finger">false</bool> + <bool name="config_key_selection_by_dragging_finger">true</bool> <!-- Showing more keys keyboard, just above the touched point if true, aligned to the key if false --> <bool name="config_show_more_keys_keyboard_at_touched_point">false</bool> + <bool name="config_use_fullscreen_mode">false</bool> </resources> diff --git a/java/res/values-sw540dp/config-screen-metrics.xml b/java/res/values-sw430dp/config-screen-metrics.xml index 1205aaa1e..1205aaa1e 100644 --- a/java/res/values-sw540dp/config-screen-metrics.xml +++ b/java/res/values-sw430dp/config-screen-metrics.xml diff --git a/java/res/values-sw540dp-land/config.xml b/java/res/values-sw600dp-land/config.xml index f4785e721..bd123c499 100644 --- a/java/res/values-sw540dp-land/config.xml +++ b/java/res/values-sw600dp-land/config.xml @@ -18,10 +18,8 @@ */ --> -<!-- Configuration values for Large Phone and Small Tablet Landscape. --> +<!-- Configuration values for Small Tablet Landscape. --> <resources> - <bool name="config_use_fullscreen_mode">false</bool> - <!-- Preferable keyboard height in absolute scale: 45.0mm --> <!-- This config_default_keyboard_height value should match with keyboard-heights.xml --> <dimen name="config_default_keyboard_height">283.5dp</dimen> diff --git a/java/res/values-sw600dp/config-per-form-factor.xml b/java/res/values-sw600dp/config-per-form-factor.xml index 1c7e677a9..aa9a05482 100644 --- a/java/res/values-sw600dp/config-per-form-factor.xml +++ b/java/res/values-sw600dp/config-per-form-factor.xml @@ -29,4 +29,5 @@ <!-- Showing more keys keyboard, just above the touched point if true, aligned to the key if false --> <bool name="config_show_more_keys_keyboard_at_touched_point">false</bool> + <bool name="config_use_fullscreen_mode">false</bool> </resources> diff --git a/java/res/values-sw540dp/config.xml b/java/res/values-sw600dp/config.xml index 8637d6bab..700350c36 100644 --- a/java/res/values-sw540dp/config.xml +++ b/java/res/values-sw600dp/config.xml @@ -18,7 +18,7 @@ */ --> -<!-- Configuration values for Large Phone and Small Tablet Portrait. --> +<!-- Configuration values for Small Tablet Portrait. --> <resources> <dimen name="config_key_hysteresis_distance">40.0dp</dimen> diff --git a/java/res/values-sw540dp/touch-position-correction.xml b/java/res/values-sw600dp/touch-position-correction.xml index 932b8fc72..932b8fc72 100644 --- a/java/res/values-sw540dp/touch-position-correction.xml +++ b/java/res/values-sw600dp/touch-position-correction.xml diff --git a/java/res/values-sw768dp-land/config.xml b/java/res/values-sw768dp-land/config.xml index b97872f54..4040e29f7 100644 --- a/java/res/values-sw768dp-land/config.xml +++ b/java/res/values-sw768dp-land/config.xml @@ -20,8 +20,6 @@ <!-- Configuration values for Large Tablet Landscape. --> <resources> - <bool name="config_use_fullscreen_mode">false</bool> - <!-- Preferable keyboard height in absolute scale: 58.0mm --> <!-- This config_default_keyboard_height value should match with keyboard-heights.xml --> <dimen name="config_default_keyboard_height">365.4dp</dimen> diff --git a/java/res/values-sw768dp/config-per-form-factor.xml b/java/res/values-sw768dp/config-per-form-factor.xml index 136f41567..b90fbaea5 100644 --- a/java/res/values-sw768dp/config-per-form-factor.xml +++ b/java/res/values-sw768dp/config-per-form-factor.xml @@ -29,4 +29,5 @@ <!-- Showing more keys keyboard, just above the touched point if true, aligned to the key if false --> <bool name="config_show_more_keys_keyboard_at_touched_point">true</bool> + <bool name="config_use_fullscreen_mode">false</bool> </resources> diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index f9e78bfd9..a2528e046 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -70,6 +70,7 @@ public final class PointerTracker implements PointerTrackerQueue.Element { public void startKeyRepeatTimerOf(PointerTracker tracker, int repeatCount, int delay); public void startLongPressTimerOf(PointerTracker tracker, int delay); public void cancelLongPressTimerOf(PointerTracker tracker); + public void cancelLongPressShiftKeyTimers(); public void cancelKeyTimersOf(PointerTracker tracker); public void startDoubleTapShiftKeyTimer(); public void cancelDoubleTapShiftKeyTimer(); @@ -90,6 +91,8 @@ public final class PointerTracker implements PointerTrackerQueue.Element { @Override public void cancelLongPressTimerOf(PointerTracker tracker) {} @Override + public void cancelLongPressShiftKeyTimers() {} + @Override public void cancelKeyTimersOf(PointerTracker tracker) {} @Override public void startDoubleTapShiftKeyTimer() {} @@ -1338,6 +1341,9 @@ public final class PointerTracker implements PointerTrackerQueue.Element { } private void startLongPressTimer(final Key key) { + // Note that we need to cancel all active long press shift key timers if any whenever we + // start a new long press timer for both non-shift and shift keys. + sTimerProxy.cancelLongPressShiftKeyTimers(); if (sInGesture) return; if (key == null) return; if (!key.isLongPressEnabled()) return; @@ -1349,6 +1355,7 @@ public final class PointerTracker implements PointerTrackerQueue.Element { if (mIsInDraggingFinger && key.getMoreKeys() == null) return; final int delay = getLongPressTimeout(key.getCode()); + if (delay <= 0) return; sTimerProxy.startLongPressTimerOf(this, delay); } diff --git a/java/src/com/android/inputmethod/keyboard/internal/TimerHandler.java b/java/src/com/android/inputmethod/keyboard/internal/TimerHandler.java index 88d0878d1..3298a3f24 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/TimerHandler.java +++ b/java/src/com/android/inputmethod/keyboard/internal/TimerHandler.java @@ -38,8 +38,9 @@ public final class TimerHandler extends LeakGuardHandlerWrapper<Callbacks> imple private static final int MSG_TYPING_STATE_EXPIRED = 0; private static final int MSG_REPEAT_KEY = 1; private static final int MSG_LONGPRESS_KEY = 2; - private static final int MSG_DOUBLE_TAP_SHIFT_KEY = 3; - private static final int MSG_UPDATE_BATCH_INPUT = 4; + private static final int MSG_LONGPRESS_SHIFT_KEY = 3; + private static final int MSG_DOUBLE_TAP_SHIFT_KEY = 4; + private static final int MSG_UPDATE_BATCH_INPUT = 5; private final int mIgnoreAltCodeKeyTimeout; private final int mGestureRecognitionUpdateTime; @@ -66,6 +67,7 @@ public final class TimerHandler extends LeakGuardHandlerWrapper<Callbacks> imple tracker.onKeyRepeat(msg.arg1 /* code */, msg.arg2 /* repeatCount */); break; case MSG_LONGPRESS_KEY: + case MSG_LONGPRESS_SHIFT_KEY: cancelLongPressTimers(); callbacks.onLongPress(tracker); break; @@ -102,19 +104,31 @@ public final class TimerHandler extends LeakGuardHandlerWrapper<Callbacks> imple @Override public void startLongPressTimerOf(final PointerTracker tracker, final int delay) { - if (delay <= 0) { + final Key key = tracker.getKey(); + if (key == null) { return; } - sendMessageDelayed(obtainMessage(MSG_LONGPRESS_KEY, tracker), delay); + // Use a separate message id for long pressing shift key, because long press shift key + // timers should be canceled when other key is pressed. + final int messageId = (key.getCode() == Constants.CODE_SHIFT) + ? MSG_LONGPRESS_SHIFT_KEY : MSG_LONGPRESS_KEY; + sendMessageDelayed(obtainMessage(messageId, tracker), delay); } @Override public void cancelLongPressTimerOf(final PointerTracker tracker) { removeMessages(MSG_LONGPRESS_KEY, tracker); + removeMessages(MSG_LONGPRESS_SHIFT_KEY, tracker); + } + + @Override + public void cancelLongPressShiftKeyTimers() { + removeMessages(MSG_LONGPRESS_SHIFT_KEY); } private void cancelLongPressTimers() { removeMessages(MSG_LONGPRESS_KEY); + removeMessages(MSG_LONGPRESS_SHIFT_KEY); } @Override diff --git a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java index d7c523f3c..af54805f7 100644 --- a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java +++ b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java @@ -188,7 +188,6 @@ public final class FormatSpec { // us to change the format during development while having testing devices remove // older files with each upgrade, while still having a readable versioning scheme. public static final int VERSION2 = 2; - public static final int VERSION3 = 3; public static final int VERSION4 = 400; static final int MINIMUM_SUPPORTED_VERSION = VERSION2; static final int MAXIMUM_SUPPORTED_VERSION = VERSION4; diff --git a/java/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java b/java/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java index 665544228..e5430423d 100644 --- a/java/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java +++ b/java/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java @@ -68,7 +68,7 @@ public class Ver2DictEncoder implements DictEncoder { @Override public void writeDictionary(final FusionDictionary dict, final FormatOptions formatOptions) throws IOException, UnsupportedFormatException { - if (formatOptions.mVersion > FormatSpec.VERSION3) { + if (formatOptions.mVersion > FormatSpec.VERSION2) { throw new UnsupportedFormatException( "The given format options has wrong version number : " + formatOptions.mVersion); diff --git a/java/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java b/java/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java index a746f9945..8eaee4d9f 100644 --- a/java/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java +++ b/java/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java @@ -56,7 +56,8 @@ public class Ver4DictEncoder implements DictEncoder { } if (!BinaryDictionary.createEmptyDictFile(mDictPlacedDir.getAbsolutePath(), FormatSpec.VERSION4, dict.mOptions.mAttributes)) { - throw new IOException("Cannot create dictionary file"); + throw new IOException("Cannot create dictionary file : " + + mDictPlacedDir.getAbsolutePath()); } final BinaryDictionary binaryDict = new BinaryDictionary(mDictPlacedDir.getAbsolutePath(), 0l, mDictPlacedDir.length(), true /* useFullEditDistance */, |