Merge "Fix the validation for showing inline suggestion in webview" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-03-25 06:46:17 +00:00
committed by Android (Google) Code Review
2 changed files with 11 additions and 3 deletions

View File

@@ -166,9 +166,14 @@ class InlineSuggestionSession {
}
return;
}
// The IME doesn't have information about the virtual view id for the child views in the
// web view, so we are only comparing the parent view id here. This means that for cases
// where there are two input fields in the web view, they will have the same view id
// (although different virtual child id), and we will not be able to distinguish them.
final AutofillId imeClientFieldId = mClientAutofillIdSupplier.get();
if (!mComponentName.getPackageName().equals(mClientPackageNameSupplier.get())
|| !fieldId.equalsIgnoreSession(mClientAutofillIdSupplier.get())) {
|| imeClientFieldId == null
|| fieldId.getViewId() != imeClientFieldId.getViewId()) {
if (DEBUG) {
Log.d(TAG,
"handleOnInlineSuggestionsResponse() called on the wrong package/field "

View File

@@ -199,7 +199,10 @@ final class InlineSuggestionSession {
return false;
}
if (!mImeInputViewStarted || !autofillId.equalsIgnoreSession(mImeFieldId)) {
// TODO(b/151846600): IME doesn't have access to the virtual id of the webview, so we
// only compare the view id for now.
if (!mImeInputViewStarted || mImeFieldId == null
|| autofillId.getViewId() != mImeFieldId.getViewId()) {
if (sDebug) {
Log.d(TAG,
"onInlineSuggestionsResponseLocked not sent because input view is not "