public final class android.service.autofill.LuhnChecksumValidator extends android.service.autofill.InternalValidator implements android.service.autofill.Validator, android.os.Parcelable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.service.autofill.LuhnChecksumValidator
super_class: android.service.autofill.InternalValidator
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "LuhnChecksumValidator"
private final android.view.autofill.AutofillId[] mIds;
descriptor: [Landroid/view/autofill/AutofillId;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public static final android.os.Parcelable$Creator<android.service.autofill.LuhnChecksumValidator> CREATOR;
descriptor: Landroid/os/Parcelable$Creator;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Landroid/os/Parcelable$Creator<Landroid/service/autofill/LuhnChecksumValidator;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new android.service.autofill.LuhnChecksumValidator$1
dup
invokespecial android.service.autofill.LuhnChecksumValidator$1.<init>:()V
1: putstatic android.service.autofill.LuhnChecksumValidator.CREATOR:Landroid/os/Parcelable$Creator;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(android.view.autofill.AutofillId[]);
descriptor: ([Landroid/view/autofill/AutofillId;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial android.service.autofill.InternalValidator.<init>:()V
1: aload 0
aload 1
ldc "ids"
invokestatic com.android.internal.util.Preconditions.checkArrayElementsNotNull:([Ljava/lang/Object;Ljava/lang/String;)[Ljava/lang/Object;
checkcast android.view.autofill.AutofillId[]
putfield android.service.autofill.LuhnChecksumValidator.mIds:[Landroid/view/autofill/AutofillId;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/service/autofill/LuhnChecksumValidator;
0 3 1 ids [Landroid/view/autofill/AutofillId;
MethodParameters:
Name Flags
ids
private static boolean isLuhnChecksumValid(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
istore 3
start local 3 3: goto 18
4: StackMap locals: int int int
StackMap stack:
aload 0
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 48
isub
istore 4
start local 4 5: iload 4
iflt 17
iload 4
bipush 9
if_icmple 7
6: goto 17
7: StackMap locals: int
StackMap stack:
iload 2
ifeq 12
8: iload 4
iconst_2
imul
istore 5
start local 5 9: iload 5
bipush 9
if_icmple 13
10: iinc 5 -9
11: goto 13
end local 5 12: StackMap locals:
StackMap stack:
iload 4
istore 5
start local 5 13: StackMap locals: int
StackMap stack:
iload 1
iload 5
iadd
istore 1
14: iload 2
ifeq 15
iconst_0
goto 16
StackMap locals:
StackMap stack:
15: iconst_1
StackMap locals:
StackMap stack: int
16: istore 2
end local 5 end local 4 17: StackMap locals:
StackMap stack:
iinc 3 -1
StackMap locals:
StackMap stack:
18: iload 3
ifge 4
end local 3 19: iload 1
bipush 10
irem
ifne 20
iconst_1
ireturn
StackMap locals:
StackMap stack:
20: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 number Ljava/lang/String;
1 21 1 sum I
2 21 2 isDoubled Z
3 19 3 i I
5 17 4 digit I
9 12 5 addend I
13 17 5 addend I
MethodParameters:
Name Flags
number
public boolean isValid(android.service.autofill.ValueFinder);
descriptor: (Landroid/service/autofill/ValueFinder;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield android.service.autofill.LuhnChecksumValidator.mIds:[Landroid/view/autofill/AutofillId;
ifnull 1
aload 0
getfield android.service.autofill.LuhnChecksumValidator.mIds:[Landroid/view/autofill/AutofillId;
arraylength
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 3: aload 0
getfield android.service.autofill.LuhnChecksumValidator.mIds:[Landroid/view/autofill/AutofillId;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 11
StackMap locals: android.service.autofill.LuhnChecksumValidator android.service.autofill.ValueFinder java.lang.StringBuilder top int int android.view.autofill.AutofillId[]
StackMap stack:
4: aload 6
iload 4
aaload
astore 3
start local 3 5: aload 1
aload 3
invokeinterface android.service.autofill.ValueFinder.findByAutofillId:(Landroid/view/autofill/AutofillId;)Ljava/lang/String;
astore 7
start local 7 6: aload 7
ifnonnull 9
7: getstatic android.view.autofill.Helper.sDebug:Z
ifeq 8
ldc "LuhnChecksumValidator"
new java.lang.StringBuilder
dup
ldc "No partial number for id "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
8: StackMap locals: android.service.autofill.LuhnChecksumValidator android.service.autofill.ValueFinder java.lang.StringBuilder android.view.autofill.AutofillId int int android.view.autofill.AutofillId[] java.lang.String
StackMap stack:
iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 2
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 7 end local 3 10: iinc 4 1
StackMap locals: android.service.autofill.LuhnChecksumValidator android.service.autofill.ValueFinder java.lang.StringBuilder top int int android.view.autofill.AutofillId[]
StackMap stack:
11: iload 4
iload 5
if_icmplt 4
12: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 13: aload 3
invokestatic android.service.autofill.LuhnChecksumValidator.isLuhnChecksumValid:(Ljava/lang/String;)Z
istore 4
start local 4 14: getstatic android.view.autofill.Helper.sDebug:Z
ifeq 15
ldc "LuhnChecksumValidator"
new java.lang.StringBuilder
dup
ldc "isValid("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " chars): "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
15: StackMap locals: android.service.autofill.LuhnChecksumValidator android.service.autofill.ValueFinder java.lang.StringBuilder java.lang.String int
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Landroid/service/autofill/LuhnChecksumValidator;
0 16 1 finder Landroid/service/autofill/ValueFinder;
3 16 2 builder Ljava/lang/StringBuilder;
5 10 3 id Landroid/view/autofill/AutofillId;
6 10 7 partialNumber Ljava/lang/String;
13 16 3 number Ljava/lang/String;
14 16 4 valid Z
MethodParameters:
Name Flags
finder
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic android.view.autofill.Helper.sDebug:Z
ifne 1
aload 0
invokespecial java.lang.Object.toString:()Ljava/lang/String;
areturn
1: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "LuhnChecksumValidator: [ids="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.service.autofill.LuhnChecksumValidator.mIds:[Landroid/view/autofill/AutofillId;
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/service/autofill/LuhnChecksumValidator;
public int describeContents();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/service/autofill/LuhnChecksumValidator;
public void writeToParcel(android.os.Parcel, int);
descriptor: (Landroid/os/Parcel;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield android.service.autofill.LuhnChecksumValidator.mIds:[Landroid/view/autofill/AutofillId;
iload 2
invokevirtual android.os.Parcel.writeParcelableArray:([Landroid/os/Parcelable;I)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/service/autofill/LuhnChecksumValidator;
0 2 1 parcel Landroid/os/Parcel;
0 2 2 flags I
MethodParameters:
Name Flags
parcel
flags
}
SourceFile: "LuhnChecksumValidator.java"
NestMembers:
android.service.autofill.LuhnChecksumValidator$1
InnerClasses:
public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable
android.service.autofill.LuhnChecksumValidator$1