public final class android.app.UiAutomation
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.app.UiAutomation
  super_class: java.lang.Object
{
  private static final java.lang.String LOG_TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int CONNECTION_ID_UNDEFINED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final long CONNECT_TIMEOUT_MILLIS;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5000

  public static final int ROTATION_UNFREEZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  public static final int ROTATION_FREEZE_CURRENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int ROTATION_FREEZE_0;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int ROTATION_FREEZE_90;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int ROTATION_FREEZE_180;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int ROTATION_FREEZE_270;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final java.lang.Object mLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.ArrayList<android.view.accessibility.AccessibilityEvent> mEventQueue;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Landroid/view/accessibility/AccessibilityEvent;>;

  private final android.os.Handler mLocalCallbackHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.app.IUiAutomationConnection mUiAutomationConnection;
    descriptor: Landroid/app/IUiAutomationConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.os.HandlerThread mRemoteCallbackThread;
    descriptor: Landroid/os/HandlerThread;
    flags: (0x0002) ACC_PRIVATE

  private android.accessibilityservice.IAccessibilityServiceClient mClient;
    descriptor: Landroid/accessibilityservice/IAccessibilityServiceClient;
    flags: (0x0002) ACC_PRIVATE

  private int mConnectionId;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private android.app.UiAutomation$OnAccessibilityEventListener mOnAccessibilityEventListener;
    descriptor: Landroid/app/UiAutomation$OnAccessibilityEventListener;
    flags: (0x0002) ACC_PRIVATE

  private boolean mWaitingForEventDelivery;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private long mLastEventTimeMillis;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private boolean mIsConnecting;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mIsDestroyed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int mFlags;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 86
            ldc Landroid/app/UiAutomation;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            putstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
         1: .line 118
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.os.Looper, android.app.IUiAutomationConnection);
    descriptor: (Landroid/os/Looper;Landroid/app/IUiAutomationConnection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.app.UiAutomation this
        start local 1 // android.os.Looper looper
        start local 2 // android.app.IUiAutomationConnection connection
         0: .line 193
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 120
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.app.UiAutomation.mLock:Ljava/lang/Object;
         2: .line 122
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
         3: .line 132
            aload 0 /* this */
            iconst_m1
            putfield android.app.UiAutomation.mConnectionId:I
         4: .line 194
            aload 1 /* looper */
            ifnonnull 6
         5: .line 195
            new java.lang.IllegalArgumentException
            dup
            ldc "Looper cannot be null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 197
      StackMap locals: android.app.UiAutomation android.os.Looper android.app.IUiAutomationConnection
      StackMap stack:
            aload 2 /* connection */
            ifnonnull 8
         7: .line 198
            new java.lang.IllegalArgumentException
            dup
            ldc "Connection cannot be null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new android.os.Handler
            dup
            aload 1 /* looper */
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
            putfield android.app.UiAutomation.mLocalCallbackHandler:Landroid/os/Handler;
         9: .line 201
            aload 0 /* this */
            aload 2 /* connection */
            putfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
        10: .line 202
            return
        end local 2 // android.app.IUiAutomationConnection connection
        end local 1 // android.os.Looper looper
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Landroid/app/UiAutomation;
            0   11     1      looper  Landroid/os/Looper;
            0   11     2  connection  Landroid/app/IUiAutomationConnection;
    MethodParameters:
            Name  Flags
      looper      
      connection  

  public void connect();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 210
            aload 0 /* this */
            iconst_0
            invokevirtual android.app.UiAutomation.connect:(I)V
         1: .line 211
            return
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/app/UiAutomation;

  public void connect(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // int flags
         0: .line 221
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 222
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfConnectedLocked:()V
         2: .line 223
            aload 0 /* this */
            getfield android.app.UiAutomation.mIsConnecting:Z
            ifeq 5
         3: .line 224
            aload 2
            monitorexit
         4: return
         5: .line 226
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.app.UiAutomation.mIsConnecting:Z
         6: .line 227
            aload 0 /* this */
            new android.os.HandlerThread
            dup
            ldc "UiAutomation"
            invokespecial android.os.HandlerThread.<init>:(Ljava/lang/String;)V
            putfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
         7: .line 228
            aload 0 /* this */
            getfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
            invokevirtual android.os.HandlerThread.start:()V
         8: .line 229
            aload 0 /* this */
            new android.app.UiAutomation$IAccessibilityServiceClientImpl
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
            invokevirtual android.os.HandlerThread.getLooper:()Landroid/os/Looper;
            invokespecial android.app.UiAutomation$IAccessibilityServiceClientImpl.<init>:(Landroid/app/UiAutomation;Landroid/os/Looper;)V
            putfield android.app.UiAutomation.mClient:Landroid/accessibilityservice/IAccessibilityServiceClient;
         9: .line 221
            aload 2
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            aload 0 /* this */
            getfield android.app.UiAutomation.mClient:Landroid/accessibilityservice/IAccessibilityServiceClient;
            iload 1 /* flags */
            invokeinterface android.app.IUiAutomationConnection.connect:(Landroid/accessibilityservice/IAccessibilityServiceClient;I)V
        14: .line 235
            aload 0 /* this */
            iload 1 /* flags */
            putfield android.app.UiAutomation.mFlags:I
        15: .line 236
            goto 18
      StackMap locals:
      StackMap stack: android.os.RemoteException
        16: astore 2 /* re */
        start local 2 // android.os.RemoteException re
        17: .line 237
            new java.lang.RuntimeException
            dup
            ldc "Error while connecting UiAutomation"
            aload 2 /* re */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // android.os.RemoteException re
        18: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
        19: .line 241
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lstore 3 /* startTimeMillis */
        start local 3 // long startTimeMillis
        20: .line 244
      StackMap locals: java.lang.Object long
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.isConnectedLocked:()Z
            ifeq 22
        21: .line 245
            goto 33
        22: .line 247
      StackMap locals:
      StackMap stack:
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lload 3 /* startTimeMillis */
            lsub
            lstore 5 /* elapsedTimeMillis */
        start local 5 // long elapsedTimeMillis
        23: .line 248
            ldc 5000
            lload 5 /* elapsedTimeMillis */
            lsub
            lstore 7 /* remainingTimeMillis */
        start local 7 // long remainingTimeMillis
        24: .line 249
            lload 7 /* remainingTimeMillis */
            lconst_0
            lcmp
            ifgt 26
        25: .line 250
            new java.lang.RuntimeException
            dup
            ldc "Error while connecting UiAutomation"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 253
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            lload 7 /* remainingTimeMillis */
            invokevirtual java.lang.Object.wait:(J)V
        27: .line 254
            goto 20
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        28: pop
        end local 7 // long remainingTimeMillis
        end local 5 // long elapsedTimeMillis
        29: .line 243
            goto 20
        30: .line 258
      StackMap locals: android.app.UiAutomation int java.lang.Object long
      StackMap stack: java.lang.Throwable
            astore 9
        31: .line 259
            aload 0 /* this */
            iconst_0
            putfield android.app.UiAutomation.mIsConnecting:Z
        32: .line 260
            aload 9
            athrow
        33: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.app.UiAutomation.mIsConnecting:Z
        end local 3 // long startTimeMillis
        34: .line 240
            aload 2
            monitorexit
        35: goto 38
      StackMap locals: android.app.UiAutomation int java.lang.Object
      StackMap stack: java.lang.Throwable
        36: aload 2
            monitorexit
        37: athrow
        38: .line 262
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int flags
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   39     0                 this  Landroid/app/UiAutomation;
            0   39     1                flags  I
           17   18     2                   re  Landroid/os/RemoteException;
           20   34     3      startTimeMillis  J
           23   29     5    elapsedTimeMillis  J
           24   29     7  remainingTimeMillis  J
      Exception table:
        from    to  target  type
           1     4      11  any
           5    10      11  any
          11    12      11  any
          13    15      16  Class android.os.RemoteException
          26    27      28  Class java.lang.InterruptedException
          20    30      30  any
          19    35      36  any
          36    37      36  any
    MethodParameters:
       Name  Flags
      flags  

  public int getFlags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 272
            aload 0 /* this */
            getfield android.app.UiAutomation.mFlags:I
            ireturn
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/UiAutomation;

  public void disconnect();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 281
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 282
            aload 0 /* this */
            getfield android.app.UiAutomation.mIsConnecting:Z
            ifeq 5
         2: .line 283
            new java.lang.IllegalStateException
            dup
         3: .line 284
            ldc "Cannot call disconnect() while connecting!"
         4: .line 283
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 286
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         6: .line 287
            aload 0 /* this */
            iconst_m1
            putfield android.app.UiAutomation.mConnectionId:I
         7: .line 281
            aload 1
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 1
            monitorexit
        10: athrow
        11: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            invokeinterface android.app.IUiAutomationConnection.disconnect:()V
        12: .line 292
            goto 19
      StackMap locals:
      StackMap stack: android.os.RemoteException
        13: astore 1 /* re */
        start local 1 // android.os.RemoteException re
        14: .line 293
            new java.lang.RuntimeException
            dup
            ldc "Error while disconnecting UiAutomation"
            aload 1 /* re */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // android.os.RemoteException re
        15: .line 294
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        16: .line 295
            aload 0 /* this */
            getfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
            invokevirtual android.os.HandlerThread.quit:()Z
            pop
        17: .line 296
            aload 0 /* this */
            aconst_null
            putfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
        18: .line 297
            aload 2
            athrow
        19: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
            invokevirtual android.os.HandlerThread.quit:()Z
            pop
        20: .line 296
            aload 0 /* this */
            aconst_null
            putfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
        21: .line 298
            return
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Landroid/app/UiAutomation;
           14   15     1    re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
          11    12      13  Class android.os.RemoteException
          11    15      15  any

  public int getConnectionId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 308
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 309
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 310
            aload 0 /* this */
            getfield android.app.UiAutomation.mConnectionId:I
            aload 1
            monitorexit
         3: ireturn
         4: .line 308
      StackMap locals: android.app.UiAutomation java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         5: athrow
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/app/UiAutomation;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public boolean isDestroyed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 322
            aload 0 /* this */
            getfield android.app.UiAutomation.mIsDestroyed:Z
            ireturn
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/UiAutomation;

  public void setOnAccessibilityEventListener(android.app.UiAutomation$OnAccessibilityEventListener);
    descriptor: (Landroid/app/UiAutomation$OnAccessibilityEventListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // android.app.UiAutomation$OnAccessibilityEventListener listener
         0: .line 332
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 333
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.app.UiAutomation.mOnAccessibilityEventListener:Landroid/app/UiAutomation$OnAccessibilityEventListener;
         2: .line 332
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation android.app.UiAutomation$OnAccessibilityEventListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 335
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.app.UiAutomation$OnAccessibilityEventListener listener
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/app/UiAutomation;
            0    7     1  listener  Landroid/app/UiAutomation$OnAccessibilityEventListener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 345
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.disconnect:()V
         1: .line 346
            aload 0 /* this */
            iconst_1
            putfield android.app.UiAutomation.mIsDestroyed:Z
         2: .line 347
            return
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/app/UiAutomation;

  public final boolean performGlobalAction(int);
    descriptor: (I)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // int action
         0: .line 364
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 365
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 366
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
            pop
         3: .line 367
            aload 0 /* this */
            getfield android.app.UiAutomation.mConnectionId:I
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getConnection:(I)Landroid/accessibilityservice/IAccessibilityServiceConnection;
         4: .line 366
            astore 2 /* connection */
        start local 2 // android.accessibilityservice.IAccessibilityServiceConnection connection
         5: .line 364
            aload 3
            monitorexit
         6: goto 9
        end local 2 // android.accessibilityservice.IAccessibilityServiceConnection connection
      StackMap locals: android.app.UiAutomation int top java.lang.Object
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
        start local 2 // android.accessibilityservice.IAccessibilityServiceConnection connection
         9: .line 370
      StackMap locals: android.app.UiAutomation int android.accessibilityservice.IAccessibilityServiceConnection
      StackMap stack:
            aload 2 /* connection */
            ifnull 14
        10: .line 372
            aload 2 /* connection */
            iload 1 /* action */
            invokeinterface android.accessibilityservice.IAccessibilityServiceConnection.performGlobalAction:(I)Z
        11: ireturn
        12: .line 373
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 3 /* re */
        start local 3 // android.os.RemoteException re
        13: .line 374
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error while calling performGlobalAction"
            aload 3 /* re */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 3 // android.os.RemoteException re
        14: .line 377
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // android.accessibilityservice.IAccessibilityServiceConnection connection
        end local 1 // int action
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Landroid/app/UiAutomation;
            0   15     1      action  I
            5    7     2  connection  Landroid/accessibilityservice/IAccessibilityServiceConnection;
            9   15     2  connection  Landroid/accessibilityservice/IAccessibilityServiceConnection;
           13   14     3          re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
          10    11      12  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      action  

  public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
    descriptor: (I)Landroid/view/accessibility/AccessibilityNodeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // int focus
         0: .line 398
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
            aload 0 /* this */
            getfield android.app.UiAutomation.mConnectionId:I
         1: .line 399
            bipush -2
            getstatic android.view.accessibility.AccessibilityNodeInfo.ROOT_NODE_ID:J
            iload 1 /* focus */
         2: .line 398
            invokevirtual android.view.accessibility.AccessibilityInteractionClient.findFocus:(IIJI)Landroid/view/accessibility/AccessibilityNodeInfo;
            areturn
        end local 1 // int focus
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Landroid/app/UiAutomation;
            0    3     1  focus  I
    MethodParameters:
       Name  Flags
      focus  

  public final android.accessibilityservice.AccessibilityServiceInfo getServiceInfo();
    descriptor: ()Landroid/accessibilityservice/AccessibilityServiceInfo;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 413
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 414
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 415
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
            pop
         3: .line 416
            aload 0 /* this */
            getfield android.app.UiAutomation.mConnectionId:I
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getConnection:(I)Landroid/accessibilityservice/IAccessibilityServiceConnection;
         4: .line 415
            astore 1 /* connection */
        start local 1 // android.accessibilityservice.IAccessibilityServiceConnection connection
         5: .line 413
            aload 2
            monitorexit
         6: goto 9
        end local 1 // android.accessibilityservice.IAccessibilityServiceConnection connection
      StackMap locals: android.app.UiAutomation top java.lang.Object
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
        start local 1 // android.accessibilityservice.IAccessibilityServiceConnection connection
         9: .line 419
      StackMap locals: android.app.UiAutomation android.accessibilityservice.IAccessibilityServiceConnection
      StackMap stack:
            aload 1 /* connection */
            ifnull 14
        10: .line 421
            aload 1 /* connection */
            invokeinterface android.accessibilityservice.IAccessibilityServiceConnection.getServiceInfo:()Landroid/accessibilityservice/AccessibilityServiceInfo;
        11: areturn
        12: .line 422
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* re */
        start local 2 // android.os.RemoteException re
        13: .line 423
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error while getting AccessibilityServiceInfo"
            aload 2 /* re */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException re
        14: .line 426
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // android.accessibilityservice.IAccessibilityServiceConnection connection
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Landroid/app/UiAutomation;
            5    7     1  connection  Landroid/accessibilityservice/IAccessibilityServiceConnection;
            9   15     1  connection  Landroid/accessibilityservice/IAccessibilityServiceConnection;
           13   14     2          re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
          10    11      12  Class android.os.RemoteException

  public final void setServiceInfo(android.accessibilityservice.AccessibilityServiceInfo);
    descriptor: (Landroid/accessibilityservice/AccessibilityServiceInfo;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // android.accessibilityservice.AccessibilityServiceInfo info
         0: .line 439
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 440
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 441
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
            invokevirtual android.view.accessibility.AccessibilityInteractionClient.clearCache:()V
         3: .line 442
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
            pop
         4: .line 443
            aload 0 /* this */
            getfield android.app.UiAutomation.mConnectionId:I
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getConnection:(I)Landroid/accessibilityservice/IAccessibilityServiceConnection;
         5: .line 442
            astore 2 /* connection */
        start local 2 // android.accessibilityservice.IAccessibilityServiceConnection connection
         6: .line 439
            aload 3
            monitorexit
         7: goto 10
        end local 2 // android.accessibilityservice.IAccessibilityServiceConnection connection
      StackMap locals: android.app.UiAutomation android.accessibilityservice.AccessibilityServiceInfo top java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        start local 2 // android.accessibilityservice.IAccessibilityServiceConnection connection
        10: .line 446
      StackMap locals: android.app.UiAutomation android.accessibilityservice.AccessibilityServiceInfo android.accessibilityservice.IAccessibilityServiceConnection
      StackMap stack:
            aload 2 /* connection */
            ifnull 15
        11: .line 448
            aload 2 /* connection */
            aload 1 /* info */
            invokeinterface android.accessibilityservice.IAccessibilityServiceConnection.setServiceInfo:(Landroid/accessibilityservice/AccessibilityServiceInfo;)V
        12: .line 449
            goto 15
      StackMap locals:
      StackMap stack: android.os.RemoteException
        13: astore 3 /* re */
        start local 3 // android.os.RemoteException re
        14: .line 450
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error while setting AccessibilityServiceInfo"
            aload 3 /* re */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 3 // android.os.RemoteException re
        15: .line 453
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.accessibilityservice.IAccessibilityServiceConnection connection
        end local 1 // android.accessibilityservice.AccessibilityServiceInfo info
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Landroid/app/UiAutomation;
            0   16     1        info  Landroid/accessibilityservice/AccessibilityServiceInfo;
            6    8     2  connection  Landroid/accessibilityservice/IAccessibilityServiceConnection;
           10   16     2  connection  Landroid/accessibilityservice/IAccessibilityServiceConnection;
           14   15     3          re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any
          11    12      13  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      info  

  public java.util.List<android.view.accessibility.AccessibilityWindowInfo> getWindows();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 473
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 474
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 475
            aload 0 /* this */
            getfield android.app.UiAutomation.mConnectionId:I
            istore 1 /* connectionId */
        start local 1 // int connectionId
         3: .line 473
            aload 2
            monitorexit
         4: goto 7
        end local 1 // int connectionId
      StackMap locals: android.app.UiAutomation top java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
        start local 1 // int connectionId
         7: .line 478
      StackMap locals: android.app.UiAutomation int
      StackMap stack:
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
         8: .line 479
            iload 1 /* connectionId */
            invokevirtual android.view.accessibility.AccessibilityInteractionClient.getWindows:(I)Ljava/util/List;
         9: .line 478
            areturn
        end local 1 // int connectionId
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Landroid/app/UiAutomation;
            3    5     1  connectionId  I
            7   10     1  connectionId  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Signature: ()Ljava/util/List<Landroid/view/accessibility/AccessibilityWindowInfo;>;

  public android.view.accessibility.AccessibilityNodeInfo getRootInActiveWindow();
    descriptor: ()Landroid/view/accessibility/AccessibilityNodeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 489
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 490
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 491
            aload 0 /* this */
            getfield android.app.UiAutomation.mConnectionId:I
            istore 1 /* connectionId */
        start local 1 // int connectionId
         3: .line 489
            aload 2
            monitorexit
         4: goto 7
        end local 1 // int connectionId
      StackMap locals: android.app.UiAutomation top java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
        start local 1 // int connectionId
         7: .line 494
      StackMap locals: android.app.UiAutomation int
      StackMap stack:
            invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
         8: .line 495
            iload 1 /* connectionId */
            invokevirtual android.view.accessibility.AccessibilityInteractionClient.getRootInActiveWindow:(I)Landroid/view/accessibility/AccessibilityNodeInfo;
         9: .line 494
            areturn
        end local 1 // int connectionId
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Landroid/app/UiAutomation;
            3    5     1  connectionId  I
            7   10     1  connectionId  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  public boolean injectInputEvent(android.view.InputEvent, boolean);
    descriptor: (Landroid/view/InputEvent;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.app.UiAutomation this
        start local 1 // android.view.InputEvent event
        start local 2 // boolean sync
         0: .line 508
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 509
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 508
            aload 3
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation android.view.InputEvent int java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 3
            monitorexit
         5: athrow
         6: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            aload 1 /* event */
            iload 2 /* sync */
            invokeinterface android.app.IUiAutomationConnection.injectInputEvent:(Landroid/view/InputEvent;Z)Z
         7: ireturn
         8: .line 517
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 3 /* re */
        start local 3 // android.os.RemoteException re
         9: .line 518
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error while injecting input event!"
            aload 3 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 3 // android.os.RemoteException re
        10: .line 520
            iconst_0
            ireturn
        end local 2 // boolean sync
        end local 1 // android.view.InputEvent event
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Landroid/app/UiAutomation;
            0   11     1  event  Landroid/view/InputEvent;
            0   11     2   sync  Z
            9   10     3     re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           6     7       8  Class android.os.RemoteException
    MethodParameters:
       Name  Flags
      event  
      sync   

  public boolean setRotation(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // int rotation
         0: .line 540
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 541
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 540
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation int java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 543
      StackMap locals:
      StackMap stack:
            iload 1 /* rotation */
            tableswitch { // -2 - 3
                   -2: 7
                   -1: 7
                    0: 7
                    1: 7
                    2: 7
                    3: 7
              default: 12
          }
         7: .line 552
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            iload 1 /* rotation */
            invokeinterface android.app.IUiAutomationConnection.setRotation:(I)Z
            pop
         8: .line 553
            iconst_1
            ireturn
         9: .line 554
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* re */
        start local 2 // android.os.RemoteException re
        10: .line 555
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error while setting rotation!"
            aload 2 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException re
        11: .line 557
            iconst_0
            ireturn
        12: .line 559
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid rotation."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int rotation
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Landroid/app/UiAutomation;
            0   13     1  rotation  I
           10   11     2        re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           7     8       9  Class android.os.RemoteException
    MethodParameters:
          Name  Flags
      rotation  

  public android.view.accessibility.AccessibilityEvent executeAndWaitForEvent(java.lang.Runnable, android.app.UiAutomation$AccessibilityEventFilter, long);
    descriptor: (Ljava/lang/Runnable;Landroid/app/UiAutomation$AccessibilityEventFilter;J)Landroid/view/accessibility/AccessibilityEvent;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=20, args_size=4
        start local 0 // android.app.UiAutomation this
        start local 1 // java.lang.Runnable command
        start local 2 // android.app.UiAutomation$AccessibilityEventFilter filter
        start local 3 // long timeoutMillis
         0: .line 581
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         1: .line 582
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 583
            aload 0 /* this */
            getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         3: .line 585
            aload 0 /* this */
            iconst_1
            putfield android.app.UiAutomation.mWaitingForEventDelivery:Z
         4: .line 581
            aload 5
            monitorexit
         5: goto 8
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 5
            monitorexit
         7: athrow
         8: .line 593
      StackMap locals:
      StackMap stack:
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lstore 5 /* executionStartTimeMillis */
        start local 5 // long executionStartTimeMillis
         9: .line 595
            aload 1 /* command */
            invokeinterface java.lang.Runnable.run:()V
        10: .line 597
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* receivedEvents */
        start local 7 // java.util.List receivedEvents
        11: .line 602
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lstore 8 /* startTimeMillis */
        start local 8 // long startTimeMillis
        12: .line 604
      StackMap locals: long java.util.List long
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* localEvents */
        start local 10 // java.util.List localEvents
        13: .line 605
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 11
            monitorenter
        14: .line 606
            aload 10 /* localEvents */
            aload 0 /* this */
            getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        15: .line 607
            aload 0 /* this */
            getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
        16: .line 605
            aload 11
            monitorexit
        17: goto 41
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List java.lang.Object
      StackMap stack: java.lang.Throwable
        18: aload 11
            monitorexit
        19: athrow
        20: .line 611
      StackMap locals:
      StackMap stack:
            aload 10 /* localEvents */
            iconst_0
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            checkcast android.view.accessibility.AccessibilityEvent
            astore 11 /* event */
        start local 11 // android.view.accessibility.AccessibilityEvent event
        21: .line 613
            aload 11 /* event */
            invokevirtual android.view.accessibility.AccessibilityEvent.getEventTime:()J
            lload 5 /* executionStartTimeMillis */
            lcmp
            ifge 23
        22: .line 614
            goto 41
        23: .line 616
      StackMap locals: android.view.accessibility.AccessibilityEvent
      StackMap stack:
            aload 2 /* filter */
            aload 11 /* event */
            invokeinterface android.app.UiAutomation$AccessibilityEventFilter.accept:(Landroid/view/accessibility/AccessibilityEvent;)Z
            ifeq 40
        24: .line 617
            aload 11 /* event */
            astore 17
        25: .line 639
            aload 7 /* receivedEvents */
            invokeinterface java.util.List.size:()I
            istore 18 /* size */
        start local 18 // int size
        26: .line 640
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        27: goto 30
        28: .line 641
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List android.view.accessibility.AccessibilityEvent top top top top top android.view.accessibility.AccessibilityEvent int int
      StackMap stack:
            aload 7 /* receivedEvents */
            iload 19 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.view.accessibility.AccessibilityEvent
            invokevirtual android.view.accessibility.AccessibilityEvent.recycle:()V
        29: .line 640
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 19 /* i */
            iload 18 /* size */
            if_icmplt 28
        end local 19 // int i
        31: .line 644
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 19
            monitorenter
        32: .line 645
            aload 0 /* this */
            iconst_0
            putfield android.app.UiAutomation.mWaitingForEventDelivery:Z
        33: .line 646
            aload 0 /* this */
            getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
        34: .line 647
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        35: .line 644
            aload 19
            monitorexit
        36: goto 39
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List android.view.accessibility.AccessibilityEvent top top top top top android.view.accessibility.AccessibilityEvent int java.lang.Object
      StackMap stack: java.lang.Throwable
        37: aload 19
            monitorexit
        38: athrow
        end local 18 // int size
        39: .line 617
      StackMap locals:
      StackMap stack:
            aload 17
            areturn
        40: .line 619
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List android.view.accessibility.AccessibilityEvent
      StackMap stack:
            aload 7 /* receivedEvents */
            aload 11 /* event */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // android.view.accessibility.AccessibilityEvent event
        41: .line 610
      StackMap locals:
      StackMap stack:
            aload 10 /* localEvents */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 20
        42: .line 622
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lload 8 /* startTimeMillis */
            lsub
            lstore 11 /* elapsedTimeMillis */
        start local 11 // long elapsedTimeMillis
        43: .line 623
            lload 3 /* timeoutMillis */
            lload 11 /* elapsedTimeMillis */
            lsub
            lstore 13 /* remainingTimeMillis */
        start local 13 // long remainingTimeMillis
        44: .line 624
            lload 13 /* remainingTimeMillis */
            lconst_0
            lcmp
            ifgt 48
        45: .line 625
            new java.util.concurrent.TimeoutException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected event not received within: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        46: .line 626
            lload 3 /* timeoutMillis */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " ms among: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* receivedEvents */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        47: .line 625
            invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
            athrow
        48: .line 628
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 15
            monitorenter
        49: .line 629
            aload 0 /* this */
            getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 53
        50: .line 631
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            lload 13 /* remainingTimeMillis */
            invokevirtual java.lang.Object.wait:(J)V
        51: .line 632
            goto 53
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List long long java.lang.Object
      StackMap stack: java.lang.InterruptedException
        52: pop
        53: .line 628
      StackMap locals:
      StackMap stack:
            aload 15
            monitorexit
        54: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        55: aload 15
            monitorexit
        56: athrow
        end local 13 // long remainingTimeMillis
        end local 11 // long elapsedTimeMillis
        end local 10 // java.util.List localEvents
        end local 8 // long startTimeMillis
        57: .line 638
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List
      StackMap stack: java.lang.Throwable
            astore 16
        58: .line 639
            aload 7 /* receivedEvents */
            invokeinterface java.util.List.size:()I
            istore 18 /* size */
        start local 18 // int size
        59: .line 640
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        60: goto 63
        61: .line 641
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List top top top top top top top top java.lang.Throwable top int int
      StackMap stack:
            aload 7 /* receivedEvents */
            iload 19 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.view.accessibility.AccessibilityEvent
            invokevirtual android.view.accessibility.AccessibilityEvent.recycle:()V
        62: .line 640
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
        63: iload 19 /* i */
            iload 18 /* size */
            if_icmplt 61
        end local 19 // int i
        64: .line 644
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 19
            monitorenter
        65: .line 645
            aload 0 /* this */
            iconst_0
            putfield android.app.UiAutomation.mWaitingForEventDelivery:Z
        66: .line 646
            aload 0 /* this */
            getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
        67: .line 647
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        68: .line 644
            aload 19
            monitorexit
        69: goto 72
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List top top top top top top top top java.lang.Throwable top int java.lang.Object
      StackMap stack: java.lang.Throwable
        70: aload 19
            monitorexit
        71: athrow
        end local 18 // int size
        72: .line 649
      StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 16
            athrow
        end local 7 // java.util.List receivedEvents
        end local 5 // long executionStartTimeMillis
        end local 3 // long timeoutMillis
        end local 2 // android.app.UiAutomation$AccessibilityEventFilter filter
        end local 1 // java.lang.Runnable command
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   73     0                      this  Landroid/app/UiAutomation;
            0   73     1                   command  Ljava/lang/Runnable;
            0   73     2                    filter  Landroid/app/UiAutomation$AccessibilityEventFilter;
            0   73     3             timeoutMillis  J
            9   73     5  executionStartTimeMillis  J
           11   73     7            receivedEvents  Ljava/util/List<Landroid/view/accessibility/AccessibilityEvent;>;
           12   57     8           startTimeMillis  J
           13   57    10               localEvents  Ljava/util/List<Landroid/view/accessibility/AccessibilityEvent;>;
           21   41    11                     event  Landroid/view/accessibility/AccessibilityEvent;
           43   57    11         elapsedTimeMillis  J
           44   57    13       remainingTimeMillis  J
           26   39    18                      size  I
           59   72    18                      size  I
           27   31    19                         i  I
           60   64    19                         i  I
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
          14    17      18  any
          18    19      18  any
          32    36      37  any
          37    38      37  any
          50    51      52  Class java.lang.InterruptedException
          49    54      55  any
          55    56      55  any
          11    25      57  any
          40    57      57  any
          65    69      70  any
          70    71      70  any
    Exceptions:
      throws java.util.concurrent.TimeoutException
    MethodParameters:
               Name  Flags
      command        
      filter         
      timeoutMillis  

  public void waitForIdle(long, long);
    descriptor: (JJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=18, args_size=3
        start local 0 // android.app.UiAutomation this
        start local 1 // long idleTimeoutMillis
        start local 3 // long globalTimeoutMillis
         0: .line 668
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         1: .line 669
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 671
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lstore 6 /* startTimeMillis */
        start local 6 // long startTimeMillis
         3: .line 672
            aload 0 /* this */
            getfield android.app.UiAutomation.mLastEventTimeMillis:J
            lconst_0
            lcmp
            ifgt 5
         4: .line 673
            aload 0 /* this */
            lload 6 /* startTimeMillis */
            putfield android.app.UiAutomation.mLastEventTimeMillis:J
         5: .line 677
      StackMap locals: java.lang.Object long
      StackMap stack:
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lstore 8 /* currentTimeMillis */
        start local 8 // long currentTimeMillis
         6: .line 679
            lload 8 /* currentTimeMillis */
            lload 6 /* startTimeMillis */
            lsub
            lstore 10 /* elapsedGlobalTimeMillis */
        start local 10 // long elapsedGlobalTimeMillis
         7: .line 681
            lload 3 /* globalTimeoutMillis */
            lload 10 /* elapsedGlobalTimeMillis */
            lsub
         8: .line 680
            lstore 12 /* remainingGlobalTimeMillis */
        start local 12 // long remainingGlobalTimeMillis
         9: .line 682
            lload 12 /* remainingGlobalTimeMillis */
            lconst_0
            lcmp
            ifgt 14
        10: .line 683
            new java.util.concurrent.TimeoutException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No idle state with idle timeout: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 684
            lload 1 /* idleTimeoutMillis */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " within global timeout: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 685
            lload 3 /* globalTimeoutMillis */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 683
            invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 688
      StackMap locals: long long long
      StackMap stack:
            lload 8 /* currentTimeMillis */
            aload 0 /* this */
            getfield android.app.UiAutomation.mLastEventTimeMillis:J
            lsub
            lstore 14 /* elapsedIdleTimeMillis */
        start local 14 // long elapsedIdleTimeMillis
        15: .line 689
            lload 1 /* idleTimeoutMillis */
            lload 14 /* elapsedIdleTimeMillis */
            lsub
            lstore 16 /* remainingIdleTimeMillis */
        start local 16 // long remainingIdleTimeMillis
        16: .line 690
            lload 16 /* remainingIdleTimeMillis */
            lconst_0
            lcmp
            ifgt 19
        17: .line 691
            aload 5
            monitorexit
        18: return
        19: .line 694
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            lload 16 /* remainingIdleTimeMillis */
            invokevirtual java.lang.Object.wait:(J)V
        20: .line 695
            goto 5
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        21: pop
        end local 16 // long remainingIdleTimeMillis
        end local 14 // long elapsedIdleTimeMillis
        end local 12 // long remainingGlobalTimeMillis
        end local 10 // long elapsedGlobalTimeMillis
        end local 8 // long currentTimeMillis
        22: .line 676
            goto 5
        end local 6 // long startTimeMillis
        23: .line 668
      StackMap locals: android.app.UiAutomation long long java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        24: athrow
        end local 3 // long globalTimeoutMillis
        end local 1 // long idleTimeoutMillis
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   25     0                       this  Landroid/app/UiAutomation;
            0   25     1          idleTimeoutMillis  J
            0   25     3        globalTimeoutMillis  J
            3   23     6            startTimeMillis  J
            6   22     8          currentTimeMillis  J
            7   22    10    elapsedGlobalTimeMillis  J
            9   22    12  remainingGlobalTimeMillis  J
           15   22    14      elapsedIdleTimeMillis  J
           16   22    16    remainingIdleTimeMillis  J
      Exception table:
        from    to  target  type
          19    20      21  Class java.lang.InterruptedException
           1    18      23  any
          19    24      23  any
    Exceptions:
      throws java.util.concurrent.TimeoutException
    MethodParameters:
                     Name  Flags
      idleTimeoutMillis    
      globalTimeoutMillis  

  public android.graphics.Bitmap takeScreenshot();
    descriptor: ()Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 708
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 709
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 708
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 711
      StackMap locals:
      StackMap stack:
            invokestatic android.hardware.display.DisplayManagerGlobal.getInstance:()Landroid/hardware/display/DisplayManagerGlobal;
         7: .line 712
            iconst_0
            invokevirtual android.hardware.display.DisplayManagerGlobal.getRealDisplay:(I)Landroid/view/Display;
         8: .line 711
            astore 1 /* display */
        start local 1 // android.view.Display display
         9: .line 713
            new android.graphics.Point
            dup
            invokespecial android.graphics.Point.<init>:()V
            astore 2 /* displaySize */
        start local 2 // android.graphics.Point displaySize
        10: .line 714
            aload 1 /* display */
            aload 2 /* displaySize */
            invokevirtual android.view.Display.getRealSize:(Landroid/graphics/Point;)V
        11: .line 716
            aload 1 /* display */
            invokevirtual android.view.Display.getRotation:()I
            istore 3 /* rotation */
        start local 3 // int rotation
        12: .line 719
            aconst_null
            astore 4 /* screenShot */
        start local 4 // android.graphics.Bitmap screenShot
        13: .line 722
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
        14: .line 723
            new android.graphics.Rect
            dup
            iconst_0
            iconst_0
            aload 2 /* displaySize */
            getfield android.graphics.Point.x:I
            aload 2 /* displaySize */
            getfield android.graphics.Point.y:I
            invokespecial android.graphics.Rect.<init>:(IIII)V
            iload 3 /* rotation */
        15: .line 722
            invokeinterface android.app.IUiAutomationConnection.takeScreenshot:(Landroid/graphics/Rect;I)Landroid/graphics/Bitmap;
            astore 4 /* screenShot */
        16: .line 724
            aload 4 /* screenShot */
            ifnonnull 21
        17: .line 725
            aconst_null
            areturn
        18: .line 727
      StackMap locals: android.app.UiAutomation android.view.Display android.graphics.Point int android.graphics.Bitmap
      StackMap stack: android.os.RemoteException
            astore 5 /* re */
        start local 5 // android.os.RemoteException re
        19: .line 728
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error while taking screnshot!"
            aload 5 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        20: .line 729
            aconst_null
            areturn
        end local 5 // android.os.RemoteException re
        21: .line 733
      StackMap locals:
      StackMap stack:
            aload 4 /* screenShot */
            iconst_0
            invokevirtual android.graphics.Bitmap.setHasAlpha:(Z)V
        22: .line 735
            aload 4 /* screenShot */
            areturn
        end local 4 // android.graphics.Bitmap screenShot
        end local 3 // int rotation
        end local 2 // android.graphics.Point displaySize
        end local 1 // android.view.Display display
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Landroid/app/UiAutomation;
            9   23     1      display  Landroid/view/Display;
           10   23     2  displaySize  Landroid/graphics/Point;
           12   23     3     rotation  I
           13   23     4   screenShot  Landroid/graphics/Bitmap;
           19   21     5           re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
          13    17      18  Class android.os.RemoteException

  public void setRunAsMonkey(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // boolean enable
         0: .line 747
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 748
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 747
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation int java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 751
      StackMap locals:
      StackMap stack:
            invokestatic android.app.ActivityManager.getService:()Landroid/app/IActivityManager;
            iload 1 /* enable */
            invokeinterface android.app.IActivityManager.setUserIsMonkey:(Z)V
         7: .line 752
            goto 10
      StackMap locals:
      StackMap stack: android.os.RemoteException
         8: astore 2 /* re */
        start local 2 // android.os.RemoteException re
         9: .line 753
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error while setting run as monkey!"
            aload 2 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException re
        10: .line 755
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean enable
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Landroid/app/UiAutomation;
            0   11     1  enable  Z
            9   10     2      re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           6     7       8  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      enable  

  public boolean clearWindowContentFrameStats(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // int windowId
         0: .line 772
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 773
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 772
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation int java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 780
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            iload 1 /* windowId */
            invokeinterface android.app.IUiAutomationConnection.clearWindowContentFrameStats:(I)Z
         7: ireturn
         8: .line 781
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* re */
        start local 2 // android.os.RemoteException re
         9: .line 782
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error clearing window content frame stats!"
            aload 2 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException re
        10: .line 784
            iconst_0
            ireturn
        end local 1 // int windowId
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Landroid/app/UiAutomation;
            0   11     1  windowId  I
            9   10     2        re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           6     7       8  Class android.os.RemoteException
    MethodParameters:
          Name  Flags
      windowId  

  public android.view.WindowContentFrameStats getWindowContentFrameStats(int);
    descriptor: (I)Landroid/view/WindowContentFrameStats;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // int windowId
         0: .line 817
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 818
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 817
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation int java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            iload 1 /* windowId */
            invokeinterface android.app.IUiAutomationConnection.getWindowContentFrameStats:(I)Landroid/view/WindowContentFrameStats;
         7: areturn
         8: .line 826
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* re */
        start local 2 // android.os.RemoteException re
         9: .line 827
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error getting window content frame stats!"
            aload 2 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException re
        10: .line 829
            aconst_null
            areturn
        end local 1 // int windowId
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Landroid/app/UiAutomation;
            0   11     1  windowId  I
            9   10     2        re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           6     7       8  Class android.os.RemoteException
    MethodParameters:
          Name  Flags
      windowId  

  public void clearWindowAnimationFrameStats();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 842
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 843
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 842
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            invokeinterface android.app.IUiAutomationConnection.clearWindowAnimationFrameStats:()V
         7: .line 851
            goto 10
      StackMap locals:
      StackMap stack: android.os.RemoteException
         8: astore 1 /* re */
        start local 1 // android.os.RemoteException re
         9: .line 852
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error clearing window animation frame stats!"
            aload 1 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 1 // android.os.RemoteException re
        10: .line 854
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Landroid/app/UiAutomation;
            9   10     1    re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           6     7       8  Class android.os.RemoteException

  public android.view.WindowAnimationFrameStats getWindowAnimationFrameStats();
    descriptor: ()Landroid/view/WindowAnimationFrameStats;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 884
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 885
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 884
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 892
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            invokeinterface android.app.IUiAutomationConnection.getWindowAnimationFrameStats:()Landroid/view/WindowAnimationFrameStats;
         7: areturn
         8: .line 893
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 1 /* re */
        start local 1 // android.os.RemoteException re
         9: .line 894
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "Error getting window animation frame stats!"
            aload 1 /* re */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 1 // android.os.RemoteException re
        10: .line 896
            aconst_null
            areturn
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Landroid/app/UiAutomation;
            9   10     1    re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           6     7       8  Class android.os.RemoteException

  public void grantRuntimePermission(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.app.UiAutomation this
        start local 1 // java.lang.String packageName
        start local 2 // java.lang.String permission
         0: .line 906
            aload 0 /* this */
            aload 1 /* packageName */
            aload 2 /* permission */
            invokestatic android.os.Process.myUserHandle:()Landroid/os/UserHandle;
            invokevirtual android.app.UiAutomation.grantRuntimePermissionAsUser:(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
         1: .line 907
            return
        end local 2 // java.lang.String permission
        end local 1 // java.lang.String packageName
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/app/UiAutomation;
            0    2     1  packageName  Ljava/lang/String;
            0    2     2   permission  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      packageName  
      permission   

  public boolean grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.app.UiAutomation this
        start local 1 // java.lang.String packageName
        start local 2 // java.lang.String permission
        start local 3 // android.os.UserHandle userHandle
         0: .line 918
            aload 0 /* this */
            aload 1 /* packageName */
            aload 2 /* permission */
            aload 3 /* userHandle */
            invokevirtual android.app.UiAutomation.grantRuntimePermissionAsUser:(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
         1: .line 919
            iconst_1
            ireturn
        end local 3 // android.os.UserHandle userHandle
        end local 2 // java.lang.String permission
        end local 1 // java.lang.String packageName
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/app/UiAutomation;
            0    2     1  packageName  Ljava/lang/String;
            0    2     2   permission  Ljava/lang/String;
            0    2     3   userHandle  Landroid/os/UserHandle;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      packageName  
      permission   
      userHandle   

  public void grantRuntimePermissionAsUser(java.lang.String, java.lang.String, android.os.UserHandle);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // android.app.UiAutomation this
        start local 1 // java.lang.String packageName
        start local 2 // java.lang.String permission
        start local 3 // android.os.UserHandle userHandle
         0: .line 930
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 931
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 930
            aload 4
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation java.lang.String java.lang.String android.os.UserHandle java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 4
            monitorexit
         5: athrow
         6: .line 938
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            aload 1 /* packageName */
         7: .line 939
            aload 2 /* permission */
            aload 3 /* userHandle */
            invokevirtual android.os.UserHandle.getIdentifier:()I
         8: .line 938
            invokeinterface android.app.IUiAutomationConnection.grantRuntimePermission:(Ljava/lang/String;Ljava/lang/String;I)V
         9: .line 940
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Exception
        10: astore 4 /* e */
        start local 4 // java.lang.Exception e
        11: .line 941
            new java.lang.SecurityException
            dup
            ldc "Error granting runtime permission"
            aload 4 /* e */
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        12: .line 943
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.os.UserHandle userHandle
        end local 2 // java.lang.String permission
        end local 1 // java.lang.String packageName
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Landroid/app/UiAutomation;
            0   13     1  packageName  Ljava/lang/String;
            0   13     2   permission  Ljava/lang/String;
            0   13     3   userHandle  Landroid/os/UserHandle;
           11   12     4            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           6     9      10  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      packageName  
      permission   
      userHandle   

  public void revokeRuntimePermission(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.app.UiAutomation this
        start local 1 // java.lang.String packageName
        start local 2 // java.lang.String permission
         0: .line 952
            aload 0 /* this */
            aload 1 /* packageName */
            aload 2 /* permission */
            invokestatic android.os.Process.myUserHandle:()Landroid/os/UserHandle;
            invokevirtual android.app.UiAutomation.revokeRuntimePermissionAsUser:(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
         1: .line 953
            return
        end local 2 // java.lang.String permission
        end local 1 // java.lang.String packageName
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/app/UiAutomation;
            0    2     1  packageName  Ljava/lang/String;
            0    2     2   permission  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      packageName  
      permission   

  public boolean revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.app.UiAutomation this
        start local 1 // java.lang.String packageName
        start local 2 // java.lang.String permission
        start local 3 // android.os.UserHandle userHandle
         0: .line 964
            aload 0 /* this */
            aload 1 /* packageName */
            aload 2 /* permission */
            aload 3 /* userHandle */
            invokevirtual android.app.UiAutomation.revokeRuntimePermissionAsUser:(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
         1: .line 965
            iconst_1
            ireturn
        end local 3 // android.os.UserHandle userHandle
        end local 2 // java.lang.String permission
        end local 1 // java.lang.String packageName
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/app/UiAutomation;
            0    2     1  packageName  Ljava/lang/String;
            0    2     2   permission  Ljava/lang/String;
            0    2     3   userHandle  Landroid/os/UserHandle;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      packageName  
      permission   
      userHandle   

  public void revokeRuntimePermissionAsUser(java.lang.String, java.lang.String, android.os.UserHandle);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // android.app.UiAutomation this
        start local 1 // java.lang.String packageName
        start local 2 // java.lang.String permission
        start local 3 // android.os.UserHandle userHandle
         0: .line 976
            aload 0 /* this */
            getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 977
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
         2: .line 976
            aload 4
            monitorexit
         3: goto 6
      StackMap locals: android.app.UiAutomation java.lang.String java.lang.String android.os.UserHandle java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 4
            monitorexit
         5: athrow
         6: .line 984
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
            aload 1 /* packageName */
         7: .line 985
            aload 2 /* permission */
            aload 3 /* userHandle */
            invokevirtual android.os.UserHandle.getIdentifier:()I
         8: .line 984
            invokeinterface android.app.IUiAutomationConnection.revokeRuntimePermission:(Ljava/lang/String;Ljava/lang/String;I)V
         9: .line 986
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Exception
        10: astore 4 /* e */
        start local 4 // java.lang.Exception e
        11: .line 987
            new java.lang.SecurityException
            dup
            ldc "Error granting runtime permission"
            aload 4 /* e */
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        12: .line 989
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.os.UserHandle userHandle
        end local 2 // java.lang.String permission
        end local 1 // java.lang.String packageName
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Landroid/app/UiAutomation;
            0   13     1  packageName  Ljava/lang/String;
            0   13     2   permission  Ljava/lang/String;
            0   13     3   userHandle  Landroid/os/UserHandle;
           11   12     4            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           6     9      10  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      packageName  
      permission   
      userHandle   

  public android.os.ParcelFileDescriptor executeShellCommand(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.app.UiAutomation this
         0: .line 1024
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tIoUtils cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/UiAutomation;
    MethodParameters:
         Name  Flags
      command  

  public android.os.ParcelFileDescriptor[] executeShellCommandRw(java.lang.String);
    descriptor: (Ljava/lang/String;)[Landroid/os/ParcelFileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.app.UiAutomation this
         0: .line 1074
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tIoUtils cannot be resolved\n\tIoUtils cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/UiAutomation;
    MethodParameters:
         Name  Flags
      command  

  private static float getDegreesForRotation(int);
    descriptor: (I)F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int value
         0: .line 1085
            iload 0 /* value */
            tableswitch { // 1 - 3
                    1: 1
                    2: 2
                    3: 3
              default: 4
          }
         1: .line 1087
      StackMap locals:
      StackMap stack:
            ldc 270.0
            freturn
         2: .line 1090
      StackMap locals:
      StackMap stack:
            ldc 180.0
            freturn
         3: .line 1093
      StackMap locals:
      StackMap stack:
            ldc 90.0
            freturn
         4: .line 1095
      StackMap locals:
      StackMap stack:
            fconst_0
            freturn
        end local 0 // int value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  value  I
    MethodParameters:
       Name  Flags
      value  

  private boolean isConnectedLocked();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 1101
            aload 0 /* this */
            getfield android.app.UiAutomation.mConnectionId:I
            iconst_m1
            if_icmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/app/UiAutomation;

  private void throwIfConnectedLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 1105
            aload 0 /* this */
            getfield android.app.UiAutomation.mConnectionId:I
            iconst_m1
            if_icmpeq 2
         1: .line 1106
            new java.lang.IllegalStateException
            dup
            ldc "UiAutomation not connected!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1108
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/app/UiAutomation;

  private void throwIfNotConnectedLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.app.UiAutomation this
         0: .line 1111
            aload 0 /* this */
            invokevirtual android.app.UiAutomation.isConnectedLocked:()Z
            ifne 2
         1: .line 1112
            new java.lang.IllegalStateException
            dup
            ldc "UiAutomation not connected!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1114
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/app/UiAutomation;

  private void warnIfBetterCommand(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.app.UiAutomation this
        start local 1 // java.lang.String cmd
         0: .line 1117
            aload 1 /* cmd */
            ldc "pm grant "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 1118
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "UiAutomation.grantRuntimePermission() is more robust and should be used instead of 'pm grant'"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 1120
            goto 5
      StackMap locals:
      StackMap stack:
         3: aload 1 /* cmd */
            ldc "pm revoke "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 1121
            getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
            ldc "UiAutomation.revokeRuntimePermission() is more robust and should be used instead of 'pm revoke'"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 1124
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String cmd
        end local 0 // android.app.UiAutomation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/app/UiAutomation;
            0    6     1   cmd  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cmd   
}
SourceFile: "UiAutomation.java"
NestMembers:
  android.app.UiAutomation$AccessibilityEventFilter  android.app.UiAutomation$IAccessibilityServiceClientImpl  android.app.UiAutomation$IAccessibilityServiceClientImpl$1  android.app.UiAutomation$OnAccessibilityEventListener
InnerClasses:
  public abstract AccessibilityEventFilter = android.app.UiAutomation$AccessibilityEventFilter of android.app.UiAutomation
  private IAccessibilityServiceClientImpl = android.app.UiAutomation$IAccessibilityServiceClientImpl of android.app.UiAutomation
  public abstract OnAccessibilityEventListener = android.app.UiAutomation$OnAccessibilityEventListener of android.app.UiAutomation