Merge "Fix a bug where autofill resends inline suggestions in the wrong app" into rvc-dev am: 3ce785b6e5
Change-Id: I82f1682dd4a5d97c5127e68f4ac125f144caaa52
This commit is contained in:
@@ -126,6 +126,22 @@ final class AutofillInlineSessionController {
|
|||||||
return hideInlineSuggestionsUiLocked(autofillId);
|
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
|
* Updates the inline fill UI with the filter text. It'll send updated inline suggestions to
|
||||||
* the IME.
|
* the IME.
|
||||||
|
|||||||
@@ -190,6 +190,16 @@ final class AutofillInlineSuggestionsRequestSession {
|
|||||||
new InlineSuggestionsRequestCallbackImpl(this));
|
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.
|
* Optionally sends inline response to the IME, depending on the current state.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2581,6 +2581,9 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
|||||||
if (sVerbose) Slog.v(TAG, "Exiting view " + id);
|
if (sVerbose) Slog.v(TAG, "Exiting view " + id);
|
||||||
mUi.hideFillUi(this);
|
mUi.hideFillUi(this);
|
||||||
hideAugmentedAutofillLocked(viewState);
|
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;
|
mCurrentViewId = null;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user