aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Zivkovic <zivkovic@google.com>2015-03-19 18:54:27 -0700
committerDan Zivkovic <zivkovic@google.com>2015-03-20 09:03:48 -0700
commit755b3d882f9d74ceaec7b59fe618dff3ad54f304 (patch)
tree9ea05d7ea436aae02b38fc77f5ab750e93ed874b
parent6e86632311a24af90ad35c98224ae25f226c1954 (diff)
downloadlatinime-755b3d882f9d74ceaec7b59fe618dff3ad54f304.tar.gz
latinime-755b3d882f9d74ceaec7b59fe618dff3ad54f304.tar.xz
latinime-755b3d882f9d74ceaec7b59fe618dff3ad54f304.zip
Notify the facilitator on IME start/finish.
Allows the facilitator to flush language models without a recurring task. Bug 19773937. Change-Id: I01a3c10da26f9df38fee05df33387eb082e2ff33
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitator.java18
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java9
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java3
3 files changed, 30 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index 5f981a009..6b49f9aa6 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -89,6 +89,24 @@ public interface DictionaryFacilitator {
void onUpdateMainDictionaryAvailability(boolean isMainDictionaryAvailable);
}
+ /**
+ * Called every time {@link LatinIME} starts on a new text field.
+ * Dot not affect {@link AndroidSpellCheckerService}.
+ *
+ * WARNING: The service methods that call start/finish are very spammy.
+ */
+ void onStartInput();
+
+ /**
+ * Called every time the {@link LatinIME} finishes with the current text field.
+ * May be followed by {@link #onStartInput} again in another text field,
+ * or it may be done for a while.
+ * Dot not affect {@link AndroidSpellCheckerService}.
+ *
+ * WARNING: The service methods that call start/finish are very spammy.
+ */
+ void onFinishInput();
+
boolean isActive();
Locale getLocale();
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
index a59253aad..e5d770aee 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
@@ -202,6 +202,15 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator {
public DictionaryFacilitatorImpl() {
}
+ @Override
+ public void onStartInput() {
+ }
+
+ @Override
+ public void onFinishInput() {
+ }
+
+ @Override
public boolean isActive() {
return mDictionaryGroup.mLocale != null;
}
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 71dc30b2a..790cd6910 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -792,6 +792,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
@SuppressWarnings("deprecation")
void onStartInputViewInternal(final EditorInfo editorInfo, final boolean restarting) {
super.onStartInputView(editorInfo, restarting);
+
+ mDictionaryFacilitator.onStartInput();
// Switch to the null consumer to handle cases leading to early exit below, for which we
// also wouldn't be consuming gesture data.
mGestureConsumer = GestureConsumer.NULL_GESTURE_CONSUMER;
@@ -970,6 +972,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
void onFinishInputInternal() {
super.onFinishInput();
+ mDictionaryFacilitator.onFinishInput();
final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
if (mainKeyboardView != null) {
mainKeyboardView.closing();