Merge "Stop to show fill dialog if IME is showing" into udc-dev am: 89d3076a62

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22648585

Change-Id: If4505fbe663992a33d26b05c0fee1be58d03d688
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TYM Tsai
2023-05-11 07:04:53 +00:00
committed by Automerger Merge Worker
4 changed files with 23 additions and 1 deletions

View File

@@ -1773,7 +1773,7 @@ public final class AutofillManager {
mForAugmentedAutofillOnly = false;
}
if ((flags & FLAG_SUPPORTS_FILL_DIALOG) != 0 && view != null) {
if ((flags & FLAG_SUPPORTS_FILL_DIALOG) != 0) {
flags |= FLAG_RESET_FILL_DIALOG_STATE;
}

View File

@@ -206,4 +206,11 @@ final class AutofillInlineSessionController {
}
return false;
}
boolean isImeShowing() {
if (mSession != null) {
return mSession.isImeShowing();
}
return false;
}
}

View File

@@ -106,6 +106,8 @@ final class AutofillInlineSuggestionsRequestSession {
@GuardedBy("mLock")
private boolean mImeSessionInvalidated = false;
private boolean mImeShowing = false;
AutofillInlineSuggestionsRequestSession(
@NonNull InputMethodManagerInternal inputMethodManagerInternal, int userId,
@NonNull ComponentName componentName, @NonNull Handler handler, @NonNull Object lock,
@@ -320,6 +322,7 @@ final class AutofillInlineSuggestionsRequestSession {
if (mDestroyed) {
return;
}
mImeShowing = imeInputViewStarted;
if (mImeCurrentFieldId != null) {
boolean imeInputStartedChanged = (mImeInputStarted != imeInputStarted);
boolean imeInputViewStartedChanged = (mImeInputViewStarted != imeInputViewStarted);
@@ -364,6 +367,12 @@ final class AutofillInlineSuggestionsRequestSession {
}
}
boolean isImeShowing() {
synchronized (mLock) {
return !mDestroyed && mImeShowing;
}
}
/**
* Internal implementation of {@link IInlineSuggestionsRequestCallback}.
*/

View File

@@ -4365,6 +4365,12 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
return false;
}
if (mInlineSessionController.isImeShowing()) {
// IME is showing, fallback to normal suggestions UI
// Note: only work when inline suggestions supported
return false;
}
synchronized (mLock) {
if (mLastFillDialogTriggerIds == null
|| !ArrayUtils.contains(mLastFillDialogTriggerIds, filledId)) {