Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a873cd12 authored by Feng Cao's avatar Feng Cao
Browse files

Fix the validation for showing inline suggestion in webview

Test: m -j & manual varification
Test: CtsInputMethodTestCases
Test: CtsAutoFillServiceTestCases
Bug: 151846600

Change-Id: I350b199455e77f769915e7d457dbcab31c20134d
parent 84d1c3c6
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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 "
+4 −1
Original line number Diff line number Diff line
@@ -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 "