diff options
author | 2015-03-19 18:54:27 -0700 | |
---|---|---|
committer | 2015-03-20 09:03:48 -0700 | |
commit | 755b3d882f9d74ceaec7b59fe618dff3ad54f304 (patch) | |
tree | 9ea05d7ea436aae02b38fc77f5ab750e93ed874b | |
parent | 6e86632311a24af90ad35c98224ae25f226c1954 (diff) | |
download | latinime-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
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(); |