public final class android.hardware.input.InputManager
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.hardware.input.InputManager
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "InputManager"

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

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

  private static final int MSG_DEVICE_REMOVED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int MSG_DEVICE_CHANGED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static android.hardware.input.InputManager sInstance;
    descriptor: Landroid/hardware/input/InputManager;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final android.hardware.input.IInputManager mIm;
    descriptor: Landroid/hardware/input/IInputManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private android.util.SparseArray<android.view.InputDevice> mInputDevices;
    descriptor: Landroid/util/SparseArray;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/SparseArray<Landroid/view/InputDevice;>;

  private android.hardware.input.InputManager$InputDevicesChangedListener mInputDevicesChangedListener;
    descriptor: Landroid/hardware/input/InputManager$InputDevicesChangedListener;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.ArrayList<android.hardware.input.InputManager$InputDeviceListenerDelegate> mInputDeviceListeners;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Landroid/hardware/input/InputManager$InputDeviceListenerDelegate;>;

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

  private android.hardware.input.InputManager$TabletModeChangedListener mTabletModeChangedListener;
    descriptor: Landroid/hardware/input/InputManager$TabletModeChangedListener;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate> mOnTabletModeChangedListeners;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Landroid/hardware/input/InputManager$OnTabletModeChangedListenerDelegate;>;

  public static final java.lang.String ACTION_QUERY_KEYBOARD_LAYOUTS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS"

  public static final java.lang.String META_DATA_KEYBOARD_LAYOUTS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.hardware.input.metadata.KEYBOARD_LAYOUTS"

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

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

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

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

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

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

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

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

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

  private void <init>(android.hardware.input.IInputManager);
    descriptor: (Landroid/hardware/input/IInputManager;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.IInputManager im
         0: .line 215
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 70
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.hardware.input.InputManager.mInputDevicesLock:Ljava/lang/Object;
         2: .line 73
            aload 0 /* this */
         3: .line 74
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.hardware.input.InputManager.mInputDeviceListeners:Ljava/util/ArrayList;
         4: .line 77
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.hardware.input.InputManager.mTabletModeLock:Ljava/lang/Object;
         5: .line 216
            aload 0 /* this */
            aload 1 /* im */
            putfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
         6: .line 217
            return
        end local 1 // android.hardware.input.IInputManager im
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/hardware/input/InputManager;
            0    7     1    im  Landroid/hardware/input/IInputManager;
    MethodParameters:
      Name  Flags
      im    

  public static android.hardware.input.InputManager getInstance();
    descriptor: ()Landroid/hardware/input/InputManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 227
            ldc Landroid/hardware/input/InputManager;
            dup
            astore 0
            monitorenter
         1: .line 228
            getstatic android.hardware.input.InputManager.sInstance:Landroid/hardware/input/InputManager;
            ifnonnull 8
         2: .line 230
            new android.hardware.input.InputManager
            dup
         3: .line 231
            ldc "input"
            invokestatic android.os.ServiceManager.getServiceOrThrow:(Ljava/lang/String;)Landroid/os/IBinder;
            invokestatic android.hardware.input.IInputManager$Stub.asInterface:(Landroid/os/IBinder;)Landroid/hardware/input/IInputManager;
         4: .line 230
            invokespecial android.hardware.input.InputManager.<init>:(Landroid/hardware/input/IInputManager;)V
            putstatic android.hardware.input.InputManager.sInstance:Landroid/hardware/input/InputManager;
         5: .line 232
            goto 8
      StackMap locals: java.lang.Class
      StackMap stack: android.os.ServiceManager$ServiceNotFoundException
         6: astore 1 /* e */
        start local 1 // android.os.ServiceManager$ServiceNotFoundException e
         7: .line 233
            new java.lang.IllegalStateException
            dup
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // android.os.ServiceManager$ServiceNotFoundException e
         8: .line 236
      StackMap locals:
      StackMap stack:
            getstatic android.hardware.input.InputManager.sInstance:Landroid/hardware/input/InputManager;
            aload 0
            monitorexit
         9: areturn
        10: .line 227
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 0
            monitorexit
        11: athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            7    8     1     e  Landroid/os/ServiceManager$ServiceNotFoundException;
      Exception table:
        from    to  target  type
           2     5       6  Class android.os.ServiceManager$ServiceNotFoundException
           1     9      10  any
          10    11      10  any

  public android.view.InputDevice getInputDevice(int);
    descriptor: (I)Landroid/view/InputDevice;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int id
         0: .line 246
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevicesLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 247
            aload 0 /* this */
            invokevirtual android.hardware.input.InputManager.populateInputDevicesLocked:()V
         2: .line 249
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 1 /* id */
            invokevirtual android.util.SparseArray.indexOfKey:(I)I
            istore 3 /* index */
        start local 3 // int index
         3: .line 250
            iload 3 /* index */
            ifge 6
         4: .line 251
            aload 2
            monitorexit
         5: aconst_null
            areturn
         6: .line 254
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 3 /* index */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast android.view.InputDevice
            astore 4 /* inputDevice */
        start local 4 // android.view.InputDevice inputDevice
         7: .line 255
            aload 4 /* inputDevice */
            ifnonnull 14
         8: .line 257
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            iload 1 /* id */
            invokeinterface android.hardware.input.IInputManager.getInputDevice:(I)Landroid/view/InputDevice;
            astore 4 /* inputDevice */
         9: .line 258
            goto 12
      StackMap locals: android.hardware.input.InputManager int java.lang.Object int android.view.InputDevice
      StackMap stack: android.os.RemoteException
        10: astore 5 /* ex */
        start local 5 // android.os.RemoteException ex
        11: .line 259
            aload 5 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 5 // android.os.RemoteException ex
        12: .line 261
      StackMap locals:
      StackMap stack:
            aload 4 /* inputDevice */
            ifnull 14
        13: .line 262
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 3 /* index */
            aload 4 /* inputDevice */
            invokevirtual android.util.SparseArray.setValueAt:(ILjava/lang/Object;)V
        14: .line 265
      StackMap locals:
      StackMap stack:
            aload 4 /* inputDevice */
            aload 2
            monitorexit
        15: areturn
        end local 4 // android.view.InputDevice inputDevice
        end local 3 // int index
        16: .line 246
      StackMap locals: android.hardware.input.InputManager int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        17: athrow
        end local 1 // int id
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Landroid/hardware/input/InputManager;
            0   18     1           id  I
            3   16     3        index  I
            7   16     4  inputDevice  Landroid/view/InputDevice;
           11   12     5           ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           8     9      10  Class android.os.RemoteException
           1     5      16  any
           6    15      16  any
          16    17      16  any
    MethodParameters:
      Name  Flags
      id    

  public android.view.InputDevice getInputDeviceByDescriptor(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/view/InputDevice;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // java.lang.String descriptor
         0: .line 276
            aload 1 /* descriptor */
            ifnonnull 2
         1: .line 277
            new java.lang.IllegalArgumentException
            dup
            ldc "descriptor must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevicesLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 281
            aload 0 /* this */
            invokevirtual android.hardware.input.InputManager.populateInputDevicesLocked:()V
         4: .line 283
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.size:()I
            istore 3 /* numDevices */
        start local 3 // int numDevices
         5: .line 284
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 21
         7: .line 285
      StackMap locals: java.lang.Object int int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 4 /* i */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast android.view.InputDevice
            astore 5 /* inputDevice */
        start local 5 // android.view.InputDevice inputDevice
         8: .line 286
            aload 5 /* inputDevice */
            ifnonnull 17
         9: .line 287
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 4 /* i */
            invokevirtual android.util.SparseArray.keyAt:(I)I
            istore 6 /* id */
        start local 6 // int id
        10: .line 289
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            iload 6 /* id */
            invokeinterface android.hardware.input.IInputManager.getInputDevice:(I)Landroid/view/InputDevice;
            astore 5 /* inputDevice */
        11: .line 290
            goto 14
      StackMap locals: android.hardware.input.InputManager java.lang.String java.lang.Object int int android.view.InputDevice int
      StackMap stack: android.os.RemoteException
        12: astore 7 /* ex */
        start local 7 // android.os.RemoteException ex
        13: .line 291
            aload 7 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 7 // android.os.RemoteException ex
        14: .line 293
      StackMap locals:
      StackMap stack:
            aload 5 /* inputDevice */
            ifnonnull 16
        15: .line 294
            goto 20
        16: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 4 /* i */
            aload 5 /* inputDevice */
            invokevirtual android.util.SparseArray.setValueAt:(ILjava/lang/Object;)V
        end local 6 // int id
        17: .line 298
      StackMap locals:
      StackMap stack:
            aload 1 /* descriptor */
            aload 5 /* inputDevice */
            invokevirtual android.view.InputDevice.getDescriptor:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 299
            aload 5 /* inputDevice */
            aload 2
            monitorexit
        19: areturn
        end local 5 // android.view.InputDevice inputDevice
        20: .line 284
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* i */
            iload 3 /* numDevices */
            if_icmplt 7
        end local 4 // int i
        22: .line 302
            aload 2
            monitorexit
        23: aconst_null
            areturn
        end local 3 // int numDevices
        24: .line 280
      StackMap locals: android.hardware.input.InputManager java.lang.String java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        25: athrow
        end local 1 // java.lang.String descriptor
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0         this  Landroid/hardware/input/InputManager;
            0   26     1   descriptor  Ljava/lang/String;
            5   24     3   numDevices  I
            6   22     4            i  I
            8   20     5  inputDevice  Landroid/view/InputDevice;
           10   17     6           id  I
           13   14     7           ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          10    11      12  Class android.os.RemoteException
           3    19      24  any
          20    23      24  any
          24    25      24  any
    MethodParameters:
            Name  Flags
      descriptor  

  public int[] getInputDeviceIds();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // android.hardware.input.InputManager this
         0: .line 311
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevicesLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 312
            aload 0 /* this */
            invokevirtual android.hardware.input.InputManager.populateInputDevicesLocked:()V
         2: .line 314
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.size:()I
            istore 2 /* count */
        start local 2 // int count
         3: .line 315
            iload 2 /* count */
            newarray 10
            astore 3 /* ids */
        start local 3 // int[] ids
         4: .line 316
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 317
      StackMap locals: android.hardware.input.InputManager java.lang.Object int int[] int
      StackMap stack:
            aload 3 /* ids */
            iload 4 /* i */
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 4 /* i */
            invokevirtual android.util.SparseArray.keyAt:(I)I
            iastore
         7: .line 316
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 2 /* count */
            if_icmplt 6
        end local 4 // int i
         9: .line 319
            aload 3 /* ids */
            aload 1
            monitorexit
        10: areturn
        end local 3 // int[] ids
        end local 2 // int count
        11: .line 311
      StackMap locals: android.hardware.input.InputManager java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        12: athrow
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Landroid/hardware/input/InputManager;
            3   11     2  count  I
            4   11     3    ids  [I
            5    9     4      i  I
      Exception table:
        from    to  target  type
           1    10      11  any
          11    12      11  any

  public boolean isInputDeviceEnabled(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int id
         0: .line 334
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            iload 1 /* id */
            invokeinterface android.hardware.input.IInputManager.isInputDeviceEnabled:(I)Z
         1: ireturn
         2: .line 335
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         3: .line 336
            ldc "InputManager"
            new java.lang.StringBuilder
            dup
            ldc "Could not check enabled status of input device with id = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 337
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
        end local 1 // int id
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/hardware/input/InputManager;
            0    5     1    id  I
            3    5     2    ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      id    

  public void enableInputDevice(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int id
         0: .line 353
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            iload 1 /* id */
            invokeinterface android.hardware.input.IInputManager.enableInputDevice:(I)V
         1: .line 354
            goto 5
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         3: .line 355
            ldc "InputManager"
            new java.lang.StringBuilder
            dup
            ldc "Could not enable input device with id = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 356
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
         5: .line 358
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int id
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/hardware/input/InputManager;
            0    6     1    id  I
            3    5     2    ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      id    

  public void disableInputDevice(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int id
         0: .line 372
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            iload 1 /* id */
            invokeinterface android.hardware.input.IInputManager.disableInputDevice:(I)V
         1: .line 373
            goto 5
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         3: .line 374
            ldc "InputManager"
            new java.lang.StringBuilder
            dup
            ldc "Could not disable input device with id = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 375
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
         5: .line 377
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int id
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/hardware/input/InputManager;
            0    6     1    id  I
            3    5     2    ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      id    

  public void registerInputDeviceListener(android.hardware.input.InputManager$InputDeviceListener, android.os.Handler);
    descriptor: (Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputManager$InputDeviceListener listener
        start local 2 // android.os.Handler handler
         0: .line 390
            aload 1 /* listener */
            ifnonnull 2
         1: .line 391
            new java.lang.IllegalArgumentException
            dup
            ldc "listener must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevicesLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 395
            aload 0 /* this */
            invokevirtual android.hardware.input.InputManager.populateInputDevicesLocked:()V
         4: .line 396
            aload 0 /* this */
            aload 1 /* listener */
            invokevirtual android.hardware.input.InputManager.findInputDeviceListenerLocked:(Landroid/hardware/input/InputManager$InputDeviceListener;)I
            istore 4 /* index */
        start local 4 // int index
         5: .line 397
            iload 4 /* index */
            ifge 7
         6: .line 398
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDeviceListeners:Ljava/util/ArrayList;
            new android.hardware.input.InputManager$InputDeviceListenerDelegate
            dup
            aload 1 /* listener */
            aload 2 /* handler */
            invokespecial android.hardware.input.InputManager$InputDeviceListenerDelegate.<init>:(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // int index
         7: .line 394
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        11: .line 401
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.hardware.input.InputManager$InputDeviceListener listener
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/hardware/input/InputManager;
            0   12     1  listener  Landroid/hardware/input/InputManager$InputDeviceListener;
            0   12     2   handler  Landroid/os/Handler;
            5    7     4     index  I
      Exception table:
        from    to  target  type
           3     8       9  any
           9    10       9  any
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public void unregisterInputDeviceListener(android.hardware.input.InputManager$InputDeviceListener);
    descriptor: (Landroid/hardware/input/InputManager$InputDeviceListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputManager$InputDeviceListener listener
         0: .line 411
            aload 1 /* listener */
            ifnonnull 2
         1: .line 412
            new java.lang.IllegalArgumentException
            dup
            ldc "listener must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevicesLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 416
            aload 0 /* this */
            aload 1 /* listener */
            invokevirtual android.hardware.input.InputManager.findInputDeviceListenerLocked:(Landroid/hardware/input/InputManager$InputDeviceListener;)I
            istore 3 /* index */
        start local 3 // int index
         4: .line 417
            iload 3 /* index */
            iflt 8
         5: .line 418
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDeviceListeners:Ljava/util/ArrayList;
            iload 3 /* index */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.hardware.input.InputManager$InputDeviceListenerDelegate
            astore 4 /* d */
        start local 4 // android.hardware.input.InputManager$InputDeviceListenerDelegate d
         6: .line 419
            aload 4 /* d */
            aconst_null
            invokevirtual android.hardware.input.InputManager$InputDeviceListenerDelegate.removeCallbacksAndMessages:(Ljava/lang/Object;)V
         7: .line 420
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDeviceListeners:Ljava/util/ArrayList;
            iload 3 /* index */
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
        end local 4 // android.hardware.input.InputManager$InputDeviceListenerDelegate d
        end local 3 // int index
         8: .line 415
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 423
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.hardware.input.InputManager$InputDeviceListener listener
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Landroid/hardware/input/InputManager;
            0   13     1  listener  Landroid/hardware/input/InputManager$InputDeviceListener;
            4    8     3     index  I
            6    8     4         d  Landroid/hardware/input/InputManager$InputDeviceListenerDelegate;
      Exception table:
        from    to  target  type
           3     9      10  any
          10    11      10  any
    MethodParameters:
          Name  Flags
      listener  

  private int findInputDeviceListenerLocked(android.hardware.input.InputManager$InputDeviceListener);
    descriptor: (Landroid/hardware/input/InputManager$InputDeviceListener;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputManager$InputDeviceListener listener
         0: .line 426
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDeviceListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* numListeners */
        start local 2 // int numListeners
         1: .line 427
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 428
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDeviceListeners:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.hardware.input.InputManager$InputDeviceListenerDelegate
            getfield android.hardware.input.InputManager$InputDeviceListenerDelegate.mListener:Landroid/hardware/input/InputManager$InputDeviceListener;
            aload 1 /* listener */
            if_acmpne 5
         4: .line 429
            iload 3 /* i */
            ireturn
         5: .line 427
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            iload 2 /* numListeners */
            if_icmplt 3
        end local 3 // int i
         7: .line 432
            iconst_m1
            ireturn
        end local 2 // int numListeners
        end local 1 // android.hardware.input.InputManager$InputDeviceListener listener
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Landroid/hardware/input/InputManager;
            0    8     1      listener  Landroid/hardware/input/InputManager$InputDeviceListener;
            1    8     2  numListeners  I
            2    7     3             i  I
    MethodParameters:
          Name  Flags
      listener  

  public int isInTabletMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.hardware.input.InputManager this
         0: .line 445
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            invokeinterface android.hardware.input.IInputManager.isInTabletMode:()I
         1: ireturn
         2: .line 446
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 1 /* ex */
        start local 1 // android.os.RemoteException ex
         3: .line 447
            aload 1 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // android.os.RemoteException ex
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/hardware/input/InputManager;
            3    4     1    ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  public void registerOnTabletModeChangedListener(android.hardware.input.InputManager$OnTabletModeChangedListener, android.os.Handler);
    descriptor: (Landroid/hardware/input/InputManager$OnTabletModeChangedListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputManager$OnTabletModeChangedListener listener
        start local 2 // android.os.Handler handler
         0: .line 461
            aload 1 /* listener */
            ifnonnull 2
         1: .line 462
            new java.lang.IllegalArgumentException
            dup
            ldc "listener must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mTabletModeLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 465
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mOnTabletModeChangedListeners:Ljava/util/List;
            ifnonnull 5
         4: .line 466
            aload 0 /* this */
            invokevirtual android.hardware.input.InputManager.initializeTabletModeListenerLocked:()V
         5: .line 468
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            invokevirtual android.hardware.input.InputManager.findOnTabletModeChangedListenerLocked:(Landroid/hardware/input/InputManager$OnTabletModeChangedListener;)I
            istore 4 /* idx */
        start local 4 // int idx
         6: .line 469
            iload 4 /* idx */
            ifge 10
         7: .line 471
            new android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate
            dup
            aload 1 /* listener */
            aload 2 /* handler */
            invokespecial android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate.<init>:(Landroid/hardware/input/InputManager$OnTabletModeChangedListener;Landroid/os/Handler;)V
         8: .line 470
            astore 5 /* d */
        start local 5 // android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate d
         9: .line 472
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mOnTabletModeChangedListeners:Ljava/util/List;
            aload 5 /* d */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate d
        end local 4 // int idx
        10: .line 464
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        14: .line 475
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.hardware.input.InputManager$OnTabletModeChangedListener listener
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Landroid/hardware/input/InputManager;
            0   15     1  listener  Landroid/hardware/input/InputManager$OnTabletModeChangedListener;
            0   15     2   handler  Landroid/os/Handler;
            6   10     4       idx  I
            9   10     5         d  Landroid/hardware/input/InputManager$OnTabletModeChangedListenerDelegate;
      Exception table:
        from    to  target  type
           3    11      12  any
          12    13      12  any
    MethodParameters:
          Name  Flags
      listener  
      handler   

  public void unregisterOnTabletModeChangedListener(android.hardware.input.InputManager$OnTabletModeChangedListener);
    descriptor: (Landroid/hardware/input/InputManager$OnTabletModeChangedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputManager$OnTabletModeChangedListener listener
         0: .line 484
            aload 1 /* listener */
            ifnonnull 2
         1: .line 485
            new java.lang.IllegalArgumentException
            dup
            ldc "listener must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mTabletModeLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 488
            aload 0 /* this */
            aload 1 /* listener */
            invokevirtual android.hardware.input.InputManager.findOnTabletModeChangedListenerLocked:(Landroid/hardware/input/InputManager$OnTabletModeChangedListener;)I
            istore 3 /* idx */
        start local 3 // int idx
         4: .line 489
            iload 3 /* idx */
            iflt 7
         5: .line 490
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mOnTabletModeChangedListeners:Ljava/util/List;
            iload 3 /* idx */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            checkcast android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate
            astore 4 /* d */
        start local 4 // android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate d
         6: .line 491
            aload 4 /* d */
            aconst_null
            invokevirtual android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate.removeCallbacksAndMessages:(Ljava/lang/Object;)V
        end local 4 // android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate d
        end local 3 // int idx
         7: .line 487
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 494
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.hardware.input.InputManager$OnTabletModeChangedListener listener
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/hardware/input/InputManager;
            0   12     1  listener  Landroid/hardware/input/InputManager$OnTabletModeChangedListener;
            4    7     3       idx  I
            6    7     4         d  Landroid/hardware/input/InputManager$OnTabletModeChangedListenerDelegate;
      Exception table:
        from    to  target  type
           3     8       9  any
           9    10       9  any
    MethodParameters:
          Name  Flags
      listener  

  private void initializeTabletModeListenerLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.hardware.input.InputManager this
         0: .line 497
            new android.hardware.input.InputManager$TabletModeChangedListener
            dup
            aload 0 /* this */
            invokespecial android.hardware.input.InputManager$TabletModeChangedListener.<init>:(Landroid/hardware/input/InputManager;)V
            astore 1 /* listener */
        start local 1 // android.hardware.input.InputManager$TabletModeChangedListener listener
         1: .line 499
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* listener */
            invokeinterface android.hardware.input.IInputManager.registerTabletModeChangedListener:(Landroid/hardware/input/ITabletModeChangedListener;)V
         2: .line 500
            goto 5
      StackMap locals: android.hardware.input.InputManager android.hardware.input.InputManager$TabletModeChangedListener
      StackMap stack: android.os.RemoteException
         3: astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         4: .line 501
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
         5: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.hardware.input.InputManager.mTabletModeChangedListener:Landroid/hardware/input/InputManager$TabletModeChangedListener;
         6: .line 504
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.hardware.input.InputManager.mOnTabletModeChangedListeners:Ljava/util/List;
         7: .line 505
            return
        end local 1 // android.hardware.input.InputManager$TabletModeChangedListener listener
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/hardware/input/InputManager;
            1    8     1  listener  Landroid/hardware/input/InputManager$TabletModeChangedListener;
            4    5     2        ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  private int findOnTabletModeChangedListenerLocked(android.hardware.input.InputManager$OnTabletModeChangedListener);
    descriptor: (Landroid/hardware/input/InputManager$OnTabletModeChangedListener;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputManager$OnTabletModeChangedListener listener
         0: .line 508
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mOnTabletModeChangedListeners:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 2 /* N */
        start local 2 // int N
         1: .line 509
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 510
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mOnTabletModeChangedListeners:Ljava/util/List;
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate
            getfield android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate.mListener:Landroid/hardware/input/InputManager$OnTabletModeChangedListener;
            aload 1 /* listener */
            if_acmpne 5
         4: .line 511
            iload 3 /* i */
            ireturn
         5: .line 509
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            iload 2 /* N */
            if_icmplt 3
        end local 3 // int i
         7: .line 514
            iconst_m1
            ireturn
        end local 2 // int N
        end local 1 // android.hardware.input.InputManager$OnTabletModeChangedListener listener
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/hardware/input/InputManager;
            0    8     1  listener  Landroid/hardware/input/InputManager$OnTabletModeChangedListener;
            1    8     2         N  I
            2    7     3         i  I
    MethodParameters:
          Name  Flags
      listener  

  public android.hardware.input.KeyboardLayout[] getKeyboardLayouts();
    descriptor: ()[Landroid/hardware/input/KeyboardLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.hardware.input.InputManager this
         0: .line 531
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            invokeinterface android.hardware.input.IInputManager.getKeyboardLayouts:()[Landroid/hardware/input/KeyboardLayout;
         1: areturn
         2: .line 532
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 1 /* ex */
        start local 1 // android.os.RemoteException ex
         3: .line 533
            aload 1 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // android.os.RemoteException ex
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/hardware/input/InputManager;
            3    4     1    ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  public android.hardware.input.KeyboardLayout[] getKeyboardLayoutsForInputDevice(android.hardware.input.InputDeviceIdentifier);
    descriptor: (Landroid/hardware/input/InputDeviceIdentifier;)[Landroid/hardware/input/KeyboardLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputDeviceIdentifier identifier
         0: .line 553
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* identifier */
            invokeinterface android.hardware.input.IInputManager.getKeyboardLayoutsForInputDevice:(Landroid/hardware/input/InputDeviceIdentifier;)[Landroid/hardware/input/KeyboardLayout;
         1: areturn
         2: .line 554
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         3: .line 555
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
        end local 1 // android.hardware.input.InputDeviceIdentifier identifier
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Landroid/hardware/input/InputManager;
            0    4     1  identifier  Landroid/hardware/input/InputDeviceIdentifier;
            3    4     2          ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      identifier  

  public android.hardware.input.KeyboardLayout getKeyboardLayout(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/hardware/input/KeyboardLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // java.lang.String keyboardLayoutDescriptor
         0: .line 569
            aload 1 /* keyboardLayoutDescriptor */
            ifnonnull 2
         1: .line 570
            new java.lang.IllegalArgumentException
            dup
            ldc "keyboardLayoutDescriptor must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* keyboardLayoutDescriptor */
            invokeinterface android.hardware.input.IInputManager.getKeyboardLayout:(Ljava/lang/String;)Landroid/hardware/input/KeyboardLayout;
         3: areturn
         4: .line 575
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         5: .line 576
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
        end local 1 // java.lang.String keyboardLayoutDescriptor
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    6     0                      this  Landroid/hardware/input/InputManager;
            0    6     1  keyboardLayoutDescriptor  Ljava/lang/String;
            5    6     2                        ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException
    MethodParameters:
                          Name  Flags
      keyboardLayoutDescriptor  

  public java.lang.String getCurrentKeyboardLayoutForInputDevice(android.hardware.input.InputDeviceIdentifier);
    descriptor: (Landroid/hardware/input/InputDeviceIdentifier;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputDeviceIdentifier identifier
         0: .line 591
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* identifier */
            invokeinterface android.hardware.input.IInputManager.getCurrentKeyboardLayoutForInputDevice:(Landroid/hardware/input/InputDeviceIdentifier;)Ljava/lang/String;
         1: areturn
         2: .line 592
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         3: .line 593
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
        end local 1 // android.hardware.input.InputDeviceIdentifier identifier
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Landroid/hardware/input/InputManager;
            0    4     1  identifier  Landroid/hardware/input/InputDeviceIdentifier;
            3    4     2          ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      identifier  

  public void setCurrentKeyboardLayoutForInputDevice(android.hardware.input.InputDeviceIdentifier, java.lang.String);
    descriptor: (Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputDeviceIdentifier identifier
        start local 2 // java.lang.String keyboardLayoutDescriptor
         0: .line 612
            aload 1 /* identifier */
            ifnonnull 2
         1: .line 613
            new java.lang.IllegalArgumentException
            dup
            ldc "identifier must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 615
      StackMap locals:
      StackMap stack:
            aload 2 /* keyboardLayoutDescriptor */
            ifnonnull 4
         3: .line 616
            new java.lang.IllegalArgumentException
            dup
            ldc "keyboardLayoutDescriptor must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 620
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* identifier */
         5: .line 621
            aload 2 /* keyboardLayoutDescriptor */
         6: .line 620
            invokeinterface android.hardware.input.IInputManager.setCurrentKeyboardLayoutForInputDevice:(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
         7: .line 622
            goto 10
      StackMap locals:
      StackMap stack: android.os.RemoteException
         8: astore 3 /* ex */
        start local 3 // android.os.RemoteException ex
         9: .line 623
            aload 3 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException ex
        10: .line 625
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String keyboardLayoutDescriptor
        end local 1 // android.hardware.input.InputDeviceIdentifier identifier
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   11     0                      this  Landroid/hardware/input/InputManager;
            0   11     1                identifier  Landroid/hardware/input/InputDeviceIdentifier;
            0   11     2  keyboardLayoutDescriptor  Ljava/lang/String;
            9   10     3                        ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           4     7       8  Class android.os.RemoteException
    MethodParameters:
                          Name  Flags
      identifier                
      keyboardLayoutDescriptor  

  public java.lang.String[] getEnabledKeyboardLayoutsForInputDevice(android.hardware.input.InputDeviceIdentifier);
    descriptor: (Landroid/hardware/input/InputDeviceIdentifier;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputDeviceIdentifier identifier
         0: .line 636
            aload 1 /* identifier */
            ifnonnull 2
         1: .line 637
            new java.lang.IllegalArgumentException
            dup
            ldc "inputDeviceDescriptor must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 641
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* identifier */
            invokeinterface android.hardware.input.IInputManager.getEnabledKeyboardLayoutsForInputDevice:(Landroid/hardware/input/InputDeviceIdentifier;)[Ljava/lang/String;
         3: areturn
         4: .line 642
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         5: .line 643
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
        end local 1 // android.hardware.input.InputDeviceIdentifier identifier
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Landroid/hardware/input/InputManager;
            0    6     1  identifier  Landroid/hardware/input/InputDeviceIdentifier;
            5    6     2          ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      identifier  

  public void addKeyboardLayoutForInputDevice(android.hardware.input.InputDeviceIdentifier, java.lang.String);
    descriptor: (Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputDeviceIdentifier identifier
        start local 2 // java.lang.String keyboardLayoutDescriptor
         0: .line 661
            aload 1 /* identifier */
            ifnonnull 2
         1: .line 662
            new java.lang.IllegalArgumentException
            dup
            ldc "inputDeviceDescriptor must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 664
      StackMap locals:
      StackMap stack:
            aload 2 /* keyboardLayoutDescriptor */
            ifnonnull 4
         3: .line 665
            new java.lang.IllegalArgumentException
            dup
            ldc "keyboardLayoutDescriptor must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* identifier */
            aload 2 /* keyboardLayoutDescriptor */
            invokeinterface android.hardware.input.IInputManager.addKeyboardLayoutForInputDevice:(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
         5: .line 670
            goto 8
      StackMap locals:
      StackMap stack: android.os.RemoteException
         6: astore 3 /* ex */
        start local 3 // android.os.RemoteException ex
         7: .line 671
            aload 3 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException ex
         8: .line 673
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String keyboardLayoutDescriptor
        end local 1 // android.hardware.input.InputDeviceIdentifier identifier
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    9     0                      this  Landroid/hardware/input/InputManager;
            0    9     1                identifier  Landroid/hardware/input/InputDeviceIdentifier;
            0    9     2  keyboardLayoutDescriptor  Ljava/lang/String;
            7    8     3                        ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           4     5       6  Class android.os.RemoteException
    MethodParameters:
                          Name  Flags
      identifier                
      keyboardLayoutDescriptor  

  public void removeKeyboardLayoutForInputDevice(android.hardware.input.InputDeviceIdentifier, java.lang.String);
    descriptor: (Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.hardware.input.InputDeviceIdentifier identifier
        start local 2 // java.lang.String keyboardLayoutDescriptor
         0: .line 689
            aload 1 /* identifier */
            ifnonnull 2
         1: .line 690
            new java.lang.IllegalArgumentException
            dup
            ldc "inputDeviceDescriptor must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 692
      StackMap locals:
      StackMap stack:
            aload 2 /* keyboardLayoutDescriptor */
            ifnonnull 4
         3: .line 693
            new java.lang.IllegalArgumentException
            dup
            ldc "keyboardLayoutDescriptor must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* identifier */
            aload 2 /* keyboardLayoutDescriptor */
            invokeinterface android.hardware.input.IInputManager.removeKeyboardLayoutForInputDevice:(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
         5: .line 698
            goto 8
      StackMap locals:
      StackMap stack: android.os.RemoteException
         6: astore 3 /* ex */
        start local 3 // android.os.RemoteException ex
         7: .line 699
            aload 3 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException ex
         8: .line 701
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String keyboardLayoutDescriptor
        end local 1 // android.hardware.input.InputDeviceIdentifier identifier
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    9     0                      this  Landroid/hardware/input/InputManager;
            0    9     1                identifier  Landroid/hardware/input/InputDeviceIdentifier;
            0    9     2  keyboardLayoutDescriptor  Ljava/lang/String;
            7    8     3                        ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           4     5       6  Class android.os.RemoteException
    MethodParameters:
                          Name  Flags
      identifier                
      keyboardLayoutDescriptor  

  public android.hardware.input.TouchCalibration getTouchCalibration(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // java.lang.String inputDeviceDescriptor
        start local 2 // int surfaceRotation
         0: .line 714
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* inputDeviceDescriptor */
            iload 2 /* surfaceRotation */
            invokeinterface android.hardware.input.IInputManager.getTouchCalibrationForInputDevice:(Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration;
         1: areturn
         2: .line 715
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 3 /* ex */
        start local 3 // android.os.RemoteException ex
         3: .line 716
            aload 3 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException ex
        end local 2 // int surfaceRotation
        end local 1 // java.lang.String inputDeviceDescriptor
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    4     0                   this  Landroid/hardware/input/InputManager;
            0    4     1  inputDeviceDescriptor  Ljava/lang/String;
            0    4     2        surfaceRotation  I
            3    4     3                     ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                       Name  Flags
      inputDeviceDescriptor  
      surfaceRotation        

  public void setTouchCalibration(java.lang.String, int, android.hardware.input.TouchCalibration);
    descriptor: (Ljava/lang/String;ILandroid/hardware/input/TouchCalibration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // android.hardware.input.InputManager this
        start local 1 // java.lang.String inputDeviceDescriptor
        start local 2 // int surfaceRotation
        start local 3 // android.hardware.input.TouchCalibration calibration
         0: .line 735
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* inputDeviceDescriptor */
            iload 2 /* surfaceRotation */
            aload 3 /* calibration */
            invokeinterface android.hardware.input.IInputManager.setTouchCalibrationForInputDevice:(Ljava/lang/String;ILandroid/hardware/input/TouchCalibration;)V
         1: .line 736
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 4 /* ex */
        start local 4 // android.os.RemoteException ex
         3: .line 737
            aload 4 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException ex
         4: .line 739
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.hardware.input.TouchCalibration calibration
        end local 2 // int surfaceRotation
        end local 1 // java.lang.String inputDeviceDescriptor
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Landroid/hardware/input/InputManager;
            0    5     1  inputDeviceDescriptor  Ljava/lang/String;
            0    5     2        surfaceRotation  I
            0    5     3            calibration  Landroid/hardware/input/TouchCalibration;
            3    4     4                     ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                       Name  Flags
      inputDeviceDescriptor  
      surfaceRotation        
      calibration            

  public int getPointerSpeed(android.content.Context);
    descriptor: (Landroid/content/Context;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.content.Context context
         0: .line 755
            iconst_0
            istore 2 /* speed */
        start local 2 // int speed
         1: .line 757
            aload 1 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
         2: .line 758
            ldc "pointer_speed"
         3: .line 757
            invokestatic android.provider.Settings$System.getInt:(Landroid/content/ContentResolver;Ljava/lang/String;)I
            istore 2 /* speed */
         4: .line 759
            goto 6
      StackMap locals: android.hardware.input.InputManager android.content.Context int
      StackMap stack: android.provider.Settings$SettingNotFoundException
         5: pop
         6: .line 761
      StackMap locals:
      StackMap stack:
            iload 2 /* speed */
            ireturn
        end local 2 // int speed
        end local 1 // android.content.Context context
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/hardware/input/InputManager;
            0    7     1  context  Landroid/content/Context;
            1    7     2    speed  I
      Exception table:
        from    to  target  type
           1     4       5  Class android.provider.Settings$SettingNotFoundException
    MethodParameters:
         Name  Flags
      context  

  public void setPointerSpeed(android.content.Context, int);
    descriptor: (Landroid/content/Context;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.content.Context context
        start local 2 // int speed
         0: .line 777
            iload 2 /* speed */
            bipush -7
            if_icmplt 1
            iload 2 /* speed */
            bipush 7
            if_icmple 2
         1: .line 778
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "speed out of range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 781
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
         3: .line 782
            ldc "pointer_speed"
            iload 2 /* speed */
         4: .line 781
            invokestatic android.provider.Settings$System.putInt:(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
            pop
         5: .line 783
            return
        end local 2 // int speed
        end local 1 // android.content.Context context
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/hardware/input/InputManager;
            0    6     1  context  Landroid/content/Context;
            0    6     2    speed  I
    MethodParameters:
         Name  Flags
      context  
      speed    

  public void tryPointerSpeed(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int speed
         0: .line 797
            iload 1 /* speed */
            bipush -7
            if_icmplt 1
            iload 1 /* speed */
            bipush 7
            if_icmple 2
         1: .line 798
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "speed out of range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 802
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            iload 1 /* speed */
            invokeinterface android.hardware.input.IInputManager.tryPointerSpeed:(I)V
         3: .line 803
            goto 6
      StackMap locals:
      StackMap stack: android.os.RemoteException
         4: astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         5: .line 804
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
         6: .line 806
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int speed
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Landroid/hardware/input/InputManager;
            0    7     1  speed  I
            5    6     2     ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException
    MethodParameters:
       Name  Flags
      speed  

  public boolean[] deviceHasKeys(int[]);
    descriptor: ([I)[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int[] keyCodes
         0: .line 821
            aload 0 /* this */
            iconst_m1
            aload 1 /* keyCodes */
            invokevirtual android.hardware.input.InputManager.deviceHasKeys:(I[I)[Z
            areturn
        end local 1 // int[] keyCodes
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Landroid/hardware/input/InputManager;
            0    1     1  keyCodes  [I
    MethodParameters:
          Name  Flags
      keyCodes  

  public boolean[] deviceHasKeys(int, int[]);
    descriptor: (I[I)[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int id
        start local 2 // int[] keyCodes
         0: .line 838
            aload 2 /* keyCodes */
            arraylength
            newarray 4
            astore 3 /* ret */
        start local 3 // boolean[] ret
         1: .line 840
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            iload 1 /* id */
            sipush -256
            aload 2 /* keyCodes */
            aload 3 /* ret */
            invokeinterface android.hardware.input.IInputManager.hasKeys:(II[I[Z)Z
            pop
         2: .line 841
            goto 5
      StackMap locals: android.hardware.input.InputManager int int[] boolean[]
      StackMap stack: android.os.RemoteException
         3: astore 4 /* e */
        start local 4 // android.os.RemoteException e
         4: .line 842
            aload 4 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException e
         5: .line 844
      StackMap locals:
      StackMap stack:
            aload 3 /* ret */
            areturn
        end local 3 // boolean[] ret
        end local 2 // int[] keyCodes
        end local 1 // int id
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Landroid/hardware/input/InputManager;
            0    6     1        id  I
            0    6     2  keyCodes  [I
            1    6     3       ret  [Z
            4    5     4         e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
          Name  Flags
      id        
      keyCodes  

  public boolean injectInputEvent(android.view.InputEvent, int);
    descriptor: (Landroid/view/InputEvent;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.view.InputEvent event
        start local 2 // int mode
         0: .line 870
            aload 1 /* event */
            ifnonnull 2
         1: .line 871
            new java.lang.IllegalArgumentException
            dup
            ldc "event must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 873
      StackMap locals:
      StackMap stack:
            iload 2 /* mode */
            ifeq 6
         3: .line 874
            iload 2 /* mode */
            iconst_2
            if_icmpeq 6
         4: .line 875
            iload 2 /* mode */
            iconst_1
            if_icmpeq 6
         5: .line 876
            new java.lang.IllegalArgumentException
            dup
            ldc "mode is invalid"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 880
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* event */
            iload 2 /* mode */
            invokeinterface android.hardware.input.IInputManager.injectInputEvent:(Landroid/view/InputEvent;I)Z
         7: ireturn
         8: .line 881
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 3 /* ex */
        start local 3 // android.os.RemoteException ex
         9: .line 882
            aload 3 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException ex
        end local 2 // int mode
        end local 1 // android.view.InputEvent event
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Landroid/hardware/input/InputManager;
            0   10     1  event  Landroid/view/InputEvent;
            0   10     2   mode  I
            9   10     3     ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           6     7       8  Class android.os.RemoteException
    MethodParameters:
       Name  Flags
      event  
      mode   

  public void setPointerIconType(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int iconId
         0: .line 896
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            iload 1 /* iconId */
            invokeinterface android.hardware.input.IInputManager.setPointerIconType:(I)V
         1: .line 897
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         3: .line 898
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
         4: .line 900
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int iconId
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/hardware/input/InputManager;
            0    5     1  iconId  I
            3    4     2      ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      iconId  

  public void setCustomPointerIcon(android.view.PointerIcon);
    descriptor: (Landroid/view/PointerIcon;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.view.PointerIcon icon
         0: .line 905
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* icon */
            invokeinterface android.hardware.input.IInputManager.setCustomPointerIcon:(Landroid/view/PointerIcon;)V
         1: .line 906
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         3: .line 907
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
         4: .line 909
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.PointerIcon icon
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/hardware/input/InputManager;
            0    5     1  icon  Landroid/view/PointerIcon;
            3    4     2    ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      icon  

  public void requestPointerCapture(android.os.IBinder, boolean);
    descriptor: (Landroid/os/IBinder;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // android.os.IBinder windowToken
        start local 2 // boolean enable
         0: .line 924
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* windowToken */
            iload 2 /* enable */
            invokeinterface android.hardware.input.IInputManager.requestPointerCapture:(Landroid/os/IBinder;Z)V
         1: .line 925
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 3 /* ex */
        start local 3 // android.os.RemoteException ex
         3: .line 926
            aload 3 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException ex
         4: .line 928
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean enable
        end local 1 // android.os.IBinder windowToken
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Landroid/hardware/input/InputManager;
            0    5     1  windowToken  Landroid/os/IBinder;
            0    5     2       enable  Z
            3    4     3           ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
             Name  Flags
      windowToken  
      enable       

  public android.app.IInputForwarder createInputForwarder(int);
    descriptor: (I)Landroid/app/IInputForwarder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int displayId
         0: .line 943
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            iload 1 /* displayId */
            invokeinterface android.hardware.input.IInputManager.createInputForwarder:(I)Landroid/app/IInputForwarder;
         1: areturn
         2: .line 944
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         3: .line 945
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
        end local 1 // int displayId
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Landroid/hardware/input/InputManager;
            0    4     1  displayId  I
            3    4     2         ex  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
           Name  Flags
      displayId  

  private void populateInputDevicesLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.hardware.input.InputManager this
         0: .line 950
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevicesChangedListener:Landroid/hardware/input/InputManager$InputDevicesChangedListener;
            ifnonnull 7
         1: .line 951
            new android.hardware.input.InputManager$InputDevicesChangedListener
            dup
            aload 0 /* this */
            invokespecial android.hardware.input.InputManager$InputDevicesChangedListener.<init>:(Landroid/hardware/input/InputManager;)V
            astore 1 /* listener */
        start local 1 // android.hardware.input.InputManager$InputDevicesChangedListener listener
         2: .line 953
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            aload 1 /* listener */
            invokeinterface android.hardware.input.IInputManager.registerInputDevicesChangedListener:(Landroid/hardware/input/IInputDevicesChangedListener;)V
         3: .line 954
            goto 6
      StackMap locals: android.hardware.input.InputManager android.hardware.input.InputManager$InputDevicesChangedListener
      StackMap stack: android.os.RemoteException
         4: astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
         5: .line 955
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
         6: .line 957
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.hardware.input.InputManager.mInputDevicesChangedListener:Landroid/hardware/input/InputManager$InputDevicesChangedListener;
        end local 1 // android.hardware.input.InputManager$InputDevicesChangedListener listener
         7: .line 960
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            ifnonnull 18
         8: .line 963
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mIm:Landroid/hardware/input/IInputManager;
            invokeinterface android.hardware.input.IInputManager.getInputDeviceIds:()[I
            astore 1 /* ids */
        start local 1 // int[] ids
         9: .line 964
            goto 12
        end local 1 // int[] ids
      StackMap locals:
      StackMap stack: android.os.RemoteException
        10: astore 2 /* ex */
        start local 2 // android.os.RemoteException ex
        11: .line 965
            aload 2 /* ex */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException ex
        start local 1 // int[] ids
        12: .line 968
      StackMap locals: int[]
      StackMap stack:
            aload 0 /* this */
            new android.util.SparseArray
            dup
            invokespecial android.util.SparseArray.<init>:()V
            putfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
        13: .line 969
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        14: goto 17
        15: .line 970
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            aload 1 /* ids */
            iload 2 /* i */
            iaload
            aconst_null
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        16: .line 969
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 2 /* i */
            aload 1 /* ids */
            arraylength
            if_icmplt 15
        end local 2 // int i
        end local 1 // int[] ids
        18: .line 973
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Landroid/hardware/input/InputManager;
            2    7     1  listener  Landroid/hardware/input/InputManager$InputDevicesChangedListener;
            5    6     2        ex  Landroid/os/RemoteException;
            9   10     1       ids  [I
           12   18     1       ids  [I
           11   12     2        ex  Landroid/os/RemoteException;
           14   18     2         i  I
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException
           8     9      10  Class android.os.RemoteException

  private void onInputDevicesChanged(int[]);
    descriptor: ([I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int[] deviceIdAndGeneration
         0: .line 980
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevicesLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 981
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.size:()I
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 982
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 3 /* i */
            invokevirtual android.util.SparseArray.keyAt:(I)I
            istore 4 /* deviceId */
        start local 4 // int deviceId
         4: .line 983
            aload 1 /* deviceIdAndGeneration */
            iload 4 /* deviceId */
            invokestatic android.hardware.input.InputManager.containsDeviceId:([II)Z
            ifne 7
         5: .line 987
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 3 /* i */
            invokevirtual android.util.SparseArray.removeAt:(I)V
         6: .line 988
            aload 0 /* this */
            iconst_2
            iload 4 /* deviceId */
            invokevirtual android.hardware.input.InputManager.sendMessageToInputDeviceListenersLocked:(II)V
        end local 4 // int deviceId
         7: .line 981
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
            iload 3 /* i */
            ifgt 3
        end local 3 // int i
         8: .line 992
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         9: goto 23
        10: .line 993
      StackMap locals:
      StackMap stack:
            aload 1 /* deviceIdAndGeneration */
            iload 3 /* i */
            iaload
            istore 4 /* deviceId */
        start local 4 // int deviceId
        11: .line 994
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 4 /* deviceId */
            invokevirtual android.util.SparseArray.indexOfKey:(I)I
            istore 5 /* index */
        start local 5 // int index
        12: .line 995
            iload 5 /* index */
            iflt 20
        13: .line 996
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 5 /* index */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast android.view.InputDevice
            astore 6 /* device */
        start local 6 // android.view.InputDevice device
        14: .line 997
            aload 6 /* device */
            ifnull 22
        15: .line 998
            aload 1 /* deviceIdAndGeneration */
            iload 3 /* i */
            iconst_1
            iadd
            iaload
            istore 7 /* generation */
        start local 7 // int generation
        16: .line 999
            aload 6 /* device */
            invokevirtual android.view.InputDevice.getGeneration:()I
            iload 7 /* generation */
            if_icmpeq 22
        17: .line 1003
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 5 /* index */
            aconst_null
            invokevirtual android.util.SparseArray.setValueAt:(ILjava/lang/Object;)V
        18: .line 1004
            aload 0 /* this */
            iconst_3
            iload 4 /* deviceId */
            invokevirtual android.hardware.input.InputManager.sendMessageToInputDeviceListenersLocked:(II)V
        end local 7 // int generation
        end local 6 // android.view.InputDevice device
        19: .line 1007
            goto 22
        20: .line 1011
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDevices:Landroid/util/SparseArray;
            iload 4 /* deviceId */
            aconst_null
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        21: .line 1012
            aload 0 /* this */
            iconst_1
            iload 4 /* deviceId */
            invokevirtual android.hardware.input.InputManager.sendMessageToInputDeviceListenersLocked:(II)V
        end local 5 // int index
        end local 4 // int deviceId
        22: .line 992
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 2
      StackMap locals:
      StackMap stack:
        23: iload 3 /* i */
            aload 1 /* deviceIdAndGeneration */
            arraylength
            if_icmplt 10
        end local 3 // int i
        24: .line 980
            aload 2
            monitorexit
        25: goto 28
      StackMap locals: android.hardware.input.InputManager int[] java.lang.Object
      StackMap stack: java.lang.Throwable
        26: aload 2
            monitorexit
        27: athrow
        28: .line 1016
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int[] deviceIdAndGeneration
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   29     0                   this  Landroid/hardware/input/InputManager;
            0   29     1  deviceIdAndGeneration  [I
            2    8     3                      i  I
            4    7     4               deviceId  I
            9   24     3                      i  I
           11   22     4               deviceId  I
           12   22     5                  index  I
           14   19     6                 device  Landroid/view/InputDevice;
           16   19     7             generation  I
      Exception table:
        from    to  target  type
           1    25      26  any
          26    27      26  any
    MethodParameters:
                       Name  Flags
      deviceIdAndGeneration  

  private void sendMessageToInputDeviceListenersLocked(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int what
        start local 2 // int deviceId
         0: .line 1019
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDeviceListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 3 /* numListeners */
        start local 3 // int numListeners
         1: .line 1020
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 6
         3: .line 1021
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mInputDeviceListeners:Ljava/util/ArrayList;
            iload 4 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.hardware.input.InputManager$InputDeviceListenerDelegate
            astore 5 /* listener */
        start local 5 // android.hardware.input.InputManager$InputDeviceListenerDelegate listener
         4: .line 1022
            aload 5 /* listener */
            aload 5 /* listener */
            iload 1 /* what */
            iload 2 /* deviceId */
            iconst_0
            invokevirtual android.hardware.input.InputManager$InputDeviceListenerDelegate.obtainMessage:(III)Landroid/os/Message;
            invokevirtual android.hardware.input.InputManager$InputDeviceListenerDelegate.sendMessage:(Landroid/os/Message;)Z
            pop
        end local 5 // android.hardware.input.InputManager$InputDeviceListenerDelegate listener
         5: .line 1020
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            iload 3 /* numListeners */
            if_icmplt 3
        end local 4 // int i
         7: .line 1024
            return
        end local 3 // int numListeners
        end local 2 // int deviceId
        end local 1 // int what
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Landroid/hardware/input/InputManager;
            0    8     1          what  I
            0    8     2      deviceId  I
            1    8     3  numListeners  I
            2    7     4             i  I
            4    5     5      listener  Landroid/hardware/input/InputManager$InputDeviceListenerDelegate;
    MethodParameters:
          Name  Flags
      what      
      deviceId  

  private static boolean containsDeviceId(int[], int);
    descriptor: ([II)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // int[] deviceIdAndGeneration
        start local 1 // int deviceId
         0: .line 1027
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 1028
      StackMap locals: int
      StackMap stack:
            aload 0 /* deviceIdAndGeneration */
            iload 2 /* i */
            iaload
            iload 1 /* deviceId */
            if_icmpne 4
         3: .line 1029
            iconst_1
            ireturn
         4: .line 1027
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 2
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* deviceIdAndGeneration */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 1032
            iconst_0
            ireturn
        end local 1 // int deviceId
        end local 0 // int[] deviceIdAndGeneration
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    7     0  deviceIdAndGeneration  [I
            0    7     1               deviceId  I
            1    6     2                      i  I
    MethodParameters:
                       Name  Flags
      deviceIdAndGeneration  
      deviceId               

  private void onTabletModeChanged(long, boolean);
    descriptor: (JZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // android.hardware.input.InputManager this
        start local 1 // long whenNanos
        start local 3 // boolean inTabletMode
         0: .line 1041
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mTabletModeLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 1042
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mOnTabletModeChangedListeners:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 5 /* N */
        start local 5 // int N
         2: .line 1043
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 8
         4: .line 1045
      StackMap locals: java.lang.Object int int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.input.InputManager.mOnTabletModeChangedListeners:Ljava/util/List;
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate
         5: .line 1044
            astore 7 /* listener */
        start local 7 // android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate listener
         6: .line 1046
            aload 7 /* listener */
            lload 1 /* whenNanos */
            iload 3 /* inTabletMode */
            invokevirtual android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate.sendTabletModeChanged:(JZ)V
        end local 7 // android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate listener
         7: .line 1043
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            iload 5 /* N */
            if_icmplt 4
        end local 6 // int i
        end local 5 // int N
         9: .line 1041
            aload 4
            monitorexit
        10: goto 13
      StackMap locals: android.hardware.input.InputManager long int java.lang.Object
      StackMap stack: java.lang.Throwable
        11: aload 4
            monitorexit
        12: athrow
        13: .line 1049
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean inTabletMode
        end local 1 // long whenNanos
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Landroid/hardware/input/InputManager;
            0   14     1     whenNanos  J
            0   14     3  inTabletMode  Z
            2    9     5             N  I
            3    9     6             i  I
            6    7     7      listener  Landroid/hardware/input/InputManager$OnTabletModeChangedListenerDelegate;
      Exception table:
        from    to  target  type
           1    10      11  any
          11    12      11  any
    MethodParameters:
              Name  Flags
      whenNanos     
      inTabletMode  

  public android.os.Vibrator getInputDeviceVibrator(int);
    descriptor: (I)Landroid/os/Vibrator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.hardware.input.InputManager this
        start local 1 // int deviceId
         0: .line 1057
            new android.hardware.input.InputManager$InputDeviceVibrator
            dup
            aload 0 /* this */
            iload 1 /* deviceId */
            invokespecial android.hardware.input.InputManager$InputDeviceVibrator.<init>:(Landroid/hardware/input/InputManager;I)V
            areturn
        end local 1 // int deviceId
        end local 0 // android.hardware.input.InputManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Landroid/hardware/input/InputManager;
            0    1     1  deviceId  I
    MethodParameters:
          Name  Flags
      deviceId  
}
SourceFile: "InputManager.java"
NestMembers:
  android.hardware.input.InputManager$InputDeviceListener  android.hardware.input.InputManager$InputDeviceListenerDelegate  android.hardware.input.InputManager$InputDeviceVibrator  android.hardware.input.InputManager$InputDevicesChangedListener  android.hardware.input.InputManager$OnTabletModeChangedListener  android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate  android.hardware.input.InputManager$SwitchState  android.hardware.input.InputManager$TabletModeChangedListener
InnerClasses:
  public abstract Stub = android.hardware.input.IInputManager$Stub of android.hardware.input.IInputManager
  public abstract InputDeviceListener = android.hardware.input.InputManager$InputDeviceListener of android.hardware.input.InputManager
  private final InputDeviceListenerDelegate = android.hardware.input.InputManager$InputDeviceListenerDelegate of android.hardware.input.InputManager
  private final InputDeviceVibrator = android.hardware.input.InputManager$InputDeviceVibrator of android.hardware.input.InputManager
  private final InputDevicesChangedListener = android.hardware.input.InputManager$InputDevicesChangedListener of android.hardware.input.InputManager
  public abstract OnTabletModeChangedListener = android.hardware.input.InputManager$OnTabletModeChangedListener of android.hardware.input.InputManager
  private final OnTabletModeChangedListenerDelegate = android.hardware.input.InputManager$OnTabletModeChangedListenerDelegate of android.hardware.input.InputManager
  public abstract SwitchState = android.hardware.input.InputManager$SwitchState of android.hardware.input.InputManager
  private final TabletModeChangedListener = android.hardware.input.InputManager$TabletModeChangedListener of android.hardware.input.InputManager
  public ServiceNotFoundException = android.os.ServiceManager$ServiceNotFoundException of android.os.ServiceManager
  public SettingNotFoundException = android.provider.Settings$SettingNotFoundException of android.provider.Settings
  public final System = android.provider.Settings$System of android.provider.Settings