From 9b53f411f203aaf702046c41945c2c0fd92c9f78 Mon Sep 17 00:00:00 2001 From: TYM Tsai Date: Tue, 22 Feb 2022 00:16:56 +0800 Subject: [PATCH] Add getter for filter in Field Add getFilter method to retrieve filter set by setFilter. Bug: 217554272 Test: atest DatasetTest Change-Id: I70a5c2f332c656f453cb0992f89d76879bfa7412 --- core/api/current.txt | 1 + core/java/android/service/autofill/Dataset.java | 2 +- core/java/android/service/autofill/Field.java | 14 +++++++++++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index 56415ec14564f..9a024f7b5d889 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -38067,6 +38067,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);