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

Commit 87e5c629 authored by Adam He's avatar Adam He
Browse files

Always let standard autofill try on new partitions even if session was

marked as augmented only.

* Currently if a session was marked as augmented only, we will never
allow standard autofill a chance again. Sometimes activities contain
views with IMPORTANT_FOR_AUTOFILL_NO which marks the session as
augmenteed only, but other fields can still be filled by standard
autofill.

Fixes: 187555283
Test: atest android.autofillservice.cts.augmented.AugmentedLoginActivityTest
Change-Id: I1c685a1159db4fc8b3d285b7c74d767555c9bf10
parent fe788b0b
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -2648,6 +2648,10 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
                Slog.d(TAG, "Starting partition or augmented request for view id " + id + ": "
                        + viewState.getStateAsString());
            }
            // Fix to always let standard autofill start.
            // Sometimes activity contain IMPORTANT_FOR_AUTOFILL_NO fields which marks session as
            // augmentedOnly, but other fields are still fillable by standard autofill.
            mSessionFlags.mAugmentedAutofillOnly = false;
            requestNewFillResponseLocked(viewState, ViewState.STATE_STARTED_PARTITION, flags);
            return true;
        }
@@ -2847,12 +2851,18 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
                            if (sDebug) Slog.d(TAG, "trigger augmented autofill.");
                            triggerAugmentedAutofillLocked(flags);
                        } else {
                            if (sDebug) Slog.d(TAG, "skip augmented autofill for same view.");
                            if (sDebug) {
                                Slog.d(TAG, "skip augmented autofill for same view: "
                                        + "same view entered");
                            }
                        }
                        return;
                    } else if (mSessionFlags.mAugmentedAutofillOnly && isSameViewEntered) {
                        // Regular autofill is disabled.
                        if (sDebug) Slog.d(TAG, "skip augmented autofill for same view.");
                        if (sDebug) {
                            Slog.d(TAG, "skip augmented autofill for same view: "
                                    + "standard autofill disabled.");
                        }
                        return;
                    }
                }