aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/WordComposer.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-05-12 09:33:27 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-05-12 09:33:27 +0000
commitfac678e13df2c6073bdd7f9dc2fca1d4e16f8309 (patch)
treed66559a94ae8165f043082c1f598a25b3e238b1b /java/src/com/android/inputmethod/latin/WordComposer.java
parent4fb490ff90423b17181e5402d7f2056d508f3f0a (diff)
parentbe99616afa2243fe48dc406d0a3f442cb05453b4 (diff)
downloadlatinime-fac678e13df2c6073bdd7f9dc2fca1d4e16f8309.tar.gz
latinime-fac678e13df2c6073bdd7f9dc2fca1d4e16f8309.tar.xz
latinime-fac678e13df2c6073bdd7f9dc2fca1d4e16f8309.zip
Merge "Create the path for specifying combining rules in the subtype"
Diffstat (limited to 'java/src/com/android/inputmethod/latin/WordComposer.java')
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index d755195f2..cdee496a8 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -41,6 +41,7 @@ public final class WordComposer {
public static final int CAPS_MODE_AUTO_SHIFT_LOCKED = 0x7;
private CombinerChain mCombinerChain;
+ private String mCombiningSpec; // Memory so that we don't uselessly recreate the combiner chain
// The list of events that served to compose this string.
private final ArrayList<Event> mEvents;
@@ -91,6 +92,21 @@ public final class WordComposer {
}
/**
+ * Restart input with a new combining spec.
+ * @param combiningSpec The spec string for combining. This is found in the extra value.
+ */
+ public void restart(final String combiningSpec) {
+ final String nonNullCombiningSpec = null == combiningSpec ? "" : combiningSpec;
+ if (nonNullCombiningSpec.equals(mCombiningSpec)) {
+ mCombinerChain.reset();
+ } else {
+ mCombinerChain = new CombinerChain(CombinerChain.createCombiners(nonNullCombiningSpec));
+ mCombiningSpec = nonNullCombiningSpec;
+ }
+ reset();
+ }
+
+ /**
* Clear out the keys registered so far.
*/
public void reset() {