diff options
| author | 2020-04-04 04:32:10 +0000 | |
|---|---|---|
| committer | 2020-04-04 04:32:10 +0000 | |
| commit | 48079ba38c4035c316c3b10dc474f61e2c5af17f (patch) | |
| tree | 0d242ad610d7cb038d1d797c852430f2d151dab1 | |
| parent | ab0a32e6ba6155713fb46cc1d9eff9cd8fb7bc6d (diff) | |
| parent | 7b5982b6e7252fb0fb3e7d15754e33164b530896 (diff) | |
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.
| -rw-r--r-- | services/autofill/java/com/android/server/autofill/Session.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java index 55a92966eb29..12905696ff98 100644 --- a/services/autofill/java/com/android/server/autofill/Session.java +++ b/services/autofill/java/com/android/server/autofill/Session.java @@ -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); } } } |