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

Commit 812d92a0 authored by Feng Cao's avatar Feng Cao Committed by Automerger Merge Worker
Browse files

Merge "Fix a bug where autofill resends inline suggestions in the wrong app"...

Merge "Fix a bug where autofill resends inline suggestions in the wrong app" into rvc-dev am: 3ce785b6

Change-Id: I0580a7fdf67930981e9f298c067ca4037335d921
parents fd4bf1c8 3ce785b6
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -126,6 +126,22 @@ final class AutofillInlineSessionController {
        return hideInlineSuggestionsUiLocked(autofillId);
    }

    /**
     * Clear the locally cached inline fill UI, but don't clear the suggestion in the IME.
     *
     * <p>This is called to invalid the locally cached inline suggestions so we don't resend them
     * to the IME, while assuming that the IME will clean up suggestion on their own when the input
     * connection is finished. We don't send an empty response to IME so that it doesn't cause UI
     * flicker on the IME side if it arrives before the input view is finished on the IME.
     */
    @GuardedBy("mLock")
    void resetInlineFillUiLocked() {
        mInlineFillUi = null;
        if (mSession != null) {
            mSession.resetInlineFillUiLocked();
        }
    }

    /**
     * Updates the inline fill UI with the filter text. It'll send updated inline suggestions to
     * the IME.
+10 −0
Original line number Diff line number Diff line
@@ -190,6 +190,16 @@ final class AutofillInlineSuggestionsRequestSession {
                new InlineSuggestionsRequestCallbackImpl(this));
    }

    /**
     * Clear the locally cached inline fill UI, but don't clear the suggestion in IME.
     *
     * See also {@link AutofillInlineSessionController#resetInlineFillUiLocked()}
     */
    @GuardedBy("mLock")
    void resetInlineFillUiLocked() {
        mInlineFillUi = null;
    }

    /**
     * Optionally sends inline response to the IME, depending on the current state.
     */
+3 −0
Original line number Diff line number Diff line
@@ -2581,6 +2581,9 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
                    if (sVerbose) Slog.v(TAG, "Exiting view " + id);
                    mUi.hideFillUi(this);
                    hideAugmentedAutofillLocked(viewState);
                    // We don't send an empty response to IME so that it doesn't cause UI flicker
                    // on the IME side if it arrives before the input view is finished on the IME.
                    mInlineSessionController.resetInlineFillUiLocked();
                    mCurrentViewId = null;
                }
                break;