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

Commit 48079ba3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes Id15887ff,I78262baa into rvc-dev

* changes:
  AF: Clear the existing response for the partition on a new request.
  AF: Fix bug where Session#setViewStatesLocked doesn't clear response.
parents ab0a32e6 7b5982b6
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -657,13 +657,21 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
    }

    /**
     * Reads a new structure and then request a new fill response from the fill service.
     * Clears the existing response for the partition, reads a new structure, and then requests a
     * new fill response from the fill service.
     *
     * <p> Also asks the IME to make an inline suggestions request if it's enabled.
     */
    @GuardedBy("mLock")
    private void requestNewFillResponseLocked(@NonNull ViewState viewState, int newState,
            int flags) {
        final FillResponse existingResponse = viewState.getResponse();
        if (existingResponse != null) {
            setViewStatesLocked(
                    existingResponse,
                    ViewState.STATE_INITIAL,
                    /* clearResponse= */ true);
        }
        mExpiredResponse = false;
        if (mForAugmentedAutofillOnly || mRemoteFillService == null) {
            if (sVerbose) {
@@ -3226,7 +3234,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
    }

    /**
     * Sets the state of all views in the given dataset and response.
     * Sets the state and response of all views in the given dataset.
     */
    @GuardedBy("mLock")
    private void setViewStatesLocked(@Nullable FillResponse response, @NonNull Dataset dataset,
@@ -3241,10 +3249,10 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
            if (datasetId != null) {
                viewState.setDatasetId(datasetId);
            }
            if (response != null) {
                viewState.setResponse(response);
            } else if (clearResponse) {
            if (clearResponse) {
                viewState.setResponse(null);
            } else if (response != null) {
                viewState.setResponse(response);
            }
        }
    }