Loading core/java/android/service/autofill/Dataset.java +2 −1 Original line number Diff line number Diff line Loading @@ -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() { } Loading core/java/android/service/autofill/LuhnChecksumValidator.java +15 −3 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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); } final String number = builder.toString(); boolean valid = isLuhnChecksumValid(number); if (sDebug) Log.d(TAG, "isValid(" + number.length() + " chars): " + valid); return valid; } return isLuhnChecksumValid(number.toString()); @Override public String toString() { if (!sDebug) return super.toString(); return "LuhnChecksumValidator: [ids=" + Arrays.toString(mIds) + "]"; } ///////////////////////////////////// Loading core/java/android/service/autofill/OptionalValidators.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading @@ -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; } Loading core/java/android/service/autofill/RequiredValidators.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading @@ -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; Loading services/autofill/java/com/android/server/autofill/Session.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
core/java/android/service/autofill/Dataset.java +2 −1 Original line number Diff line number Diff line Loading @@ -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() { } Loading
core/java/android/service/autofill/LuhnChecksumValidator.java +15 −3 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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); } final String number = builder.toString(); boolean valid = isLuhnChecksumValid(number); if (sDebug) Log.d(TAG, "isValid(" + number.length() + " chars): " + valid); return valid; } return isLuhnChecksumValid(number.toString()); @Override public String toString() { if (!sDebug) return super.toString(); return "LuhnChecksumValidator: [ids=" + Arrays.toString(mIds) + "]"; } ///////////////////////////////////// Loading
core/java/android/service/autofill/OptionalValidators.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading @@ -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; } Loading
core/java/android/service/autofill/RequiredValidators.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading @@ -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; Loading
services/autofill/java/com/android/server/autofill/Session.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading