public class android.content.UndoManager
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.content.UndoManager
super_class: java.lang.Object
{
private final android.util.ArrayMap<java.lang.String, android.content.UndoOwner> mOwners;
descriptor: Landroid/util/ArrayMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/ArrayMap<Ljava/lang/String;Landroid/content/UndoOwner;>;
private final java.util.ArrayList<android.content.UndoManager$UndoState> mUndos;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Landroid/content/UndoManager$UndoState;>;
private final java.util.ArrayList<android.content.UndoManager$UndoState> mRedos;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Landroid/content/UndoManager$UndoState;>;
private int mUpdateCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mHistorySize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private android.content.UndoManager$UndoState mWorking;
descriptor: Landroid/content/UndoManager$UndoState;
flags: (0x0002) ACC_PRIVATE
private int mCommitId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean mInUndo;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean mMerged;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int mStateSeq;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mNextSavedIdx;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private android.content.UndoOwner[] mStateOwners;
descriptor: [Landroid/content/UndoOwner;
flags: (0x0002) ACC_PRIVATE
public static final int MERGE_MODE_NONE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int MERGE_MODE_UNIQUE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int MERGE_MODE_ANY;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new android.util.ArrayMap
dup
iconst_1
invokespecial android.util.ArrayMap.<init>:(I)V
putfield android.content.UndoManager.mOwners:Landroid/util/ArrayMap;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
4: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
5: aload 0
bipush 20
putfield android.content.UndoManager.mHistorySize:I
6: aload 0
iconst_1
putfield android.content.UndoManager.mCommitId:I
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/content/UndoManager;
public android.content.UndoOwner getOwner(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)Landroid/content/UndoOwner;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "tag can't be null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 2
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "data can't be null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mOwners:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.content.UndoOwner
astore 3
start local 3 5: aload 3
ifnull 13
6: aload 3
getfield android.content.UndoOwner.mData:Ljava/lang/Object;
aload 2
if_acmpeq 12
7: aload 3
getfield android.content.UndoOwner.mData:Ljava/lang/Object;
ifnull 11
8: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Owner "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " already exists with data "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: aload 3
getfield android.content.UndoOwner.mData:Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " but giving different data "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: android.content.UndoOwner
StackMap stack:
aload 3
aload 2
putfield android.content.UndoOwner.mData:Ljava/lang/Object;
12: StackMap locals:
StackMap stack:
aload 3
areturn
13: StackMap locals:
StackMap stack:
new android.content.UndoOwner
dup
aload 1
aload 0
invokespecial android.content.UndoOwner.<init>:(Ljava/lang/String;Landroid/content/UndoManager;)V
astore 3
14: aload 3
aload 2
putfield android.content.UndoOwner.mData:Ljava/lang/Object;
15: aload 0
getfield android.content.UndoManager.mOwners:Landroid/util/ArrayMap;
aload 1
aload 3
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/content/UndoManager;
0 17 1 tag Ljava/lang/String;
0 17 2 data Ljava/lang/Object;
5 17 3 owner Landroid/content/UndoOwner;
MethodParameters:
Name Flags
tag
data
void removeOwner(android.content.UndoOwner);
descriptor: (Landroid/content/UndoOwner;)V
flags: (0x0000)
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/content/UndoManager;
0 1 1 owner Landroid/content/UndoOwner;
MethodParameters:
Name Flags
owner
public void saveInstanceState(android.os.Parcel);
descriptor: (Landroid/os/Parcel;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.content.UndoManager.mUpdateCount:I
ifle 2
1: new java.lang.IllegalStateException
dup
ldc "Can't save state while updating"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.content.UndoManager.mStateSeq:I
iconst_1
iadd
putfield android.content.UndoManager.mStateSeq:I
3: aload 0
getfield android.content.UndoManager.mStateSeq:I
ifgt 5
4: aload 0
iconst_0
putfield android.content.UndoManager.mStateSeq:I
5: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.content.UndoManager.mNextSavedIdx:I
6: aload 1
aload 0
getfield android.content.UndoManager.mHistorySize:I
invokevirtual android.os.Parcel.writeInt:(I)V
7: aload 1
aload 0
getfield android.content.UndoManager.mOwners:Landroid/util/ArrayMap;
invokevirtual android.util.ArrayMap.size:()I
invokevirtual android.os.Parcel.writeInt:(I)V
8: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 2
start local 2 9: goto 13
10: StackMap locals: int
StackMap stack:
aload 1
iconst_1
invokevirtual android.os.Parcel.writeInt:(I)V
11: iinc 2 -1
12: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
aload 1
invokevirtual android.content.UndoManager$UndoState.writeToParcel:(Landroid/os/Parcel;)V
13: StackMap locals:
StackMap stack:
iload 2
ifgt 10
14: aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 2
15: goto 19
16: StackMap locals:
StackMap stack:
aload 1
iconst_2
invokevirtual android.os.Parcel.writeInt:(I)V
17: iinc 2 -1
18: aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
aload 1
invokevirtual android.content.UndoManager$UndoState.writeToParcel:(Landroid/os/Parcel;)V
19: StackMap locals:
StackMap stack:
iload 2
ifgt 16
20: aload 1
iconst_0
invokevirtual android.os.Parcel.writeInt:(I)V
21: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/content/UndoManager;
0 22 1 p Landroid/os/Parcel;
9 22 2 i I
MethodParameters:
Name Flags
p
void saveOwner(android.content.UndoOwner, android.os.Parcel);
descriptor: (Landroid/content/UndoOwner;Landroid/os/Parcel;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield android.content.UndoOwner.mStateSeq:I
aload 0
getfield android.content.UndoManager.mStateSeq:I
if_icmpne 3
1: aload 2
aload 1
getfield android.content.UndoOwner.mSavedIdx:I
invokevirtual android.os.Parcel.writeInt:(I)V
2: goto 9
3: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield android.content.UndoManager.mStateSeq:I
putfield android.content.UndoOwner.mStateSeq:I
4: aload 1
aload 0
getfield android.content.UndoManager.mNextSavedIdx:I
putfield android.content.UndoOwner.mSavedIdx:I
5: aload 2
aload 1
getfield android.content.UndoOwner.mSavedIdx:I
invokevirtual android.os.Parcel.writeInt:(I)V
6: aload 2
aload 1
getfield android.content.UndoOwner.mTag:Ljava/lang/String;
invokevirtual android.os.Parcel.writeString:(Ljava/lang/String;)V
7: aload 2
aload 1
getfield android.content.UndoOwner.mOpCount:I
invokevirtual android.os.Parcel.writeInt:(I)V
8: aload 0
dup
getfield android.content.UndoManager.mNextSavedIdx:I
iconst_1
iadd
putfield android.content.UndoManager.mNextSavedIdx:I
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/content/UndoManager;
0 10 1 owner Landroid/content/UndoOwner;
0 10 2 out Landroid/os/Parcel;
MethodParameters:
Name Flags
owner
out
public void restoreInstanceState(android.os.Parcel, java.lang.ClassLoader);
descriptor: (Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.content.UndoManager.mUpdateCount:I
ifle 2
1: new java.lang.IllegalStateException
dup
ldc "Can't save state while updating"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aconst_null
iconst_m1
invokevirtual android.content.UndoManager.forgetUndos:([Landroid/content/UndoOwner;I)I
pop
3: aload 0
aconst_null
iconst_m1
invokevirtual android.content.UndoManager.forgetRedos:([Landroid/content/UndoOwner;I)I
pop
4: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
putfield android.content.UndoManager.mHistorySize:I
5: aload 0
aload 1
invokevirtual android.os.Parcel.readInt:()I
anewarray android.content.UndoOwner
putfield android.content.UndoManager.mStateOwners:[Landroid/content/UndoOwner;
6: goto 12
start local 3 7: StackMap locals: int
StackMap stack:
new android.content.UndoManager$UndoState
dup
aload 0
aload 1
aload 2
invokespecial android.content.UndoManager$UndoState.<init>:(Landroid/content/UndoManager;Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
astore 4
start local 4 8: iload 3
iconst_1
if_icmpne 11
9: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
iconst_0
aload 4
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
10: goto 12
11: StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
iconst_0
aload 4
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
end local 4 end local 3 12: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.os.Parcel.readInt:()I
dup
istore 3
start local 3 13: ifne 7
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/content/UndoManager;
0 15 1 p Landroid/os/Parcel;
0 15 2 loader Ljava/lang/ClassLoader;
7 12 3 stype I
13 15 3 stype I
8 12 4 ustate Landroid/content/UndoManager$UndoState;
MethodParameters:
Name Flags
p
loader
android.content.UndoOwner restoreOwner(android.os.Parcel);
descriptor: (Landroid/os/Parcel;)Landroid/content/UndoOwner;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual android.os.Parcel.readInt:()I
istore 2
start local 2 1: aload 0
getfield android.content.UndoManager.mStateOwners:[Landroid/content/UndoOwner;
iload 2
aaload
astore 3
start local 3 2: aload 3
ifnonnull 9
3: aload 1
invokevirtual android.os.Parcel.readString:()Ljava/lang/String;
astore 4
start local 4 4: aload 1
invokevirtual android.os.Parcel.readInt:()I
istore 5
start local 5 5: new android.content.UndoOwner
dup
aload 4
aload 0
invokespecial android.content.UndoOwner.<init>:(Ljava/lang/String;Landroid/content/UndoManager;)V
astore 3
6: aload 3
iload 5
putfield android.content.UndoOwner.mOpCount:I
7: aload 0
getfield android.content.UndoManager.mStateOwners:[Landroid/content/UndoOwner;
iload 2
aload 3
aastore
8: aload 0
getfield android.content.UndoManager.mOwners:Landroid/util/ArrayMap;
aload 4
aload 3
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 9: StackMap locals: int android.content.UndoOwner
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/content/UndoManager;
0 10 1 in Landroid/os/Parcel;
1 10 2 idx I
2 10 3 owner Landroid/content/UndoOwner;
4 9 4 tag Ljava/lang/String;
5 9 5 opCount I
MethodParameters:
Name Flags
in
public void setHistorySize(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield android.content.UndoManager.mHistorySize:I
1: aload 0
getfield android.content.UndoManager.mHistorySize:I
iflt 3
aload 0
aconst_null
invokevirtual android.content.UndoManager.countUndos:([Landroid/content/UndoOwner;)I
aload 0
getfield android.content.UndoManager.mHistorySize:I
if_icmple 3
2: aload 0
aconst_null
aload 0
aconst_null
invokevirtual android.content.UndoManager.countUndos:([Landroid/content/UndoOwner;)I
aload 0
getfield android.content.UndoManager.mHistorySize:I
isub
invokevirtual android.content.UndoManager.forgetUndos:([Landroid/content/UndoOwner;I)I
pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/content/UndoManager;
0 4 1 size I
MethodParameters:
Name Flags
size
public int getHistorySize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.content.UndoManager.mHistorySize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/content/UndoManager;
public int undo(android.content.UndoOwner[], int);
descriptor: ([Landroid/content/UndoOwner;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnull 2
1: new java.lang.IllegalStateException
dup
ldc "Can't be called during an update"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 3: iconst_m1
istore 4
start local 4 4: aload 0
iconst_1
putfield android.content.UndoManager.mInUndo:Z
5: aload 0
aconst_null
invokevirtual android.content.UndoManager.getTopUndo:([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
astore 5
start local 5 6: aload 5
ifnull 14
7: aload 5
invokevirtual android.content.UndoManager$UndoState.makeExecuted:()V
8: goto 14
9: StackMap locals: int int android.content.UndoManager$UndoState
StackMap stack:
aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
iload 4
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
astore 6
start local 6 10: aload 6
invokevirtual android.content.UndoManager$UndoState.undo:()V
11: aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
12: iinc 2 -1
13: iinc 3 1
end local 6 14: StackMap locals:
StackMap stack:
iload 2
ifle 15
aload 0
aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
aload 1
iload 4
invokevirtual android.content.UndoManager.findPrevState:(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
dup
istore 4
ifge 9
15: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.content.UndoManager.mInUndo:Z
16: iload 3
ireturn
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 17 0 this Landroid/content/UndoManager;
0 17 1 owners [Landroid/content/UndoOwner;
0 17 2 count I
3 17 3 num I
4 17 4 i I
6 17 5 us Landroid/content/UndoManager$UndoState;
10 14 6 state Landroid/content/UndoManager$UndoState;
MethodParameters:
Name Flags
owners
count
public int redo(android.content.UndoOwner[], int);
descriptor: ([Landroid/content/UndoOwner;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnull 2
1: new java.lang.IllegalStateException
dup
ldc "Can't be called during an update"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 3: iconst_m1
istore 4
start local 4 4: aload 0
iconst_1
putfield android.content.UndoManager.mInUndo:Z
5: goto 11
6: StackMap locals: int int
StackMap stack:
aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
iload 4
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
astore 5
start local 5 7: aload 5
invokevirtual android.content.UndoManager$UndoState.redo:()V
8: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
aload 5
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
9: iinc 2 -1
10: iinc 3 1
end local 5 11: StackMap locals:
StackMap stack:
iload 2
ifle 12
aload 0
aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
aload 1
iload 4
invokevirtual android.content.UndoManager.findPrevState:(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
dup
istore 4
ifge 6
12: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.content.UndoManager.mInUndo:Z
13: iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/content/UndoManager;
0 14 1 owners [Landroid/content/UndoOwner;
0 14 2 count I
3 14 3 num I
4 14 4 i I
7 11 5 state Landroid/content/UndoManager$UndoState;
MethodParameters:
Name Flags
owners
count
public boolean isInUndo();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.content.UndoManager.mInUndo:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/content/UndoManager;
public int forgetUndos(android.content.UndoOwner[], int);
descriptor: ([Landroid/content/UndoOwner;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifge 2
1: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 2
2: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 12
5: StackMap locals: int int
StackMap stack:
aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
iload 4
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
astore 5
start local 5 6: iload 2
ifle 11
aload 0
aload 5
aload 1
invokevirtual android.content.UndoManager.matchOwners:(Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z
ifeq 11
7: aload 5
invokevirtual android.content.UndoManager$UndoState.destroy:()V
8: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
iload 4
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
9: iinc 3 1
10: goto 12
11: StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
iinc 4 1
end local 5 12: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmpge 13
iload 3
iload 2
if_icmplt 5
13: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/content/UndoManager;
0 14 1 owners [Landroid/content/UndoOwner;
0 14 2 count I
3 14 3 removed I
4 14 4 i I
6 12 5 state Landroid/content/UndoManager$UndoState;
MethodParameters:
Name Flags
owners
count
public int forgetRedos(android.content.UndoOwner[], int);
descriptor: ([Landroid/content/UndoOwner;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifge 2
1: aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 2
2: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 12
5: StackMap locals: int int
StackMap stack:
aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
iload 4
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
astore 5
start local 5 6: iload 2
ifle 11
aload 0
aload 5
aload 1
invokevirtual android.content.UndoManager.matchOwners:(Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z
ifeq 11
7: aload 5
invokevirtual android.content.UndoManager$UndoState.destroy:()V
8: aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
iload 4
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
9: iinc 3 1
10: goto 12
11: StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
iinc 4 1
end local 5 12: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmpge 13
iload 3
iload 2
if_icmplt 5
13: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/content/UndoManager;
0 14 1 owners [Landroid/content/UndoOwner;
0 14 2 count I
3 14 3 removed I
4 14 4 i I
6 12 5 state Landroid/content/UndoManager$UndoState;
MethodParameters:
Name Flags
owners
count
public int countUndos(android.content.UndoOwner[]);
descriptor: ([Landroid/content/UndoOwner;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 7
5: StackMap locals: int int
StackMap stack:
iinc 2 1
6: iinc 3 1
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
aload 1
iload 3
invokevirtual android.content.UndoManager.findNextState:(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
dup
istore 3
ifge 5
8: iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/content/UndoManager;
0 9 1 owners [Landroid/content/UndoOwner;
3 9 2 count I
4 9 3 i I
MethodParameters:
Name Flags
owners
public int countRedos(android.content.UndoOwner[]);
descriptor: ([Landroid/content/UndoOwner;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 7
5: StackMap locals: int int
StackMap stack:
iinc 2 1
6: iinc 3 1
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
aload 1
iload 3
invokevirtual android.content.UndoManager.findNextState:(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
dup
istore 3
ifge 5
8: iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/content/UndoManager;
0 9 1 owners [Landroid/content/UndoOwner;
3 9 2 count I
4 9 3 i I
MethodParameters:
Name Flags
owners
public java.lang.CharSequence getUndoLabel(android.content.UndoOwner[]);
descriptor: ([Landroid/content/UndoOwner;)Ljava/lang/CharSequence;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual android.content.UndoManager.getTopUndo:([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual android.content.UndoManager$UndoState.getLabel:()Ljava/lang/CharSequence;
goto 3
StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.CharSequence
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/content/UndoManager;
0 4 1 owners [Landroid/content/UndoOwner;
1 4 2 state Landroid/content/UndoManager$UndoState;
MethodParameters:
Name Flags
owners
public java.lang.CharSequence getRedoLabel(android.content.UndoOwner[]);
descriptor: ([Landroid/content/UndoOwner;)Ljava/lang/CharSequence;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual android.content.UndoManager.getTopRedo:([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual android.content.UndoManager$UndoState.getLabel:()Ljava/lang/CharSequence;
goto 3
StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.CharSequence
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/content/UndoManager;
0 4 1 owners [Landroid/content/UndoOwner;
1 4 2 state Landroid/content/UndoManager$UndoState;
MethodParameters:
Name Flags
owners
public void beginUpdate(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.content.UndoManager.mInUndo:Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "Can't being update while performing undo/redo"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mUpdateCount:I
ifgt 6
3: aload 0
invokevirtual android.content.UndoManager.createWorkingState:()V
4: aload 0
iconst_0
putfield android.content.UndoManager.mMerged:Z
5: aload 0
iconst_0
putfield android.content.UndoManager.mUpdateCount:I
6: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
aload 1
invokevirtual android.content.UndoManager$UndoState.updateLabel:(Ljava/lang/CharSequence;)V
7: aload 0
dup
getfield android.content.UndoManager.mUpdateCount:I
iconst_1
iadd
putfield android.content.UndoManager.mUpdateCount:I
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/content/UndoManager;
0 9 1 label Ljava/lang/CharSequence;
MethodParameters:
Name Flags
label
private void createWorkingState();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=1, args_size=1
start local 0 0: aload 0
new android.content.UndoManager$UndoState
dup
aload 0
aload 0
dup
getfield android.content.UndoManager.mCommitId:I
dup_x1
iconst_1
iadd
putfield android.content.UndoManager.mCommitId:I
invokespecial android.content.UndoManager$UndoState.<init>:(Landroid/content/UndoManager;I)V
putfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
1: aload 0
getfield android.content.UndoManager.mCommitId:I
ifge 3
2: aload 0
iconst_1
putfield android.content.UndoManager.mCommitId:I
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/content/UndoManager;
public boolean isInUpdate();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.content.UndoManager.mUpdateCount:I
ifle 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/content/UndoManager;
public void setUndoLabel(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "Must be called during an update"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
aload 1
invokevirtual android.content.UndoManager$UndoState.setLabel:(Ljava/lang/CharSequence;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/content/UndoManager;
0 4 1 label Ljava/lang/CharSequence;
MethodParameters:
Name Flags
label
public void suggestUndoLabel(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "Must be called during an update"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
aload 1
invokevirtual android.content.UndoManager$UndoState.updateLabel:(Ljava/lang/CharSequence;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/content/UndoManager;
0 4 1 label Ljava/lang/CharSequence;
MethodParameters:
Name Flags
label
public int getUpdateNestingLevel();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.content.UndoManager.mUpdateCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/content/UndoManager;
public boolean hasOperation(android.content.UndoOwner);
descriptor: (Landroid/content/UndoOwner;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "Must be called during an update"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
aload 1
invokevirtual android.content.UndoManager$UndoState.hasOperation:(Landroid/content/UndoOwner;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/content/UndoManager;
0 3 1 owner Landroid/content/UndoOwner;
MethodParameters:
Name Flags
owner
public android.content.UndoOperation<?> getLastOperation(int);
descriptor: (I)Landroid/content/UndoOperation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
aconst_null
iload 1
invokevirtual android.content.UndoManager.getLastOperation:(Ljava/lang/Class;Landroid/content/UndoOwner;I)Landroid/content/UndoOperation;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/content/UndoManager;
0 1 1 mergeMode I
Signature: (I)Landroid/content/UndoOperation<*>;
MethodParameters:
Name Flags
mergeMode
public android.content.UndoOperation<?> getLastOperation(android.content.UndoOwner, int);
descriptor: (Landroid/content/UndoOwner;I)Landroid/content/UndoOperation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aconst_null
aload 1
iload 2
invokevirtual android.content.UndoManager.getLastOperation:(Ljava/lang/Class;Landroid/content/UndoOwner;I)Landroid/content/UndoOperation;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/content/UndoManager;
0 1 1 owner Landroid/content/UndoOwner;
0 1 2 mergeMode I
Signature: (Landroid/content/UndoOwner;I)Landroid/content/UndoOperation<*>;
MethodParameters:
Name Flags
owner
mergeMode
public <T extends android.content.UndoOperation> T getLastOperation(java.lang.Class<T>, android.content.UndoOwner, );
descriptor: (Ljava/lang/Class;Landroid/content/UndoOwner;I)Landroid/content/UndoOperation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "Must be called during an update"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 3
ifeq 13
aload 0
getfield android.content.UndoManager.mMerged:Z
ifne 13
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.hasData:()Z
ifne 13
3: aload 0
aconst_null
invokevirtual android.content.UndoManager.getTopUndo:([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
astore 4
start local 4 4: aload 4
ifnull 13
iload 3
iconst_2
if_icmpeq 5
aload 4
invokevirtual android.content.UndoManager$UndoState.hasMultipleOwners:()Z
ifne 13
5: StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
aload 4
invokevirtual android.content.UndoManager$UndoState.canMerge:()Z
ifeq 13
aload 4
aload 1
aload 2
invokevirtual android.content.UndoManager$UndoState.getLastOperation:(Ljava/lang/Class;Landroid/content/UndoOwner;)Landroid/content/UndoOperation;
dup
astore 5
start local 5 6: ifnull 13
7: aload 5
invokevirtual android.content.UndoOperation.allowMerge:()Z
ifeq 13
8: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.destroy:()V
9: aload 0
aload 4
putfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
10: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
aload 4
invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
pop
11: aload 0
iconst_1
putfield android.content.UndoManager.mMerged:Z
12: aload 5
areturn
end local 5 end local 4 13: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
aload 1
aload 2
invokevirtual android.content.UndoManager$UndoState.getLastOperation:(Ljava/lang/Class;Landroid/content/UndoOwner;)Landroid/content/UndoOperation;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/content/UndoManager;
0 14 1 clazz Ljava/lang/Class<TT;>;
0 14 2 owner Landroid/content/UndoOwner;
0 14 3 mergeMode I
4 13 4 state Landroid/content/UndoManager$UndoState;
6 13 5 last Landroid/content/UndoOperation<*>;
Signature: <T:Landroid/content/UndoOperation;>(Ljava/lang/Class<TT;>;Landroid/content/UndoOwner;I)TT;
MethodParameters:
Name Flags
clazz
owner
mergeMode
public void addOperation(android.content.UndoOperation<?>, );
descriptor: (Landroid/content/UndoOperation;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "Must be called during an update"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.content.UndoOperation.getOwner:()Landroid/content/UndoOwner;
astore 3
start local 3 3: aload 3
getfield android.content.UndoOwner.mManager:Landroid/content/UndoManager;
aload 0
if_acmpeq 7
4: new java.lang.IllegalArgumentException
dup
5: ldc "Given operation's owner is not in this undo manager."
6: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: android.content.UndoOwner
StackMap stack:
iload 2
ifeq 15
aload 0
getfield android.content.UndoManager.mMerged:Z
ifne 15
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.hasData:()Z
ifne 15
8: aload 0
aconst_null
invokevirtual android.content.UndoManager.getTopUndo:([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
astore 4
start local 4 9: aload 4
ifnull 15
iload 2
iconst_2
if_icmpeq 10
aload 4
invokevirtual android.content.UndoManager$UndoState.hasMultipleOwners:()Z
ifne 15
10: StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
aload 4
invokevirtual android.content.UndoManager$UndoState.canMerge:()Z
ifeq 15
aload 4
aload 1
invokevirtual android.content.UndoOperation.getOwner:()Landroid/content/UndoOwner;
invokevirtual android.content.UndoManager$UndoState.hasOperation:(Landroid/content/UndoOwner;)Z
ifeq 15
11: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.destroy:()V
12: aload 0
aload 4
putfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
13: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
aload 4
invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
pop
14: aload 0
iconst_1
putfield android.content.UndoManager.mMerged:Z
end local 4 15: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
aload 1
invokevirtual android.content.UndoManager$UndoState.addOperation:(Landroid/content/UndoOperation;)V
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/content/UndoManager;
0 17 1 op Landroid/content/UndoOperation<*>;
0 17 2 mergeMode I
3 17 3 owner Landroid/content/UndoOwner;
9 15 4 state Landroid/content/UndoManager$UndoState;
Signature: (Landroid/content/UndoOperation<*>;I)V
MethodParameters:
Name Flags
op
mergeMode
public void endUpdate();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "Must be called during an update"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.content.UndoManager.mUpdateCount:I
iconst_1
isub
putfield android.content.UndoManager.mUpdateCount:I
3: aload 0
getfield android.content.UndoManager.mUpdateCount:I
ifne 5
4: aload 0
invokevirtual android.content.UndoManager.pushWorkingState:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/content/UndoManager;
private void pushWorkingState();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
iadd
istore 1
start local 1 1: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.hasData:()Z
ifeq 8
2: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
3: aload 0
aconst_null
iconst_m1
invokevirtual android.content.UndoManager.forgetRedos:([Landroid/content/UndoOwner;I)I
pop
4: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.commit:()V
5: iload 1
iconst_2
if_icmplt 9
6: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
iload 1
iconst_2
isub
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
invokevirtual android.content.UndoManager$UndoState.makeExecuted:()V
7: goto 9
8: StackMap locals: int
StackMap stack:
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.destroy:()V
9: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
10: aload 0
getfield android.content.UndoManager.mHistorySize:I
iflt 12
iload 1
aload 0
getfield android.content.UndoManager.mHistorySize:I
if_icmple 12
11: aload 0
aconst_null
iload 1
aload 0
getfield android.content.UndoManager.mHistorySize:I
isub
invokevirtual android.content.UndoManager.forgetUndos:([Landroid/content/UndoOwner;I)I
pop
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/content/UndoManager;
1 13 1 N I
public int commitState(android.content.UndoOwner);
descriptor: (Landroid/content/UndoOwner;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnull 8
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.hasData:()Z
ifeq 8
1: aload 1
ifnull 2
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
aload 1
invokevirtual android.content.UndoManager$UndoState.hasOperation:(Landroid/content/UndoOwner;)Z
ifeq 12
2: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
iconst_0
invokevirtual android.content.UndoManager$UndoState.setCanMerge:(Z)Z
pop
3: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.getCommitId:()I
istore 2
start local 2 4: aload 0
invokevirtual android.content.UndoManager.pushWorkingState:()V
5: aload 0
invokevirtual android.content.UndoManager.createWorkingState:()V
6: aload 0
iconst_1
putfield android.content.UndoManager.mMerged:Z
7: iload 2
ireturn
end local 2 8: StackMap locals:
StackMap stack:
aload 0
aconst_null
invokevirtual android.content.UndoManager.getTopUndo:([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
astore 2
start local 2 9: aload 2
ifnull 12
aload 1
ifnull 10
aload 2
aload 1
invokevirtual android.content.UndoManager$UndoState.hasOperation:(Landroid/content/UndoOwner;)Z
ifeq 12
10: StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
aload 2
iconst_0
invokevirtual android.content.UndoManager$UndoState.setCanMerge:(Z)Z
pop
11: aload 2
invokevirtual android.content.UndoManager$UndoState.getCommitId:()I
ireturn
end local 2 12: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/content/UndoManager;
0 13 1 owner Landroid/content/UndoOwner;
4 8 2 commitId I
9 12 2 state Landroid/content/UndoManager$UndoState;
MethodParameters:
Name Flags
owner
public boolean uncommitState(int, android.content.UndoOwner);
descriptor: (ILandroid/content/UndoOwner;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
ifnull 3
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
invokevirtual android.content.UndoManager$UndoState.getCommitId:()I
iload 1
if_icmpne 3
1: aload 2
ifnull 2
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
aload 2
invokevirtual android.content.UndoManager$UndoState.hasOperation:(Landroid/content/UndoOwner;)Z
ifeq 7
2: StackMap locals:
StackMap stack:
aload 0
getfield android.content.UndoManager.mWorking:Landroid/content/UndoManager$UndoState;
iconst_1
invokevirtual android.content.UndoManager$UndoState.setCanMerge:(Z)Z
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aconst_null
invokevirtual android.content.UndoManager.getTopUndo:([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
astore 3
start local 3 4: aload 3
ifnull 7
aload 2
ifnull 5
aload 3
aload 2
invokevirtual android.content.UndoManager$UndoState.hasOperation:(Landroid/content/UndoOwner;)Z
ifeq 7
5: StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
aload 3
invokevirtual android.content.UndoManager$UndoState.getCommitId:()I
iload 1
if_icmpne 7
6: aload 3
iconst_1
invokevirtual android.content.UndoManager$UndoState.setCanMerge:(Z)Z
ireturn
end local 3 7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/content/UndoManager;
0 8 1 commitId I
0 8 2 owner Landroid/content/UndoOwner;
4 7 3 state Landroid/content/UndoManager$UndoState;
MethodParameters:
Name Flags
commitId
owner
android.content.UndoManager$UndoState getTopUndo(android.content.UndoOwner[]);
descriptor: ([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifgt 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
aload 1
iconst_m1
invokevirtual android.content.UndoManager.findPrevState:(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
istore 2
start local 2 3: iload 2
iflt 4
aload 0
getfield android.content.UndoManager.mUndos:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
goto 5
StackMap locals: int
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: android.content.UndoManager$UndoState
5: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/content/UndoManager;
0 6 1 owners [Landroid/content/UndoOwner;
3 6 2 i I
MethodParameters:
Name Flags
owners
android.content.UndoManager$UndoState getTopRedo(android.content.UndoOwner[]);
descriptor: ([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifgt 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
aload 1
iconst_m1
invokevirtual android.content.UndoManager.findPrevState:(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
istore 2
start local 2 3: iload 2
iflt 4
aload 0
getfield android.content.UndoManager.mRedos:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
goto 5
StackMap locals: int
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: android.content.UndoManager$UndoState
5: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/content/UndoManager;
0 6 1 owners [Landroid/content/UndoOwner;
3 6 2 i I
MethodParameters:
Name Flags
owners
boolean matchOwners(android.content.UndoManager$UndoState, android.content.UndoOwner[]);
descriptor: (Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 3: goto 7
4: StackMap locals: int
StackMap stack:
aload 1
aload 2
iload 3
aaload
invokevirtual android.content.UndoManager$UndoState.matchOwner:(Landroid/content/UndoOwner;)Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
aload 2
arraylength
if_icmplt 4
end local 3 8: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/content/UndoManager;
0 9 1 state Landroid/content/UndoManager$UndoState;
0 9 2 owners [Landroid/content/UndoOwner;
3 8 3 i I
MethodParameters:
Name Flags
state
owners
int findPrevState(java.util.ArrayList<android.content.UndoManager$UndoState>, android.content.UndoOwner[], );
descriptor: (Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
flags: (0x0000)
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual java.util.ArrayList.size:()I
istore 4
start local 4 1: iload 3
iconst_m1
if_icmpne 3
2: iload 4
iconst_1
isub
istore 3
3: StackMap locals: int
StackMap stack:
iload 3
iload 4
if_icmplt 5
4: iconst_m1
ireturn
5: StackMap locals:
StackMap stack:
aload 2
ifnonnull 11
6: iload 3
ireturn
7: StackMap locals:
StackMap stack:
aload 1
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
astore 5
start local 5 8: aload 0
aload 5
aload 2
invokevirtual android.content.UndoManager.matchOwners:(Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z
ifeq 10
9: iload 3
ireturn
10: StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
iinc 3 -1
end local 5 11: StackMap locals:
StackMap stack:
iload 3
ifge 7
12: iconst_m1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/content/UndoManager;
0 13 1 states Ljava/util/ArrayList<Landroid/content/UndoManager$UndoState;>;
0 13 2 owners [Landroid/content/UndoOwner;
0 13 3 from I
1 13 4 N I
8 11 5 state Landroid/content/UndoManager$UndoState;
Signature: (Ljava/util/ArrayList<Landroid/content/UndoManager$UndoState;>;[Landroid/content/UndoOwner;I)I
MethodParameters:
Name Flags
states
owners
from
int findNextState(java.util.ArrayList<android.content.UndoManager$UndoState>, android.content.UndoOwner[], );
descriptor: (Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
flags: (0x0000)
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual java.util.ArrayList.size:()I
istore 4
start local 4 1: iload 3
ifge 3
2: iconst_0
istore 3
3: StackMap locals: int
StackMap stack:
iload 3
iload 4
if_icmplt 5
4: iconst_m1
ireturn
5: StackMap locals:
StackMap stack:
aload 2
ifnonnull 11
6: iload 3
ireturn
7: StackMap locals:
StackMap stack:
aload 1
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.content.UndoManager$UndoState
astore 5
start local 5 8: aload 0
aload 5
aload 2
invokevirtual android.content.UndoManager.matchOwners:(Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z
ifeq 10
9: iload 3
ireturn
10: StackMap locals: android.content.UndoManager$UndoState
StackMap stack:
iinc 3 1
end local 5 11: StackMap locals:
StackMap stack:
iload 3
iload 4
if_icmplt 7
12: iconst_m1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/content/UndoManager;
0 13 1 states Ljava/util/ArrayList<Landroid/content/UndoManager$UndoState;>;
0 13 2 owners [Landroid/content/UndoOwner;
0 13 3 from I
1 13 4 N I
8 11 5 state Landroid/content/UndoManager$UndoState;
Signature: (Ljava/util/ArrayList<Landroid/content/UndoManager$UndoState;>;[Landroid/content/UndoOwner;I)I
MethodParameters:
Name Flags
states
owners
from
}
SourceFile: "UndoManager.java"
NestMembers:
android.content.UndoManager$UndoState
InnerClasses:
final UndoState = android.content.UndoManager$UndoState of android.content.UndoManager