diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java index f544517a79e31..317ce4cb5feea 100644 --- a/services/autofill/java/com/android/server/autofill/Session.java +++ b/services/autofill/java/com/android/server/autofill/Session.java @@ -1158,6 +1158,18 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState } catch (RemoteException e) { Slog.e(TAG, "Error requesting to hide fill UI", e); } + try { + final InlineSuggestionSession.ImeResponse imeResponse = + mInlineSuggestionSession.waitAndGetImeResponse(); + if (imeResponse == null) { + Log.w(TAG, "Session input method callback is not set yet"); + return; + } + imeResponse.getCallback().onInlineSuggestionsResponse( + new InlineSuggestionsResponse(Collections.EMPTY_LIST)); + } catch (RemoteException e) { + Slog.e(TAG, "RemoteException hiding inline suggestions"); + } } } diff --git a/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java index a8886fc06c5af..17cdf618d5660 100644 --- a/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java +++ b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java @@ -82,12 +82,17 @@ public final class InlineSuggestionFactory { if (sDebug) Slog.d(TAG, "createInlineSuggestionsResponse called"); final BiConsumer onClickFactory; if (response.getAuthentication() != null) { - onClickFactory = (dataset, datasetIndex) -> client.authenticate(response.getRequestId(), - datasetIndex, response.getAuthentication(), response.getClientState(), - /* authenticateInline= */ true); + onClickFactory = (dataset, datasetIndex) -> { + client.requestHideFillUi(autofillId); + client.authenticate(response.getRequestId(), + datasetIndex, response.getAuthentication(), response.getClientState(), + /* authenticateInline= */ true); + }; } else { - onClickFactory = (dataset, datasetIndex) -> - client.fill(response.getRequestId(), datasetIndex, dataset); + onClickFactory = (dataset, datasetIndex) -> { + client.requestHideFillUi(autofillId); + client.fill(response.getRequestId(), datasetIndex, dataset); + }; } final List datasetList = response.getDatasets();