diff options
-rw-r--r-- | core/java/android/service/autofill/AutofillService.java | 3 | ||||
-rw-r--r-- | services/autofill/java/com/android/server/autofill/Session.java | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/core/java/android/service/autofill/AutofillService.java b/core/java/android/service/autofill/AutofillService.java index 0f7cea21c052..60537a4ca3ec 100644 --- a/core/java/android/service/autofill/AutofillService.java +++ b/core/java/android/service/autofill/AutofillService.java @@ -527,6 +527,9 @@ import android.view.autofill.AutofillValue; * <pre> <autofill-service xmlns:android="http://schemas.android.com/apk/res/android"> * <compatibility-package android:name="foo.bar.baz" android:maxLongVersionCode="1000000000"/> * </autofill-service></pre> + * + * <p>When using compatibility mode, the {@link SaveInfo.Builder#setFlags(int) SaveInfo flags} + * automatically include {@link SaveInfo#FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE}. */ public abstract class AutofillService extends Service { private static final String TAG = "AutofillService"; diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java index 1304d204109b..9d626b2b9b4e 100644 --- a/services/autofill/java/com/android/server/autofill/Session.java +++ b/services/autofill/java/com/android/server/autofill/Session.java @@ -2077,8 +2077,11 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState if (saveTriggerId != null) { writeLog(MetricsEvent.AUTOFILL_EXPLICIT_SAVE_TRIGGER_DEFINITION); } - saveOnAllViewsInvisible = - (saveInfo.getFlags() & SaveInfo.FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE) != 0; + int flags = saveInfo.getFlags(); + if (mCompatMode) { + flags |= SaveInfo.FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE; + } + saveOnAllViewsInvisible = (flags & SaveInfo.FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE) != 0; // We only need to track views if we want to save once they become invisible. if (saveOnAllViewsInvisible) { |