public class android.app.admin.PasswordMetrics implements android.os.Parcelable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.app.admin.PasswordMetrics
super_class: java.lang.Object
{
public static final int MAX_ALLOWED_SEQUENCE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
public int quality;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public int length;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public int letters;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public int upperCase;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public int lowerCase;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public int numeric;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public int symbols;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public int nonLetter;
descriptor: I
flags: (0x0001) ACC_PUBLIC
public static final android.os.Parcelable$Creator<android.app.admin.PasswordMetrics> CREATOR;
descriptor: Landroid/os/Parcelable$Creator;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Landroid/os/Parcelable$Creator<Landroid/app/admin/PasswordMetrics;>;
private static final int CHAR_LOWER_CASE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int CHAR_UPPER_CASE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int CHAR_DIGIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int CHAR_SYMBOL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new android.app.admin.PasswordMetrics$1
dup
invokespecial android.app.admin.PasswordMetrics$1.<init>:()V
1: putstatic android.app.admin.PasswordMetrics.CREATOR:Landroid/os/Parcelable$Creator;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.quality:I
2: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.length:I
3: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.letters:I
4: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.upperCase:I
5: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.lowerCase:I
6: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.numeric:I
7: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.symbols:I
8: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.nonLetter:I
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/app/admin/PasswordMetrics;
public void <init>(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.quality:I
2: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.length:I
3: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.letters:I
4: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.upperCase:I
5: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.lowerCase:I
6: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.numeric:I
7: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.symbols:I
8: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.nonLetter:I
9: aload 0
iload 1
putfield android.app.admin.PasswordMetrics.quality:I
10: aload 0
iload 2
putfield android.app.admin.PasswordMetrics.length:I
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/app/admin/PasswordMetrics;
0 12 1 quality I
0 12 2 length I
MethodParameters:
Name Flags
quality
length
public void <init>(int, int, int, int, int, int, int, int);
descriptor: (IIIIIIII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=9, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
iload 1
iload 2
invokespecial android.app.admin.PasswordMetrics.<init>:(II)V
1: aload 0
iload 3
putfield android.app.admin.PasswordMetrics.letters:I
2: aload 0
iload 4
putfield android.app.admin.PasswordMetrics.upperCase:I
3: aload 0
iload 5
putfield android.app.admin.PasswordMetrics.lowerCase:I
4: aload 0
iload 6
putfield android.app.admin.PasswordMetrics.numeric:I
5: aload 0
iload 7
putfield android.app.admin.PasswordMetrics.symbols:I
6: aload 0
iload 8
putfield android.app.admin.PasswordMetrics.nonLetter:I
7: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/app/admin/PasswordMetrics;
0 8 1 quality I
0 8 2 length I
0 8 3 letters I
0 8 4 upperCase I
0 8 5 lowerCase I
0 8 6 numeric I
0 8 7 symbols I
0 8 8 nonLetter I
MethodParameters:
Name Flags
quality
length
letters
upperCase
lowerCase
numeric
symbols
nonLetter
private void <init>(android.os.Parcel);
descriptor: (Landroid/os/Parcel;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.quality:I
2: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.length:I
3: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.letters:I
4: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.upperCase:I
5: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.lowerCase:I
6: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.numeric:I
7: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.symbols:I
8: aload 0
iconst_0
putfield android.app.admin.PasswordMetrics.nonLetter:I
9: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
putfield android.app.admin.PasswordMetrics.quality:I
10: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
putfield android.app.admin.PasswordMetrics.length:I
11: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
putfield android.app.admin.PasswordMetrics.letters:I
12: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
putfield android.app.admin.PasswordMetrics.upperCase:I
13: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
putfield android.app.admin.PasswordMetrics.lowerCase:I
14: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
putfield android.app.admin.PasswordMetrics.numeric:I
15: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
putfield android.app.admin.PasswordMetrics.symbols:I
16: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
putfield android.app.admin.PasswordMetrics.nonLetter:I
17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Landroid/app/admin/PasswordMetrics;
0 18 1 in Landroid/os/Parcel;
MethodParameters:
Name Flags
in
public boolean isDefault();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.admin.PasswordMetrics.quality:I
ifne 4
1: aload 0
getfield android.app.admin.PasswordMetrics.length:I
ifne 4
aload 0
getfield android.app.admin.PasswordMetrics.letters:I
ifne 4
aload 0
getfield android.app.admin.PasswordMetrics.upperCase:I
ifne 4
aload 0
getfield android.app.admin.PasswordMetrics.lowerCase:I
ifne 4
2: aload 0
getfield android.app.admin.PasswordMetrics.numeric:I
ifne 4
aload 0
getfield android.app.admin.PasswordMetrics.symbols:I
ifne 4
aload 0
getfield android.app.admin.PasswordMetrics.nonLetter:I
ifne 4
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/app/admin/PasswordMetrics;
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/app/admin/PasswordMetrics;
public void writeToParcel(android.os.Parcel, int);
descriptor: (Landroid/os/Parcel;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield android.app.admin.PasswordMetrics.quality:I
invokevirtual android.os.Parcel.writeInt:(I)V
1: aload 1
aload 0
getfield android.app.admin.PasswordMetrics.length:I
invokevirtual android.os.Parcel.writeInt:(I)V
2: aload 1
aload 0
getfield android.app.admin.PasswordMetrics.letters:I
invokevirtual android.os.Parcel.writeInt:(I)V
3: aload 1
aload 0
getfield android.app.admin.PasswordMetrics.upperCase:I
invokevirtual android.os.Parcel.writeInt:(I)V
4: aload 1
aload 0
getfield android.app.admin.PasswordMetrics.lowerCase:I
invokevirtual android.os.Parcel.writeInt:(I)V
5: aload 1
aload 0
getfield android.app.admin.PasswordMetrics.numeric:I
invokevirtual android.os.Parcel.writeInt:(I)V
6: aload 1
aload 0
getfield android.app.admin.PasswordMetrics.symbols:I
invokevirtual android.os.Parcel.writeInt:(I)V
7: aload 1
aload 0
getfield android.app.admin.PasswordMetrics.nonLetter:I
invokevirtual android.os.Parcel.writeInt:(I)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/app/admin/PasswordMetrics;
0 9 1 dest Landroid/os/Parcel;
0 9 2 flags I
MethodParameters:
Name Flags
dest
flags
public static android.app.admin.PasswordMetrics computeForPassword(java.lang.String);
descriptor: (Ljava/lang/String;)Landroid/app/admin/PasswordMetrics;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=10, locals=11, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: iconst_0
istore 5
start local 5 5: iconst_0
istore 6
start local 6 6: aload 0
invokevirtual java.lang.String.length:()I
istore 7
start local 7 7: iconst_0
istore 8
start local 8 8: goto 22
9: StackMap locals: java.lang.String int int int int int int int int
StackMap stack:
aload 0
iload 8
invokevirtual java.lang.String.charAt:(I)C
invokestatic android.app.admin.PasswordMetrics.categoryChar:(C)I
tableswitch { // 0 - 3
0: 10
1: 13
2: 16
3: 19
default: 21
}
10: StackMap locals:
StackMap stack:
iinc 1 1
11: iinc 3 1
12: goto 21
13: StackMap locals:
StackMap stack:
iinc 1 1
14: iinc 2 1
15: goto 21
16: StackMap locals:
StackMap stack:
iinc 4 1
17: iinc 6 1
18: goto 21
19: StackMap locals:
StackMap stack:
iinc 5 1
20: iinc 6 1
21: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
22: iload 8
iload 7
if_icmplt 9
end local 8 23: iload 4
ifle 24
iconst_1
goto 25
StackMap locals:
StackMap stack:
24: iconst_0
StackMap locals:
StackMap stack: int
25: istore 8
start local 8 26: iload 1
iload 5
iadd
ifle 27
iconst_1
goto 28
StackMap locals: int
StackMap stack:
27: iconst_0
StackMap locals:
StackMap stack: int
28: istore 9
start local 9 29: iload 9
ifeq 32
iload 8
ifeq 32
30: ldc 327680
istore 10
start local 10 31: goto 42
end local 10 StackMap locals: int
StackMap stack:
32: iload 9
ifeq 35
33: ldc 262144
istore 10
start local 10 34: goto 42
end local 10 StackMap locals:
StackMap stack:
35: iload 8
ifeq 41
36: aload 0
invokestatic android.app.admin.PasswordMetrics.maxLengthSequence:(Ljava/lang/String;)I
iconst_3
if_icmple 38
37: ldc 131072
goto 39
38: StackMap locals:
StackMap stack:
ldc 196608
39: StackMap locals:
StackMap stack: int
istore 10
start local 10 40: goto 42
end local 10 41: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 42: StackMap locals: int
StackMap stack:
new android.app.admin.PasswordMetrics
dup
43: iload 10
iload 7
iload 1
iload 2
iload 3
iload 4
iload 5
iload 6
44: invokespecial android.app.admin.PasswordMetrics.<init>:(IIIIIIII)V
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 password Ljava/lang/String;
1 45 1 letters I
2 45 2 upperCase I
3 45 3 lowerCase I
4 45 4 numeric I
5 45 5 symbols I
6 45 6 nonLetter I
7 45 7 length I
8 23 8 i I
26 45 8 hasNumeric Z
29 45 9 hasNonNumeric Z
31 32 10 quality I
34 35 10 quality I
40 41 10 quality I
42 45 10 quality I
MethodParameters:
Name Flags
password
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof android.app.admin.PasswordMetrics
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast android.app.admin.PasswordMetrics
astore 2
start local 2 3: aload 0
getfield android.app.admin.PasswordMetrics.quality:I
aload 2
getfield android.app.admin.PasswordMetrics.quality:I
if_icmpne 12
4: aload 0
getfield android.app.admin.PasswordMetrics.length:I
aload 2
getfield android.app.admin.PasswordMetrics.length:I
if_icmpne 12
5: aload 0
getfield android.app.admin.PasswordMetrics.letters:I
aload 2
getfield android.app.admin.PasswordMetrics.letters:I
if_icmpne 12
6: aload 0
getfield android.app.admin.PasswordMetrics.upperCase:I
aload 2
getfield android.app.admin.PasswordMetrics.upperCase:I
if_icmpne 12
7: aload 0
getfield android.app.admin.PasswordMetrics.lowerCase:I
aload 2
getfield android.app.admin.PasswordMetrics.lowerCase:I
if_icmpne 12
8: aload 0
getfield android.app.admin.PasswordMetrics.numeric:I
aload 2
getfield android.app.admin.PasswordMetrics.numeric:I
if_icmpne 12
9: aload 0
getfield android.app.admin.PasswordMetrics.symbols:I
aload 2
getfield android.app.admin.PasswordMetrics.symbols:I
if_icmpne 12
10: aload 0
getfield android.app.admin.PasswordMetrics.nonLetter:I
aload 2
getfield android.app.admin.PasswordMetrics.nonLetter:I
if_icmpne 12
11: iconst_1
ireturn
StackMap locals: android.app.admin.PasswordMetrics
StackMap stack:
12: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/app/admin/PasswordMetrics;
0 13 1 other Ljava/lang/Object;
3 13 2 o Landroid/app/admin/PasswordMetrics;
MethodParameters:
Name Flags
other
public static int maxLengthSequence(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=11, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.length:()I
ifne 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 1
start local 1 2: iload 1
invokestatic android.app.admin.PasswordMetrics.categoryChar:(C)I
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: iconst_0
istore 4
start local 4 5: iconst_0
istore 5
start local 5 6: iconst_0
istore 6
start local 6 7: iconst_1
istore 7
start local 7 8: goto 25
9: StackMap locals: java.lang.String int int int int int int int
StackMap stack:
aload 0
iload 7
invokevirtual java.lang.String.charAt:(I)C
istore 8
start local 8 10: iload 8
invokestatic android.app.admin.PasswordMetrics.categoryChar:(C)I
istore 9
start local 9 11: iload 8
iload 1
isub
istore 10
start local 10 12: iload 9
iload 2
if_icmpne 13
iload 10
invokestatic java.lang.Math.abs:(I)I
iload 2
invokestatic android.app.admin.PasswordMetrics.maxDiffCategory:(I)I
if_icmple 18
13: StackMap locals: int int int
StackMap stack:
iload 5
iload 7
iload 6
isub
invokestatic java.lang.Math.max:(II)I
istore 5
14: iload 7
istore 6
15: iconst_0
istore 4
16: iload 9
istore 2
17: goto 23
18: StackMap locals:
StackMap stack:
iload 4
ifeq 21
iload 10
iload 3
if_icmpeq 21
19: iload 5
iload 7
iload 6
isub
invokestatic java.lang.Math.max:(II)I
istore 5
20: iload 7
iconst_1
isub
istore 6
21: StackMap locals:
StackMap stack:
iload 10
istore 3
22: iconst_1
istore 4
23: StackMap locals:
StackMap stack:
iload 8
istore 1
end local 10 end local 9 end local 8 24: iinc 7 1
StackMap locals:
StackMap stack:
25: iload 7
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 9
end local 7 26: iload 5
aload 0
invokevirtual java.lang.String.length:()I
iload 6
isub
invokestatic java.lang.Math.max:(II)I
istore 5
27: iload 5
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 string Ljava/lang/String;
2 28 1 previousChar C
3 28 2 category I
4 28 3 diff I
5 28 4 hasDiff Z
6 28 5 maxLength I
7 28 6 startSequence I
8 26 7 current I
10 24 8 currentChar C
11 24 9 categoryCurrent I
12 24 10 currentDiff I
MethodParameters:
Name Flags
string
private static int categoryChar(char);
descriptor: (C)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: bipush 97
iload 0
if_icmpgt 1
iload 0
bipush 122
if_icmpgt 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
bipush 65
iload 0
if_icmpgt 2
iload 0
bipush 90
if_icmpgt 2
iconst_1
ireturn
2: StackMap locals:
StackMap stack:
bipush 48
iload 0
if_icmpgt 3
iload 0
bipush 57
if_icmpgt 3
iconst_2
ireturn
3: StackMap locals:
StackMap stack:
iconst_3
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 c C
MethodParameters:
Name Flags
c
private static int maxDiffCategory(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
tableswitch { // 0 - 2
0: 1
1: 1
2: 2
default: 3
}
1: StackMap locals:
StackMap stack:
iconst_1
ireturn
2: StackMap locals:
StackMap stack:
bipush 10
ireturn
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 category I
MethodParameters:
Name Flags
category
}
SourceFile: "PasswordMetrics.java"
NestMembers:
android.app.admin.PasswordMetrics$1 android.app.admin.PasswordMetrics$CharacterCatagory
InnerClasses:
android.app.admin.PasswordMetrics$1
private abstract CharacterCatagory = android.app.admin.PasswordMetrics$CharacterCatagory of android.app.admin.PasswordMetrics
public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable