Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 755b3d88 authored by Dan Zivkovic's avatar Dan Zivkovic
Browse files

Notify the facilitator on IME start/finish.

Allows the facilitator to flush language models without a recurring task.

Bug 19773937.

Change-Id: I01a3c10da26f9df38fee05df33387eb082e2ff33
parent 6e866323
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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();
+9 −0
Original line number Diff line number Diff line
@@ -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;
    }
+3 −0
Original line number Diff line number Diff line
@@ -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();