Merge "Merge "Send empty inline response to IME if augmented autofill returns no suggestion" into rvc-dev am: b9aeb6ca22 am: b205b806f1" into rvc-d1-dev-plus-aosp am: b6d6e164dd
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11784240 Change-Id: Iebdfeb07fb4040aec1777c7537b6a7b8720c42b2
This commit is contained in:
@@ -62,9 +62,10 @@ public final class FillCallback {
|
||||
|
||||
List<Dataset> inlineSuggestions = response.getInlineSuggestions();
|
||||
Bundle clientState = response.getClientState();
|
||||
// We need to report result regardless of whether inline suggestions are returned or not.
|
||||
mProxy.reportResult(inlineSuggestions, clientState);
|
||||
if (inlineSuggestions != null && !inlineSuggestions.isEmpty()) {
|
||||
mProxy.logEvent(AutofillProxy.REPORT_EVENT_INLINE_RESPONSE);
|
||||
mProxy.reportResult(inlineSuggestions, clientState);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ final class AutofillInlineSuggestionsRequestSession {
|
||||
@Nullable
|
||||
private InlineFillUi mInlineFillUi;
|
||||
@GuardedBy("mLock")
|
||||
private boolean mPreviousResponseIsNotEmpty;
|
||||
private Boolean mPreviousResponseIsNotEmpty = null;
|
||||
|
||||
@GuardedBy("mLock")
|
||||
private boolean mDestroyed = false;
|
||||
@@ -213,7 +213,7 @@ final class AutofillInlineSuggestionsRequestSession {
|
||||
// if IME is visible, and response is not null, send the response
|
||||
InlineSuggestionsResponse response = mInlineFillUi.getInlineSuggestionsResponse();
|
||||
boolean isEmptyResponse = response.getInlineSuggestions().isEmpty();
|
||||
if (isEmptyResponse && !mPreviousResponseIsNotEmpty) {
|
||||
if (isEmptyResponse && Boolean.FALSE.equals(mPreviousResponseIsNotEmpty)) {
|
||||
// No-op if both the previous response and current response are empty.
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -245,6 +245,11 @@ final class RemoteAugmentedAutofillService
|
||||
if (inlineSuggestionsData == null || inlineSuggestionsData.isEmpty()
|
||||
|| inlineSuggestionsCallback == null || request == null
|
||||
|| remoteRenderService == null) {
|
||||
// If it was an inline request and the response doesn't have any inline suggestions,
|
||||
// we will send an empty response to IME.
|
||||
if (inlineSuggestionsCallback != null && request != null) {
|
||||
inlineSuggestionsCallback.apply(InlineFillUi.emptyUi(focusedId));
|
||||
}
|
||||
return;
|
||||
}
|
||||
mCallbacks.setLastResponse(sessionId);
|
||||
|
||||
Reference in New Issue
Block a user