diff --git a/core/api/current.txt b/core/api/current.txt index e695cf61022f7..27a45aca405b7 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -38080,6 +38080,7 @@ package android.service.autofill { } public final class Field { + method @Nullable public java.util.regex.Pattern getFilter(); method @Nullable public android.service.autofill.Presentations getPresentations(); method @Nullable public android.view.autofill.AutofillValue getValue(); } diff --git a/core/java/android/service/autofill/Dataset.java b/core/java/android/service/autofill/Dataset.java index cfb690916eccc..b701e07e22e6a 100644 --- a/core/java/android/service/autofill/Dataset.java +++ b/core/java/android/service/autofill/Dataset.java @@ -905,7 +905,7 @@ public final class Dataset implements Parcelable { if (field == null) { setLifeTheUniverseAndEverything(id, null, null, null, null, null, null); } else { - final DatasetFieldFilter filter = field.getFilter(); + final DatasetFieldFilter filter = field.getDatasetFieldFilter(); final Presentations presentations = field.getPresentations(); if (presentations == null) { setLifeTheUniverseAndEverything(id, field.getValue(), null, null, null, diff --git a/core/java/android/service/autofill/Field.java b/core/java/android/service/autofill/Field.java index b7c0d82f41f5f..8c905a6faa0d8 100644 --- a/core/java/android/service/autofill/Field.java +++ b/core/java/android/service/autofill/Field.java @@ -18,7 +18,6 @@ package android.service.autofill; import android.annotation.NonNull; import android.annotation.Nullable; -import android.annotation.SuppressLint; import android.view.autofill.AutofillId; import android.view.autofill.AutofillValue; @@ -86,10 +85,20 @@ public final class Field { * @see Dataset.DatasetFieldFilter * @hide */ - public @Nullable Dataset.DatasetFieldFilter getFilter() { + public @Nullable Dataset.DatasetFieldFilter getDatasetFieldFilter() { return mFilter; } + /** + * Regex used to determine if the dataset should be shown in the autofill UI; + * when {@code null}, it disables filtering on that dataset (this is the recommended + * approach when {@code value} is not {@code null} and field contains sensitive data + * such as passwords). + */ + public @Nullable Pattern getFilter() { + return mFilter == null ? null : mFilter.pattern; + } + /** * The presentations used to visualize this field in Autofill UI. */ @@ -127,7 +136,6 @@ public final class Field { * approach when {@code value} is not {@code null} and field contains sensitive data * such as passwords). */ - @SuppressLint("MissingGetterMatchingBuilder") public @NonNull Builder setFilter(@Nullable Pattern value) { checkNotUsed(); mFilter = new Dataset.DatasetFieldFilter(value);