diff options
10 files changed, 31 insertions, 23 deletions
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml index a13021bd0..1581e5fa1 100644 --- a/java/res/xml/prefs.xml +++ b/java/res/xml/prefs.xml @@ -93,12 +93,14 @@ <!-- TODO: Move these two options to the advanced settings. --> <CheckBoxPreference android:key="pref_gesture_floating_preview_text" + android:dependency="gesture_input" android:title="@string/gesture_floating_preview_text" android:summary="@string/gesture_floating_preview_text_summary" android:persistent="true" android:defaultValue="true" /> <CheckBoxPreference android:key="pref_gesture_preview_trail" + android:dependency="gesture_input" android:title="@string/gesture_preview_trail" android:persistent="true" android:defaultValue="true" /> diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java index a356eb119..a82fb79bd 100644 --- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java @@ -33,7 +33,7 @@ import com.android.inputmethod.latin.R; public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel { private final int[] mCoordinates = CoordinateUtils.newInstance(); - private final KeyDetector mKeyDetector; + protected final KeyDetector mKeyDetector; private Controller mController; protected KeyboardActionListener mListener; private int mOriginX; diff --git a/java/src/com/android/inputmethod/latin/SettingsFragment.java b/java/src/com/android/inputmethod/latin/SettingsFragment.java index 5405a5eb7..4c729ece8 100644 --- a/java/src/com/android/inputmethod/latin/SettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/SettingsFragment.java @@ -232,10 +232,6 @@ public final class SettingsFragment extends InputMethodSettingsFragment } else if (key.equals(Settings.PREF_SHOW_LANGUAGE_SWITCH_KEY)) { setPreferenceEnabled(Settings.PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST, Settings.readShowsLanguageSwitchKey(prefs)); - } else if (key.equals(Settings.PREF_GESTURE_INPUT)) { - final boolean gestureInputEnabled = Settings.readGestureInputEnabled(prefs, res); - setPreferenceEnabled(Settings.PREF_GESTURE_PREVIEW_TRAIL, gestureInputEnabled); - setPreferenceEnabled(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, gestureInputEnabled); } else if (key.equals(Settings.PREF_SHOW_SETUP_WIZARD_ICON)) { LauncherIconVisibilityManager.updateSetupWizardIconVisibility(getActivity()); } diff --git a/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java b/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java index 58ec1e83f..467f6a053 100644 --- a/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java +++ b/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java @@ -1467,8 +1467,8 @@ public final class BinaryDictInputOutput { if (null == last) continue; builder.append(new String(last.mCharacters, 0, last.mCharacters.length)); buffer.position(last.mChildrenAddress + headerSize); - groupOffset = last.mChildrenAddress + 1; - i = buffer.readUnsignedByte(); + i = readCharGroupCount(buffer); + groupOffset = last.mChildrenAddress + getGroupCountSize(i); last = null; continue; } @@ -1477,8 +1477,8 @@ public final class BinaryDictInputOutput { if (0 == i && hasChildrenAddress(last.mChildrenAddress)) { builder.append(new String(last.mCharacters, 0, last.mCharacters.length)); buffer.position(last.mChildrenAddress + headerSize); - groupOffset = last.mChildrenAddress + 1; - i = buffer.readUnsignedByte(); + i = readCharGroupCount(buffer); + groupOffset = last.mChildrenAddress + getGroupCountSize(i); last = null; continue; } diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java index 94715cd84..6509f394b 100644 --- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java +++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java @@ -46,6 +46,12 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView { updateKeyDrawParams(keyHeight); } + public void adjustVerticalCorrectionForModalMode() { + // Set vertical correction to zero (Reset more keys keyboard sliding allowance + // {@link R#dimen.more_keys_keyboard_slide_allowance}). + mKeyDetector.setKeyboard(getKeyboard(), -getPaddingLeft(), -getPaddingTop()); + } + @Override public void onCodeInput(final int code, final int x, final int y) { final int index = code - MoreSuggestions.SUGGESTION_CODE_BASE; diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java index 4ef36fa46..2a21ec2f5 100644 --- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java @@ -755,8 +755,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick @Override public boolean dispatchTouchEvent(final MotionEvent me) { - if (!mMoreSuggestionsView.isShowingInParent() - || mMoreSuggestionsMode == MORE_SUGGESTIONS_IN_MODAL_MODE) { + if (!mMoreSuggestionsView.isShowingInParent()) { mLastX = (int)me.getX(); mLastY = (int)me.getY(); if (mMoreSuggestionsSlidingDetector.onTouchEvent(me)) { @@ -784,6 +783,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP) { // Decided to be in the modal input mode mMoreSuggestionsMode = MORE_SUGGESTIONS_IN_MODAL_MODE; + mMoreSuggestionsView.adjustVerticalCorrectionForModalMode(); } return true; } diff --git a/native/jni/src/suggest/core/session/dic_traverse_session.h b/native/jni/src/suggest/core/session/dic_traverse_session.h index 525d198cd..a7c042ada 100644 --- a/native/jni/src/suggest/core/session/dic_traverse_session.h +++ b/native/jni/src/suggest/core/session/dic_traverse_session.h @@ -134,7 +134,7 @@ class DicTraverseSession { if (!mDicNodesCache.hasCachedDicNodesForContinuousSuggestion()) { return false; } - ASSERT(mMaxPointerCount < MAX_POINTER_COUNT_G); + ASSERT(mMaxPointerCount <= MAX_POINTER_COUNT_G); for (int i = 0; i < mMaxPointerCount; ++i) { const ProximityInfoState *const pInfoState = getProximityInfoState(i); // If a proximity info state is not continuous suggestion possible, diff --git a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java index 8fef1de2a..6bb5adab5 100644 --- a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java +++ b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java @@ -43,10 +43,10 @@ public class MoreKeysKeyboardBuilderFixedOrderTests extends AndroidTestCase { super.setUp(); } - private static MoreKeysKeyboardParams createParams(int numKeys, int columnNum, - int coordXInParnet) { + private static MoreKeysKeyboardParams createParams(final int numKeys, final int columnNum, + final int coordXInParent) { final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams(); - params.setParameters(numKeys, columnNum, WIDTH, HEIGHT, coordXInParnet, KEYBOARD_WIDTH, + params.setParameters(numKeys, columnNum, WIDTH, HEIGHT, coordXInParent, KEYBOARD_WIDTH, /* isFixedOrderColumn */true, /* dividerWidth */0); return params; } @@ -55,7 +55,7 @@ public class MoreKeysKeyboardBuilderFixedOrderTests extends AndroidTestCase { MoreKeysKeyboardParams params = null; try { final int fixColumns = KEYBOARD_WIDTH / WIDTH; - params = createParams(10, fixColumns + 1, HEIGHT); + params = createParams(fixColumns + 1, fixColumns + 1, HEIGHT); fail("Should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Too small keyboard to hold more keys keyboard. diff --git a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderTests.java b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderTests.java index ee4c72a85..99da4812a 100644 --- a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderTests.java +++ b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderTests.java @@ -43,10 +43,10 @@ public class MoreKeysKeyboardBuilderTests extends AndroidTestCase { super.setUp(); } - private static MoreKeysKeyboardParams createParams(int numKeys, int maxColumns, - int coordXInParnet) { + private static MoreKeysKeyboardParams createParams(final int numKeys, final int maxColumns, + final int coordXInParent) { final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams(); - params.setParameters(numKeys, maxColumns, WIDTH, HEIGHT, coordXInParnet, KEYBOARD_WIDTH, + params.setParameters(numKeys, maxColumns, WIDTH, HEIGHT, coordXInParent, KEYBOARD_WIDTH, /* isFixedOrderColumn */false, /* dividerWidth */0); return params; } @@ -55,7 +55,7 @@ public class MoreKeysKeyboardBuilderTests extends AndroidTestCase { MoreKeysKeyboardParams params = null; try { final int maxColumns = KEYBOARD_WIDTH / WIDTH; - params = createParams(10, maxColumns + 1, HEIGHT); + params = createParams(maxColumns + 1, maxColumns + 1, HEIGHT); fail("Should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Too small keyboard to hold more keys keyboard. diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOTests.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOTests.java index bd8729203..b704d08b3 100644 --- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOTests.java +++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOTests.java @@ -51,7 +51,7 @@ import java.util.Set; @LargeTest public class BinaryDictIOTests extends AndroidTestCase { private static final String TAG = BinaryDictIOTests.class.getSimpleName(); - private static final int MAX_UNIGRAMS = 1000; + private static final int MAX_UNIGRAMS = 100; private static final int UNIGRAM_FREQ = 10; private static final int BIGRAM_FREQ = 50; private static final int TOLERANCE_OF_BIGRAM_FREQ = 5; @@ -135,9 +135,13 @@ public class BinaryDictIOTests extends AndroidTestCase { while (count > 0) { final long r = Math.abs(random.nextInt()); if (r < 0) continue; - // Don't insert 0~20, but insert any other code point. + // Don't insert 0~0x20, but insert any other code point. // Code points are in the range 0~0x10FFFF. - builder.appendCodePoint((int)(20 + r % (0x10FFFF - 20))); + final int candidateCodePoint = (int)(0x20 + r % (Character.MAX_CODE_POINT - 0x20)); + // Code points between MIN_ and MAX_SURROGATE are not valid on their own. + if (candidateCodePoint >= Character.MIN_SURROGATE + && candidateCodePoint <= Character.MAX_SURROGATE) continue; + builder.appendCodePoint(candidateCodePoint); --count; } return builder.toString(); |