aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/latin')
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java15
-rw-r--r--java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java4
-rw-r--r--java/src/com/android/inputmethod/latin/utils/DistracterFilter.java9
3 files changed, 11 insertions, 17 deletions
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index cdee496a8..ac6972928 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -80,7 +80,7 @@ public final class WordComposer {
private boolean mIsFirstCharCapitalized;
public WordComposer() {
- mCombinerChain = new CombinerChain();
+ mCombinerChain = new CombinerChain("");
mEvents = CollectionUtils.newArrayList();
mAutoCorrection = null;
mIsResumed = false;
@@ -92,18 +92,17 @@ public final class WordComposer {
}
/**
- * Restart input with a new combining spec.
+ * Restart the combiners, possibly with a new spec.
* @param combiningSpec The spec string for combining. This is found in the extra value.
*/
- public void restart(final String combiningSpec) {
+ public void restartCombining(final String combiningSpec) {
final String nonNullCombiningSpec = null == combiningSpec ? "" : combiningSpec;
- if (nonNullCombiningSpec.equals(mCombiningSpec)) {
- mCombinerChain.reset();
- } else {
- mCombinerChain = new CombinerChain(CombinerChain.createCombiners(nonNullCombiningSpec));
+ if (!nonNullCombiningSpec.equals(mCombiningSpec)) {
+ mCombinerChain = new CombinerChain(
+ mCombinerChain.getComposingWordWithCombiningFeedback().toString(),
+ CombinerChain.createCombiners(nonNullCombiningSpec));
mCombiningSpec = nonNullCombiningSpec;
}
- reset();
}
/**
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 1156c7737..ea58abc14 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -127,7 +127,7 @@ public final class InputLogic {
public void startInput(final boolean restarting, final EditorInfo editorInfo,
final String combiningSpec) {
mEnteredText = null;
- mWordComposer.restart(combiningSpec);
+ mWordComposer.restartCombining(combiningSpec);
resetComposingState(true /* alsoResetLastComposedWord */);
mDeleteCount = 0;
mSpaceState = SpaceState.NONE;
@@ -150,7 +150,7 @@ public final class InputLogic {
* @param combiningSpec the spec string for the combining rules
*/
public void onSubtypeChanged(final String combiningSpec) {
- mWordComposer.restart(combiningSpec);
+ mWordComposer.restartCombining(combiningSpec);
}
/**
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
index 55cbf79b3..f0963f7b1 100644
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
+++ b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
@@ -90,19 +90,14 @@ public class DistracterFilter {
*/
public boolean isDistracterToWordsInDictionaries(final String prevWord,
final String testedWord) {
- if (mSuggest == null) {
+ if (mSuggest == null || mKeyboard == null) {
return false;
}
final WordComposer composer = new WordComposer();
final int[] codePoints = StringUtils.toCodePointArray(testedWord);
final int[] coordinates;
- if (null == mKeyboard) {
- coordinates = CoordinateUtils.newCoordinateArray(codePoints.length,
- Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE);
- } else {
- coordinates = mKeyboard.getCoordinates(codePoints);
- }
+ coordinates = mKeyboard.getCoordinates(codePoints);
composer.setComposingWord(codePoints, coordinates, prevWord);
final int trailingSingleQuotesCount = composer.trailingSingleQuotesCount();