summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/service/autofill/Dataset.java3
-rw-r--r--core/java/android/service/autofill/LuhnChecksumValidator.java18
-rw-r--r--core/java/android/service/autofill/OptionalValidators.java4
-rw-r--r--core/java/android/service/autofill/RequiredValidators.java4
-rw-r--r--services/autofill/java/com/android/server/autofill/Session.java1
5 files changed, 26 insertions, 4 deletions
diff --git a/core/java/android/service/autofill/Dataset.java b/core/java/android/service/autofill/Dataset.java
index ef9598aab836..3d06d30c3dfc 100644
--- a/core/java/android/service/autofill/Dataset.java
+++ b/core/java/android/service/autofill/Dataset.java
@@ -201,7 +201,8 @@ public final class Dataset implements Parcelable {
* Creates a new builder for a dataset where each field will be visualized independently.
*
* <p>When using this constructor, fields must be set through
- * {@link #setValue(AutofillId, AutofillValue, RemoteViews)}.
+ * {@link #setValue(AutofillId, AutofillValue, RemoteViews)} or
+ * {@link #setValue(AutofillId, AutofillValue, Pattern, RemoteViews)}.
*/
public Builder() {
}
diff --git a/core/java/android/service/autofill/LuhnChecksumValidator.java b/core/java/android/service/autofill/LuhnChecksumValidator.java
index 0b5930dfe5b7..c56ae84b4ae3 100644
--- a/core/java/android/service/autofill/LuhnChecksumValidator.java
+++ b/core/java/android/service/autofill/LuhnChecksumValidator.java
@@ -27,6 +27,8 @@ import android.view.autofill.AutofillId;
import com.android.internal.util.Preconditions;
+import java.util.Arrays;
+
/**
* Validator that returns {@code true} if the number created by concatenating all given fields
* pass a Luhn algorithm checksum. All non-digits are ignored.
@@ -86,17 +88,27 @@ public final class LuhnChecksumValidator extends InternalValidator implements Va
public boolean isValid(@NonNull ValueFinder finder) {
if (mIds == null || mIds.length == 0) return false;
- final StringBuilder number = new StringBuilder();
+ final StringBuilder builder = new StringBuilder();
for (AutofillId id : mIds) {
final String partialNumber = finder.findByAutofillId(id);
if (partialNumber == null) {
if (sDebug) Log.d(TAG, "No partial number for id " + id);
return false;
}
- number.append(partialNumber);
+ builder.append(partialNumber);
}
- return isLuhnChecksumValid(number.toString());
+ final String number = builder.toString();
+ boolean valid = isLuhnChecksumValid(number);
+ if (sDebug) Log.d(TAG, "isValid(" + number.length() + " chars): " + valid);
+ return valid;
+ }
+
+ @Override
+ public String toString() {
+ if (!sDebug) return super.toString();
+
+ return "LuhnChecksumValidator: [ids=" + Arrays.toString(mIds) + "]";
}
/////////////////////////////////////
diff --git a/core/java/android/service/autofill/OptionalValidators.java b/core/java/android/service/autofill/OptionalValidators.java
index f7edd6e4e8e8..7aec59f6267d 100644
--- a/core/java/android/service/autofill/OptionalValidators.java
+++ b/core/java/android/service/autofill/OptionalValidators.java
@@ -21,6 +21,7 @@ import static android.view.autofill.Helper.sDebug;
import android.annotation.NonNull;
import android.os.Parcel;
import android.os.Parcelable;
+import android.util.Log;
import com.android.internal.util.Preconditions;
@@ -34,6 +35,8 @@ import com.android.internal.util.Preconditions;
*/
final class OptionalValidators extends InternalValidator {
+ private static final String TAG = "OptionalValidators";
+
@NonNull private final InternalValidator[] mValidators;
OptionalValidators(@NonNull InternalValidator[] validators) {
@@ -44,6 +47,7 @@ final class OptionalValidators extends InternalValidator {
public boolean isValid(@NonNull ValueFinder finder) {
for (InternalValidator validator : mValidators) {
final boolean valid = validator.isValid(finder);
+ if (sDebug) Log.d(TAG, "isValid(" + validator + "): " + valid);
if (valid) return true;
}
diff --git a/core/java/android/service/autofill/RequiredValidators.java b/core/java/android/service/autofill/RequiredValidators.java
index ac85c28404f8..9e1db2bca5df 100644
--- a/core/java/android/service/autofill/RequiredValidators.java
+++ b/core/java/android/service/autofill/RequiredValidators.java
@@ -21,6 +21,7 @@ import static android.view.autofill.Helper.sDebug;
import android.annotation.NonNull;
import android.os.Parcel;
import android.os.Parcelable;
+import android.util.Log;
import com.android.internal.util.Preconditions;
@@ -34,6 +35,8 @@ import com.android.internal.util.Preconditions;
*/
final class RequiredValidators extends InternalValidator {
+ private static final String TAG = "RequiredValidators";
+
@NonNull private final InternalValidator[] mValidators;
RequiredValidators(@NonNull InternalValidator[] validators) {
@@ -44,6 +47,7 @@ final class RequiredValidators extends InternalValidator {
public boolean isValid(@NonNull ValueFinder finder) {
for (InternalValidator validator : mValidators) {
final boolean valid = validator.isValid(finder);
+ if (sDebug) Log.d(TAG, "isValid(" + validator + "): " + valid);
if (!valid) return false;
}
return true;
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index 3c12d670c296..109fe0b3b9ec 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -970,6 +970,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
boolean isValid;
try {
isValid = validator.isValid(valueFinder);
+ if (sDebug) Slog.d(TAG, validator + " returned " + isValid);
log.setType(isValid
? MetricsEvent.TYPE_SUCCESS
: MetricsEvent.TYPE_DISMISS);