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:36:50 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-05-12 09:36:50 +0000
commit495599989fdeb96823bd44b0a769d2efd1e660b1 (patch)
treed66559a94ae8165f043082c1f598a25b3e238b1b /java/src/com/android/inputmethod/latin/WordComposer.java
parent116be29a89a2a88ca586f7344ebbc8af22a15326 (diff)
parentfac678e13df2c6073bdd7f9dc2fca1d4e16f8309 (diff)
downloadlatinime-495599989fdeb96823bd44b0a769d2efd1e660b1.tar.gz
latinime-495599989fdeb96823bd44b0a769d2efd1e660b1.tar.xz
latinime-495599989fdeb96823bd44b0a769d2efd1e660b1.zip
am fac678e1: Merge "Create the path for specifying combining rules in the subtype"
* commit 'fac678e13df2c6073bdd7f9dc2fca1d4e16f8309': 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() {