public class android.app.admin.FreezePeriod
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.app.admin.FreezePeriod
super_class: java.lang.Object
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "FreezePeriod"
private static final int DUMMY_YEAR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2001
static final int DAYS_IN_YEAR;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 365
private final java.time.MonthDay mStart;
descriptor: Ljava/time/MonthDay;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.time.MonthDay mEnd;
descriptor: Ljava/time/MonthDay;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mStartDay;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mEndDay;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.time.MonthDay, java.time.MonthDay);
descriptor: (Ljava/time/MonthDay;Ljava/time/MonthDay;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, 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
aload 1
putfield android.app.admin.FreezePeriod.mStart:Ljava/time/MonthDay;
2: aload 0
aload 0
getfield android.app.admin.FreezePeriod.mStart:Ljava/time/MonthDay;
sipush 2001
invokevirtual java.time.MonthDay.atYear:(I)Ljava/time/LocalDate;
invokevirtual java.time.LocalDate.getDayOfYear:()I
putfield android.app.admin.FreezePeriod.mStartDay:I
3: aload 0
aload 2
putfield android.app.admin.FreezePeriod.mEnd:Ljava/time/MonthDay;
4: aload 0
aload 0
getfield android.app.admin.FreezePeriod.mEnd:Ljava/time/MonthDay;
sipush 2001
invokevirtual java.time.MonthDay.atYear:(I)Ljava/time/LocalDate;
invokevirtual java.time.LocalDate.getDayOfYear:()I
putfield android.app.admin.FreezePeriod.mEndDay:I
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/app/admin/FreezePeriod;
0 6 1 start Ljava/time/MonthDay;
0 6 2 end Ljava/time/MonthDay;
MethodParameters:
Name Flags
start
end
public java.time.MonthDay getStart();
descriptor: ()Ljava/time/MonthDay;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.admin.FreezePeriod.mStart:Ljava/time/MonthDay;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/admin/FreezePeriod;
public java.time.MonthDay getEnd();
descriptor: ()Ljava/time/MonthDay;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.admin.FreezePeriod.mEnd:Ljava/time/MonthDay;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/admin/FreezePeriod;
private void <init>(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
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
iload 1
putfield android.app.admin.FreezePeriod.mStartDay:I
2: aload 0
iload 1
invokestatic android.app.admin.FreezePeriod.dayOfYearToMonthDay:(I)Ljava/time/MonthDay;
putfield android.app.admin.FreezePeriod.mStart:Ljava/time/MonthDay;
3: aload 0
iload 2
putfield android.app.admin.FreezePeriod.mEndDay:I
4: aload 0
iload 2
invokestatic android.app.admin.FreezePeriod.dayOfYearToMonthDay:(I)Ljava/time/MonthDay;
putfield android.app.admin.FreezePeriod.mEnd:Ljava/time/MonthDay;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/app/admin/FreezePeriod;
0 6 1 startDay I
0 6 2 endDay I
MethodParameters:
Name Flags
startDay
endDay
int getLength();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.app.admin.FreezePeriod.getEffectiveEndDay:()I
aload 0
getfield android.app.admin.FreezePeriod.mStartDay:I
isub
iconst_1
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/admin/FreezePeriod;
boolean isWrapped();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.admin.FreezePeriod.mEndDay:I
aload 0
getfield android.app.admin.FreezePeriod.mStartDay:I
if_icmpge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/admin/FreezePeriod;
int getEffectiveEndDay();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.app.admin.FreezePeriod.isWrapped:()Z
ifne 2
1: aload 0
getfield android.app.admin.FreezePeriod.mEndDay:I
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield android.app.admin.FreezePeriod.mEndDay:I
sipush 365
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/app/admin/FreezePeriod;
boolean contains(java.time.LocalDate);
descriptor: (Ljava/time/LocalDate;)Z
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic android.app.admin.FreezePeriod.dayOfYearDisregardLeapYear:(Ljava/time/LocalDate;)I
istore 2
start local 2 1: aload 0
invokevirtual android.app.admin.FreezePeriod.isWrapped:()Z
ifne 4
2: aload 0
getfield android.app.admin.FreezePeriod.mStartDay:I
iload 2
if_icmpgt 3
iload 2
aload 0
getfield android.app.admin.FreezePeriod.mEndDay:I
if_icmpgt 3
iconst_1
ireturn
StackMap locals: int
StackMap stack:
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield android.app.admin.FreezePeriod.mStartDay:I
iload 2
if_icmple 5
iload 2
aload 0
getfield android.app.admin.FreezePeriod.mEndDay:I
if_icmple 5
iconst_0
ireturn
StackMap locals:
StackMap stack:
5: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/app/admin/FreezePeriod;
0 6 1 localDate Ljava/time/LocalDate;
1 6 2 daysOfYear I
MethodParameters:
Name Flags
localDate
boolean after(java.time.LocalDate);
descriptor: (Ljava/time/LocalDate;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.admin.FreezePeriod.mStartDay:I
aload 1
invokestatic android.app.admin.FreezePeriod.dayOfYearDisregardLeapYear:(Ljava/time/LocalDate;)I
if_icmple 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/admin/FreezePeriod;
0 2 1 localDate Ljava/time/LocalDate;
MethodParameters:
Name Flags
localDate
android.util.Pair<java.time.LocalDate, java.time.LocalDate> toCurrentOrFutureRealDates(java.time.LocalDate);
descriptor: (Ljava/time/LocalDate;)Landroid/util/Pair;
flags: (0x0000)
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokestatic android.app.admin.FreezePeriod.dayOfYearDisregardLeapYear:(Ljava/time/LocalDate;)I
istore 2
start local 2 1: aload 0
aload 1
invokevirtual android.app.admin.FreezePeriod.contains:(Ljava/time/LocalDate;)Z
ifeq 11
2: aload 0
getfield android.app.admin.FreezePeriod.mStartDay:I
iload 2
if_icmpgt 8
3: iconst_0
istore 3
start local 3 4: aload 0
invokevirtual android.app.admin.FreezePeriod.isWrapped:()Z
ifeq 5
iconst_1
goto 6
StackMap locals: int int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 4
start local 4 7: goto 19
end local 4 end local 3 8: StackMap locals:
StackMap stack:
iconst_m1
istore 3
start local 3 9: iconst_0
istore 4
start local 4 10: goto 19
end local 4 end local 3 11: StackMap locals:
StackMap stack:
aload 0
getfield android.app.admin.FreezePeriod.mStartDay:I
iload 2
if_icmple 17
12: iconst_0
istore 3
start local 3 13: aload 0
invokevirtual android.app.admin.FreezePeriod.isWrapped:()Z
ifeq 14
iconst_1
goto 15
StackMap locals: int
StackMap stack:
14: iconst_0
StackMap locals:
StackMap stack: int
15: istore 4
start local 4 16: goto 19
end local 4 end local 3 17: StackMap locals:
StackMap stack:
iconst_1
istore 3
start local 3 18: iconst_1
istore 4
start local 4 19: StackMap locals: int int
StackMap stack:
sipush 2001
aload 0
getfield android.app.admin.FreezePeriod.mStartDay:I
invokestatic java.time.LocalDate.ofYearDay:(II)Ljava/time/LocalDate;
20: aload 1
invokevirtual java.time.LocalDate.getYear:()I
iload 3
iadd
21: invokevirtual java.time.LocalDate.withYear:(I)Ljava/time/LocalDate;
astore 5
start local 5 22: sipush 2001
aload 0
getfield android.app.admin.FreezePeriod.mEndDay:I
invokestatic java.time.LocalDate.ofYearDay:(II)Ljava/time/LocalDate;
23: aload 1
invokevirtual java.time.LocalDate.getYear:()I
iload 4
iadd
24: invokevirtual java.time.LocalDate.withYear:(I)Ljava/time/LocalDate;
astore 6
start local 6 25: new android.util.Pair
dup
aload 5
aload 6
invokespecial android.util.Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
areturn
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 26 0 this Landroid/app/admin/FreezePeriod;
0 26 1 now Ljava/time/LocalDate;
1 26 2 nowDays I
4 8 3 startYearAdjustment I
9 11 3 startYearAdjustment I
13 17 3 startYearAdjustment I
18 26 3 startYearAdjustment I
7 8 4 endYearAdjustment I
10 11 4 endYearAdjustment I
16 17 4 endYearAdjustment I
19 26 4 endYearAdjustment I
22 26 5 startDate Ljava/time/LocalDate;
25 26 6 endDate Ljava/time/LocalDate;
Signature: (Ljava/time/LocalDate;)Landroid/util/Pair<Ljava/time/LocalDate;Ljava/time/LocalDate;>;
MethodParameters:
Name Flags
now
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: ldc "MMM dd"
invokestatic java.time.format.DateTimeFormatter.ofPattern:(Ljava/lang/String;)Ljava/time/format/DateTimeFormatter;
astore 1
start local 1 1: new java.lang.StringBuilder
dup
sipush 2001
aload 0
getfield android.app.admin.FreezePeriod.mStartDay:I
invokestatic java.time.LocalDate.ofYearDay:(II)Ljava/time/LocalDate;
aload 1
invokevirtual java.time.LocalDate.format:(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " - "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: sipush 2001
aload 0
getfield android.app.admin.FreezePeriod.mEndDay:I
invokestatic java.time.LocalDate.ofYearDay:(II)Ljava/time/LocalDate;
aload 1
invokevirtual java.time.LocalDate.format:(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/app/admin/FreezePeriod;
1 4 1 formatter Ljava/time/format/DateTimeFormatter;
private static java.time.MonthDay dayOfYearToMonthDay(int);
descriptor: (I)Ljava/time/MonthDay;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: sipush 2001
iload 0
invokestatic java.time.LocalDate.ofYearDay:(II)Ljava/time/LocalDate;
astore 1
start local 1 1: aload 1
invokevirtual java.time.LocalDate.getMonth:()Ljava/time/Month;
aload 1
invokevirtual java.time.LocalDate.getDayOfMonth:()I
invokestatic java.time.MonthDay.of:(Ljava/time/Month;I)Ljava/time/MonthDay;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 dayOfYear I
1 2 1 date Ljava/time/LocalDate;
MethodParameters:
Name Flags
dayOfYear
private static int dayOfYearDisregardLeapYear(java.time.LocalDate);
descriptor: (Ljava/time/LocalDate;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
sipush 2001
invokevirtual java.time.LocalDate.withYear:(I)Ljava/time/LocalDate;
invokevirtual java.time.LocalDate.getDayOfYear:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 date Ljava/time/LocalDate;
MethodParameters:
Name Flags
date
public static int distanceWithoutLeapYear(java.time.LocalDate, java.time.LocalDate);
descriptor: (Ljava/time/LocalDate;Ljava/time/LocalDate;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic android.app.admin.FreezePeriod.dayOfYearDisregardLeapYear:(Ljava/time/LocalDate;)I
aload 1
invokestatic android.app.admin.FreezePeriod.dayOfYearDisregardLeapYear:(Ljava/time/LocalDate;)I
isub
1: sipush 365
aload 0
invokevirtual java.time.LocalDate.getYear:()I
aload 1
invokevirtual java.time.LocalDate.getYear:()I
isub
imul
2: iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 first Ljava/time/LocalDate;
0 3 1 second Ljava/time/LocalDate;
MethodParameters:
Name Flags
first
second
static java.util.List<android.app.admin.FreezePeriod> canonicalizePeriods(java.util.List<android.app.admin.FreezePeriod>);
descriptor: (Ljava/util/List;)Ljava/util/List;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: sipush 365
newarray 4
astore 1
start local 1 1: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: java.util.List boolean[] top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
astore 2
start local 2 3: aload 2
getfield android.app.admin.FreezePeriod.mStartDay:I
istore 4
start local 4 4: goto 7
5: StackMap locals: java.util.List boolean[] android.app.admin.FreezePeriod java.util.Iterator int
StackMap stack:
aload 1
iload 4
iconst_1
isub
sipush 365
irem
iconst_1
bastore
6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
aload 2
invokevirtual android.app.admin.FreezePeriod.getEffectiveEndDay:()I
if_icmple 5
end local 4 end local 2 8: StackMap locals: java.util.List boolean[] top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
9: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 10: iconst_0
istore 3
start local 3 11: goto 20
12: StackMap locals: java.util.List boolean[] java.util.List int
StackMap stack:
aload 1
iload 3
baload
ifne 15
13: iinc 3 1
14: goto 20
15: StackMap locals:
StackMap stack:
iload 3
iconst_1
iadd
istore 4
start local 4 16: goto 18
StackMap locals: int
StackMap stack:
17: iinc 3 1
StackMap locals:
StackMap stack:
18: iload 3
sipush 365
if_icmpge 19
aload 1
iload 3
baload
ifne 17
19: StackMap locals:
StackMap stack:
aload 2
new android.app.admin.FreezePeriod
dup
iload 4
iload 3
invokespecial android.app.admin.FreezePeriod.<init>:(II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 20: StackMap locals:
StackMap stack:
iload 3
sipush 365
if_icmplt 12
21: aload 2
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 4
start local 4 22: iload 4
ifle 29
aload 2
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
getfield android.app.admin.FreezePeriod.mEndDay:I
sipush 365
if_icmpne 29
23: aload 2
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
getfield android.app.admin.FreezePeriod.mStartDay:I
iconst_1
if_icmpne 29
24: new android.app.admin.FreezePeriod
dup
aload 2
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
getfield android.app.admin.FreezePeriod.mStartDay:I
25: aload 2
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
getfield android.app.admin.FreezePeriod.mEndDay:I
26: invokespecial android.app.admin.FreezePeriod.<init>:(II)V
astore 5
start local 5 27: aload 2
iload 4
aload 5
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
28: aload 2
iconst_0
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
end local 5 29: StackMap locals: int
StackMap stack:
aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 intervals Ljava/util/List<Landroid/app/admin/FreezePeriod;>;
1 30 1 taken [Z
3 8 2 interval Landroid/app/admin/FreezePeriod;
4 8 4 i I
10 30 2 result Ljava/util/List<Landroid/app/admin/FreezePeriod;>;
11 30 3 i I
16 20 4 intervalStart I
22 30 4 lastIndex I
27 29 5 wrappedInterval Landroid/app/admin/FreezePeriod;
Signature: (Ljava/util/List<Landroid/app/admin/FreezePeriod;>;)Ljava/util/List<Landroid/app/admin/FreezePeriod;>;
MethodParameters:
Name Flags
intervals
static void validatePeriods(java.util.List<android.app.admin.FreezePeriod>);
descriptor: (Ljava/util/List;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
invokestatic android.app.admin.FreezePeriod.canonicalizePeriods:(Ljava/util/List;)Ljava/util/List;
astore 1
start local 1 1: aload 1
invokeinterface java.util.List.size:()I
aload 0
invokeinterface java.util.List.size:()I
if_icmpeq 3
2: invokestatic android.app.admin.SystemUpdatePolicy$ValidationFailedException.duplicateOrOverlapPeriods:()Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
athrow
3: StackMap locals: java.util.List
StackMap stack:
iconst_0
istore 2
start local 2 4: goto 28
5: StackMap locals: int
StackMap stack:
aload 1
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
astore 3
start local 3 6: aload 3
invokevirtual android.app.admin.FreezePeriod.getLength:()I
bipush 90
if_icmple 10
7: new java.lang.StringBuilder
dup
ldc "Freeze period "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is too long: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual android.app.admin.FreezePeriod.getLength:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " days"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.app.admin.SystemUpdatePolicy$ValidationFailedException.freezePeriodTooLong:(Ljava/lang/String;)Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
athrow
10: StackMap locals: android.app.admin.FreezePeriod
StackMap stack:
iload 2
ifle 11
aload 1
iload 2
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
goto 12
11: StackMap locals:
StackMap stack:
aload 1
aload 1
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
12: StackMap locals:
StackMap stack: android.app.admin.FreezePeriod
astore 4
start local 4 13: aload 4
aload 3
if_acmpeq 27
14: iload 2
ifne 21
aload 4
invokevirtual android.app.admin.FreezePeriod.isWrapped:()Z
ifne 21
15: aload 3
getfield android.app.admin.FreezePeriod.mStartDay:I
16: sipush 365
aload 4
getfield android.app.admin.FreezePeriod.mEndDay:I
isub
17: iadd
18: iconst_1
19: isub
istore 5
start local 5 20: goto 22
end local 5 21: StackMap locals: android.app.admin.FreezePeriod
StackMap stack:
aload 3
getfield android.app.admin.FreezePeriod.mStartDay:I
aload 4
getfield android.app.admin.FreezePeriod.mEndDay:I
isub
iconst_1
isub
istore 5
start local 5 22: StackMap locals: int
StackMap stack:
iload 5
bipush 60
if_icmpge 27
23: new java.lang.StringBuilder
dup
ldc "Freeze periods "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
24: aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " and "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " are too close "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: ldc "together: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " days apart"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.app.admin.SystemUpdatePolicy$ValidationFailedException.freezePeriodTooClose:(Ljava/lang/String;)Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
athrow
end local 5 end local 4 end local 3 27: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
28: iload 2
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 5
end local 2 29: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 periods Ljava/util/List<Landroid/app/admin/FreezePeriod;>;
1 30 1 allPeriods Ljava/util/List<Landroid/app/admin/FreezePeriod;>;
4 29 2 i I
6 27 3 current Landroid/app/admin/FreezePeriod;
13 27 4 previous Landroid/app/admin/FreezePeriod;
20 21 5 separation I
22 27 5 separation I
Signature: (Ljava/util/List<Landroid/app/admin/FreezePeriod;>;)V
MethodParameters:
Name Flags
periods
static void validateAgainstPreviousFreezePeriod(java.util.List<android.app.admin.FreezePeriod>, java.time.LocalDate, java.time.LocalDate, java.time.LocalDate);
descriptor: (Ljava/util/List;Ljava/time/LocalDate;Ljava/time/LocalDate;Ljava/time/LocalDate;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokeinterface java.util.List.size:()I
ifeq 1
aload 1
ifnull 1
aload 2
ifnonnull 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 1
aload 3
invokevirtual java.time.LocalDate.isAfter:(Ljava/time/chrono/ChronoLocalDate;)Z
ifne 3
aload 2
aload 3
invokevirtual java.time.LocalDate.isAfter:(Ljava/time/chrono/ChronoLocalDate;)Z
ifeq 6
3: StackMap locals:
StackMap stack:
ldc "FreezePeriod"
new java.lang.StringBuilder
dup
ldc "Previous period ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ") is after"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc " current date "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
6: StackMap locals:
StackMap stack:
aload 0
invokestatic android.app.admin.FreezePeriod.canonicalizePeriods:(Ljava/util/List;)Ljava/util/List;
astore 4
start local 4 7: aload 4
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
astore 5
start local 5 8: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 14
StackMap locals: java.util.List java.time.LocalDate java.time.LocalDate java.time.LocalDate java.util.List android.app.admin.FreezePeriod top java.util.Iterator
StackMap stack:
9: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.app.admin.FreezePeriod
astore 6
start local 6 10: aload 6
aload 3
invokevirtual android.app.admin.FreezePeriod.contains:(Ljava/time/LocalDate;)Z
ifne 12
11: aload 6
getfield android.app.admin.FreezePeriod.mStartDay:I
aload 3
invokestatic android.app.admin.FreezePeriod.dayOfYearDisregardLeapYear:(Ljava/time/LocalDate;)I
if_icmple 14
12: StackMap locals: java.util.List java.time.LocalDate java.time.LocalDate java.time.LocalDate java.util.List android.app.admin.FreezePeriod android.app.admin.FreezePeriod java.util.Iterator
StackMap stack:
aload 6
astore 5
13: goto 15
end local 6 14: StackMap locals: java.util.List java.time.LocalDate java.time.LocalDate java.time.LocalDate java.util.List android.app.admin.FreezePeriod top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
15: StackMap locals: java.util.List java.time.LocalDate java.time.LocalDate java.time.LocalDate java.util.List android.app.admin.FreezePeriod
StackMap stack:
aload 5
16: aload 3
invokevirtual android.app.admin.FreezePeriod.toCurrentOrFutureRealDates:(Ljava/time/LocalDate;)Landroid/util/Pair;
17: astore 6
start local 6 18: aload 3
aload 6
getfield android.util.Pair.first:Ljava/lang/Object;
checkcast java.time.chrono.ChronoLocalDate
invokevirtual java.time.LocalDate.isAfter:(Ljava/time/chrono/ChronoLocalDate;)Z
ifeq 20
19: new android.util.Pair
dup
aload 3
aload 6
getfield android.util.Pair.second:Ljava/lang/Object;
checkcast java.time.LocalDate
invokespecial android.util.Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
astore 6
20: StackMap locals: android.util.Pair
StackMap stack:
aload 6
getfield android.util.Pair.first:Ljava/lang/Object;
checkcast java.time.LocalDate
aload 6
getfield android.util.Pair.second:Ljava/lang/Object;
checkcast java.time.chrono.ChronoLocalDate
invokevirtual java.time.LocalDate.isAfter:(Ljava/time/chrono/ChronoLocalDate;)Z
ifeq 24
21: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Current freeze dates inverted: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
22: aload 6
getfield android.util.Pair.first:Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
getfield android.util.Pair.second:Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Prev: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
25: ldc "; cur: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
getfield android.util.Pair.first:Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
getfield android.util.Pair.second:Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
26: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7
start local 7 27: aload 6
getfield android.util.Pair.first:Ljava/lang/Object;
checkcast java.time.LocalDate
28: aload 2
29: invokestatic android.app.admin.FreezePeriod.distanceWithoutLeapYear:(Ljava/time/LocalDate;Ljava/time/LocalDate;)I
30: iconst_1
31: isub
i2l
lstore 8
start local 8 32: lload 8
lconst_0
lcmp
ifle 37
33: lload 8
ldc 60
lcmp
ifge 46
34: new java.lang.StringBuilder
dup
ldc "Previous freeze period too close to new period: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
35: lload 8
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.app.admin.SystemUpdatePolicy$ValidationFailedException.combinedPeriodTooClose:(Ljava/lang/String;)Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
athrow
37: StackMap locals: java.lang.String long
StackMap stack:
aload 6
getfield android.util.Pair.second:Ljava/lang/Object;
checkcast java.time.LocalDate
38: aload 1
39: invokestatic android.app.admin.FreezePeriod.distanceWithoutLeapYear:(Ljava/time/LocalDate;Ljava/time/LocalDate;)I
40: iconst_1
41: iadd
i2l
lstore 10
start local 10 42: lload 10
ldc 90
lcmp
ifle 46
43: new java.lang.StringBuilder
dup
ldc "Combined freeze period exceeds maximum days: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
44: lload 10
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
45: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.app.admin.SystemUpdatePolicy$ValidationFailedException.combinedPeriodTooLong:(Ljava/lang/String;)Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
athrow
end local 10 46: StackMap locals:
StackMap stack:
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 47 0 periods Ljava/util/List<Landroid/app/admin/FreezePeriod;>;
0 47 1 prevPeriodStart Ljava/time/LocalDate;
0 47 2 prevPeriodEnd Ljava/time/LocalDate;
0 47 3 now Ljava/time/LocalDate;
7 47 4 allPeriods Ljava/util/List<Landroid/app/admin/FreezePeriod;>;
8 47 5 curOrNextFreezePeriod Landroid/app/admin/FreezePeriod;
10 14 6 interval Landroid/app/admin/FreezePeriod;
18 47 6 curOrNextFreezeDates Landroid/util/Pair<Ljava/time/LocalDate;Ljava/time/LocalDate;>;
27 47 7 periodsDescription Ljava/lang/String;
32 47 8 separation J
42 46 10 length J
Signature: (Ljava/util/List<Landroid/app/admin/FreezePeriod;>;Ljava/time/LocalDate;Ljava/time/LocalDate;Ljava/time/LocalDate;)V
MethodParameters:
Name Flags
periods
prevPeriodStart
prevPeriodEnd
now
}
SourceFile: "FreezePeriod.java"
InnerClasses:
public final ValidationFailedException = android.app.admin.SystemUpdatePolicy$ValidationFailedException of android.app.admin.SystemUpdatePolicy