public class android.hardware.SystemSensorManager extends android.hardware.SensorManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.hardware.SystemSensorManager
  super_class: android.hardware.SensorManager
{
  private static final boolean DEBUG_DYNAMIC_SENSOR;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

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

  private static final java.lang.Object sLock;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static boolean sNativeClassInited;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "sLock")

  private static android.hardware.SystemSensorManager$InjectEventQueue sInjectEventQueue;
    descriptor: Landroid/hardware/SystemSensorManager$InjectEventQueue;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "sLock")

  private final java.util.ArrayList<android.hardware.Sensor> mFullSensorsList;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Landroid/hardware/Sensor;>;

  private java.util.List<android.hardware.Sensor> mFullDynamicSensorsList;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Landroid/hardware/Sensor;>;

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

  private final java.util.HashMap<java.lang.Integer, android.hardware.Sensor> mHandleToSensor;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/Integer;Landroid/hardware/Sensor;>;

  private final java.util.HashMap<android.hardware.SensorEventListener, android.hardware.SystemSensorManager$SensorEventQueue> mSensorListeners;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Landroid/hardware/SensorEventListener;Landroid/hardware/SystemSensorManager$SensorEventQueue;>;

  private final java.util.HashMap<android.hardware.TriggerEventListener, android.hardware.SystemSensorManager$TriggerEventQueue> mTriggerListeners;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Landroid/hardware/TriggerEventListener;Landroid/hardware/SystemSensorManager$TriggerEventQueue;>;

  private java.util.HashMap<android.hardware.SensorManager$DynamicSensorCallback, android.os.Handler> mDynamicSensorCallbacks;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Landroid/hardware/SensorManager$DynamicSensorCallback;Landroid/os/Handler;>;

  private android.content.BroadcastReceiver mDynamicSensorBroadcastReceiver;
    descriptor: Landroid/content/BroadcastReceiver;
    flags: (0x0002) ACC_PRIVATE

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

  private final int mTargetSdkLevel;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long mNativeInstance;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 73
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic android.hardware.SystemSensorManager.sLock:Ljava/lang/Object;
         1: .line 75
            iconst_0
            putstatic android.hardware.SystemSensorManager.sNativeClassInited:Z
         2: .line 77
            aconst_null
            putstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static native void nativeClassInit();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native long nativeCreate(java.lang.String);
    descriptor: (Ljava/lang/String;)J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
               Name  Flags
      opPackageName  

  private static native boolean nativeGetSensorAtIndex(long, android.hardware.Sensor, int);
    descriptor: (JLandroid/hardware/Sensor;I)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeInstance  
      sensor          
      index           

  private static native void nativeGetDynamicSensors(long, java.util.List<android.hardware.Sensor>);
    descriptor: (JLjava/util/List;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Signature: (JLjava/util/List<Landroid/hardware/Sensor;>;)V
    MethodParameters:
                Name  Flags
      nativeInstance  
      list            

  private static native boolean nativeIsDataInjectionEnabled(long);
    descriptor: (J)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeInstance  

  private static native int nativeCreateDirectChannel(long, long, int, int, android.hardware.HardwareBuffer);
    descriptor: (JJIILandroid/hardware/HardwareBuffer;)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeInstance  
      size            
      channelType     
      fd              
      buffer          

  private static native void nativeDestroyDirectChannel(long, int);
    descriptor: (JI)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeInstance  
      channelHandle   

  private static native int nativeConfigDirectChannel(long, int, int, int);
    descriptor: (JIII)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeInstance  
      channelHandle   
      sensorHandle    
      rate            

  private static native int nativeSetOperationParameter(long, int, int, float[], int[]);
    descriptor: (JII[F[I)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeInstance  
      handle          
      type            
      floatValues     
      intValues       

  public void <init>(android.content.Context, android.os.Looper);
    descriptor: (Landroid/content/Context;Landroid/os/Looper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.content.Context context
        start local 2 // android.os.Looper mainLooper
         0: .line 103
            aload 0 /* this */
            invokespecial android.hardware.SensorManager.<init>:()V
         1: .line 79
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.hardware.SystemSensorManager.mFullSensorsList:Ljava/util/ArrayList;
         2: .line 80
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.hardware.SystemSensorManager.mFullDynamicSensorsList:Ljava/util/List;
         3: .line 81
            aload 0 /* this */
            iconst_1
            putfield android.hardware.SystemSensorManager.mDynamicSensorListDirty:Z
         4: .line 83
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield android.hardware.SystemSensorManager.mHandleToSensor:Ljava/util/HashMap;
         5: .line 86
            aload 0 /* this */
         6: .line 87
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
         7: .line 88
            aload 0 /* this */
         8: .line 89
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
         9: .line 93
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield android.hardware.SystemSensorManager.mDynamicSensorCallbacks:Ljava/util/HashMap;
        10: .line 104
            getstatic android.hardware.SystemSensorManager.sLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
        11: .line 105
            getstatic android.hardware.SystemSensorManager.sNativeClassInited:Z
            ifne 14
        12: .line 106
            iconst_1
            putstatic android.hardware.SystemSensorManager.sNativeClassInited:Z
        13: .line 107
            invokestatic android.hardware.SystemSensorManager.nativeClassInit:()V
        14: .line 104
      StackMap locals: android.hardware.SystemSensorManager android.content.Context android.os.Looper java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 3
            monitorexit
        17: athrow
        18: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* mainLooper */
            putfield android.hardware.SystemSensorManager.mMainLooper:Landroid/os/Looper;
        19: .line 112
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
            putfield android.hardware.SystemSensorManager.mTargetSdkLevel:I
        20: .line 113
            aload 0 /* this */
            aload 1 /* context */
            putfield android.hardware.SystemSensorManager.mContext:Landroid/content/Context;
        21: .line 114
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
            invokestatic android.hardware.SystemSensorManager.nativeCreate:(Ljava/lang/String;)J
            putfield android.hardware.SystemSensorManager.mNativeInstance:J
        22: .line 117
            iconst_0
            istore 3 /* index */
        start local 3 // int index
        23: .line 118
      StackMap locals: int
      StackMap stack:
            new android.hardware.Sensor
            dup
            invokespecial android.hardware.Sensor.<init>:()V
            astore 4 /* sensor */
        start local 4 // android.hardware.Sensor sensor
        24: .line 119
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mNativeInstance:J
            aload 4 /* sensor */
            iload 3 /* index */
            invokestatic android.hardware.SystemSensorManager.nativeGetSensorAtIndex:(JLandroid/hardware/Sensor;I)Z
            ifne 25
            goto 28
        25: .line 120
      StackMap locals: android.hardware.Sensor
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mFullSensorsList:Ljava/util/ArrayList;
            aload 4 /* sensor */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        26: .line 121
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mHandleToSensor:Ljava/util/HashMap;
            aload 4 /* sensor */
            invokevirtual android.hardware.Sensor.getHandle:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* sensor */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // android.hardware.Sensor sensor
        27: .line 117
            iinc 3 /* index */ 1
            goto 23
        end local 3 // int index
        28: .line 123
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Looper mainLooper
        end local 1 // android.content.Context context
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Landroid/hardware/SystemSensorManager;
            0   29     1     context  Landroid/content/Context;
            0   29     2  mainLooper  Landroid/os/Looper;
           23   28     3       index  I
           24   27     4      sensor  Landroid/hardware/Sensor;
      Exception table:
        from    to  target  type
          11    15      16  any
          16    17      16  any
    MethodParameters:
            Name  Flags
      context     
      mainLooper  

  protected java.util.List<android.hardware.Sensor> getFullSensorList();
    descriptor: ()Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.hardware.SystemSensorManager this
         0: .line 129
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mFullSensorsList:Ljava/util/ArrayList;
            areturn
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/hardware/SystemSensorManager;
    Signature: ()Ljava/util/List<Landroid/hardware/Sensor;>;

  protected java.util.List<android.hardware.Sensor> getFullDynamicSensorList();
    descriptor: ()Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.hardware.SystemSensorManager this
         0: .line 137
            aload 0 /* this */
            invokevirtual android.hardware.SystemSensorManager.setupDynamicSensorBroadcastReceiver:()V
         1: .line 138
            aload 0 /* this */
            invokevirtual android.hardware.SystemSensorManager.updateDynamicSensorList:()V
         2: .line 139
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mFullDynamicSensorsList:Ljava/util/List;
            areturn
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/hardware/SystemSensorManager;
    Signature: ()Ljava/util/List<Landroid/hardware/Sensor;>;

  protected boolean registerListenerImpl(android.hardware.SensorEventListener, android.hardware.Sensor, int, android.os.Handler, int, int);
    descriptor: (Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;II)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=11, args_size=7
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.SensorEventListener listener
        start local 2 // android.hardware.Sensor sensor
        start local 3 // int delayUs
        start local 4 // android.os.Handler handler
        start local 5 // int maxBatchReportLatencyUs
        start local 6 // int reservedFlags
         0: .line 146
            aload 1 /* listener */
            ifnull 1
            aload 2 /* sensor */
            ifnonnull 3
         1: .line 147
      StackMap locals:
      StackMap stack:
            ldc "SensorManager"
            ldc "sensor or listener is null"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 148
            iconst_0
            ireturn
         3: .line 151
      StackMap locals:
      StackMap stack:
            aload 2 /* sensor */
            invokevirtual android.hardware.Sensor.getReportingMode:()I
            iconst_2
            if_icmpne 6
         4: .line 152
            ldc "SensorManager"
            ldc "Trigger Sensors should use the requestTriggerSensor."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 153
            iconst_0
            ireturn
         6: .line 155
      StackMap locals:
      StackMap stack:
            iload 5 /* maxBatchReportLatencyUs */
            iflt 7
            iload 3 /* delayUs */
            ifge 9
         7: .line 156
      StackMap locals:
      StackMap stack:
            ldc "SensorManager"
            ldc "maxBatchReportLatencyUs and delayUs should be non-negative"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         8: .line 157
            iconst_0
            ireturn
         9: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            sipush 128
            if_icmplt 11
        10: .line 160
            new java.lang.IllegalStateException
            dup
            ldc "register failed, the sensor listeners size has exceeded the maximum limit 128"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            dup
            astore 7
            monitorenter
        12: .line 170
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.hardware.SystemSensorManager$SensorEventQueue
            astore 8 /* queue */
        start local 8 // android.hardware.SystemSensorManager$SensorEventQueue queue
        13: .line 171
            aload 8 /* queue */
            ifnonnull 29
        14: .line 172
            aload 4 /* handler */
            ifnull 15
            aload 4 /* handler */
            invokevirtual android.os.Handler.getLooper:()Landroid/os/Looper;
            goto 16
      StackMap locals: java.util.HashMap android.hardware.SystemSensorManager$SensorEventQueue
      StackMap stack:
        15: aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mMainLooper:Landroid/os/Looper;
      StackMap locals:
      StackMap stack: android.os.Looper
        16: astore 9 /* looper */
        start local 9 // android.os.Looper looper
        17: .line 174
            aload 1 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getEnclosingClass:()Ljava/lang/Class;
            ifnull 19
        18: .line 175
            aload 1 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getEnclosingClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            goto 20
        19: .line 176
      StackMap locals: android.os.Looper
      StackMap stack:
            aload 1 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        20: .line 173
      StackMap locals:
      StackMap stack: java.lang.String
            astore 10 /* fullClassName */
        start local 10 // java.lang.String fullClassName
        21: .line 177
            new android.hardware.SystemSensorManager$SensorEventQueue
            dup
            aload 1 /* listener */
            aload 9 /* looper */
            aload 0 /* this */
            aload 10 /* fullClassName */
            invokespecial android.hardware.SystemSensorManager$SensorEventQueue.<init>:(Landroid/hardware/SensorEventListener;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
            astore 8 /* queue */
        22: .line 178
            aload 8 /* queue */
            aload 2 /* sensor */
            iload 3 /* delayUs */
            iload 5 /* maxBatchReportLatencyUs */
            invokevirtual android.hardware.SystemSensorManager$SensorEventQueue.addSensor:(Landroid/hardware/Sensor;II)Z
            ifne 26
        23: .line 179
            aload 8 /* queue */
            invokevirtual android.hardware.SystemSensorManager$SensorEventQueue.dispose:()V
        24: .line 180
            aload 7
            monitorexit
        25: iconst_0
            ireturn
        26: .line 182
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            aload 8 /* queue */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        27: .line 183
            aload 7
            monitorexit
        28: iconst_1
            ireturn
        end local 10 // java.lang.String fullClassName
        end local 9 // android.os.Looper looper
        29: .line 185
      StackMap locals:
      StackMap stack:
            aload 8 /* queue */
            aload 2 /* sensor */
            iload 3 /* delayUs */
            iload 5 /* maxBatchReportLatencyUs */
            invokevirtual android.hardware.SystemSensorManager$SensorEventQueue.addSensor:(Landroid/hardware/Sensor;II)Z
            aload 7
            monitorexit
        30: ireturn
        end local 8 // android.hardware.SystemSensorManager$SensorEventQueue queue
        31: .line 169
      StackMap locals: android.hardware.SystemSensorManager android.hardware.SensorEventListener android.hardware.Sensor int android.os.Handler int int java.util.HashMap
      StackMap stack: java.lang.Throwable
            aload 7
            monitorexit
        32: athrow
        end local 6 // int reservedFlags
        end local 5 // int maxBatchReportLatencyUs
        end local 4 // android.os.Handler handler
        end local 3 // int delayUs
        end local 2 // android.hardware.Sensor sensor
        end local 1 // android.hardware.SensorEventListener listener
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   33     0                     this  Landroid/hardware/SystemSensorManager;
            0   33     1                 listener  Landroid/hardware/SensorEventListener;
            0   33     2                   sensor  Landroid/hardware/Sensor;
            0   33     3                  delayUs  I
            0   33     4                  handler  Landroid/os/Handler;
            0   33     5  maxBatchReportLatencyUs  I
            0   33     6            reservedFlags  I
           13   31     8                    queue  Landroid/hardware/SystemSensorManager$SensorEventQueue;
           17   29     9                   looper  Landroid/os/Looper;
           21   29    10            fullClassName  Ljava/lang/String;
      Exception table:
        from    to  target  type
          12    25      31  any
          26    28      31  any
          29    30      31  any
          31    32      31  any
    MethodParameters:
                         Name  Flags
      listener                 
      sensor                   
      delayUs                  
      handler                  
      maxBatchReportLatencyUs  
      reservedFlags            

  protected void unregisterListenerImpl(android.hardware.SensorEventListener, android.hardware.Sensor);
    descriptor: (Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.SensorEventListener listener
        start local 2 // android.hardware.Sensor sensor
         0: .line 194
            aload 2 /* sensor */
            ifnull 2
            aload 2 /* sensor */
            invokevirtual android.hardware.Sensor.getReportingMode:()I
            iconst_2
            if_icmpne 2
         1: .line 195
            return
         2: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            dup
            astore 3
            monitorenter
         3: .line 199
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.hardware.SystemSensorManager$SensorEventQueue
            astore 4 /* queue */
        start local 4 // android.hardware.SystemSensorManager$SensorEventQueue queue
         4: .line 200
            aload 4 /* queue */
            ifnull 12
         5: .line 202
            aload 2 /* sensor */
            ifnonnull 8
         6: .line 203
            aload 4 /* queue */
            invokevirtual android.hardware.SystemSensorManager$SensorEventQueue.removeAllSensors:()Z
            istore 5 /* result */
        start local 5 // boolean result
         7: .line 204
            goto 9
        end local 5 // boolean result
         8: .line 205
      StackMap locals: java.util.HashMap android.hardware.SystemSensorManager$SensorEventQueue
      StackMap stack:
            aload 4 /* queue */
            aload 2 /* sensor */
            iconst_1
            invokevirtual android.hardware.SystemSensorManager$SensorEventQueue.removeSensor:(Landroid/hardware/Sensor;Z)Z
            istore 5 /* result */
        start local 5 // boolean result
         9: .line 207
      StackMap locals: int
      StackMap stack:
            iload 5 /* result */
            ifeq 12
            aload 4 /* queue */
            invokevirtual android.hardware.SystemSensorManager$SensorEventQueue.hasSensors:()Z
            ifne 12
        10: .line 208
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 209
            aload 4 /* queue */
            invokevirtual android.hardware.SystemSensorManager$SensorEventQueue.dispose:()V
        end local 5 // boolean result
        end local 4 // android.hardware.SystemSensorManager$SensorEventQueue queue
        12: .line 198
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 3
            monitorexit
        15: athrow
        16: .line 213
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.hardware.Sensor sensor
        end local 1 // android.hardware.SensorEventListener listener
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Landroid/hardware/SystemSensorManager;
            0   17     1  listener  Landroid/hardware/SensorEventListener;
            0   17     2    sensor  Landroid/hardware/Sensor;
            4   12     4     queue  Landroid/hardware/SystemSensorManager$SensorEventQueue;
            7    8     5    result  Z
            9   12     5    result  Z
      Exception table:
        from    to  target  type
           3    13      14  any
          14    15      14  any
    MethodParameters:
          Name  Flags
      listener  
      sensor    

  protected boolean requestTriggerSensorImpl(android.hardware.TriggerEventListener, android.hardware.Sensor);
    descriptor: (Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.TriggerEventListener listener
        start local 2 // android.hardware.Sensor sensor
         0: .line 218
            aload 2 /* sensor */
            ifnonnull 1
            new java.lang.IllegalArgumentException
            dup
            ldc "sensor cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         1: .line 220
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            ifnonnull 2
            new java.lang.IllegalArgumentException
            dup
            ldc "listener cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 222
      StackMap locals:
      StackMap stack:
            aload 2 /* sensor */
            invokevirtual android.hardware.Sensor.getReportingMode:()I
            iconst_2
            if_icmpeq 3
            iconst_0
            ireturn
         3: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            sipush 128
            if_icmplt 5
         4: .line 225
            new java.lang.IllegalStateException
            dup
            ldc "request failed, the trigger listeners size has exceeded the maximum limit 128"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
            dup
            astore 3
            monitorenter
         6: .line 231
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.hardware.SystemSensorManager$TriggerEventQueue
            astore 4 /* queue */
        start local 4 // android.hardware.SystemSensorManager$TriggerEventQueue queue
         7: .line 232
            aload 4 /* queue */
            ifnonnull 20
         8: .line 234
            aload 1 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getEnclosingClass:()Ljava/lang/Class;
            ifnull 10
         9: .line 235
            aload 1 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getEnclosingClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            goto 11
        10: .line 236
      StackMap locals: java.util.HashMap android.hardware.SystemSensorManager$TriggerEventQueue
      StackMap stack:
            aload 1 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        11: .line 233
      StackMap locals:
      StackMap stack: java.lang.String
            astore 5 /* fullClassName */
        start local 5 // java.lang.String fullClassName
        12: .line 237
            new android.hardware.SystemSensorManager$TriggerEventQueue
            dup
            aload 1 /* listener */
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mMainLooper:Landroid/os/Looper;
            aload 0 /* this */
            aload 5 /* fullClassName */
            invokespecial android.hardware.SystemSensorManager$TriggerEventQueue.<init>:(Landroid/hardware/TriggerEventListener;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
            astore 4 /* queue */
        13: .line 238
            aload 4 /* queue */
            aload 2 /* sensor */
            iconst_0
            iconst_0
            invokevirtual android.hardware.SystemSensorManager$TriggerEventQueue.addSensor:(Landroid/hardware/Sensor;II)Z
            ifne 17
        14: .line 239
            aload 4 /* queue */
            invokevirtual android.hardware.SystemSensorManager$TriggerEventQueue.dispose:()V
        15: .line 240
            aload 3
            monitorexit
        16: iconst_0
            ireturn
        17: .line 242
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            aload 4 /* queue */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 243
            aload 3
            monitorexit
        19: iconst_1
            ireturn
        end local 5 // java.lang.String fullClassName
        20: .line 245
      StackMap locals:
      StackMap stack:
            aload 4 /* queue */
            aload 2 /* sensor */
            iconst_0
            iconst_0
            invokevirtual android.hardware.SystemSensorManager$TriggerEventQueue.addSensor:(Landroid/hardware/Sensor;II)Z
            aload 3
            monitorexit
        21: ireturn
        end local 4 // android.hardware.SystemSensorManager$TriggerEventQueue queue
        22: .line 230
      StackMap locals: android.hardware.SystemSensorManager android.hardware.TriggerEventListener android.hardware.Sensor java.util.HashMap
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        23: athrow
        end local 2 // android.hardware.Sensor sensor
        end local 1 // android.hardware.TriggerEventListener listener
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0           this  Landroid/hardware/SystemSensorManager;
            0   24     1       listener  Landroid/hardware/TriggerEventListener;
            0   24     2         sensor  Landroid/hardware/Sensor;
            7   22     4          queue  Landroid/hardware/SystemSensorManager$TriggerEventQueue;
           12   20     5  fullClassName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           6    16      22  any
          17    19      22  any
          20    21      22  any
          22    23      22  any
    MethodParameters:
          Name  Flags
      listener  
      sensor    

  protected boolean cancelTriggerSensorImpl(android.hardware.TriggerEventListener, android.hardware.Sensor, boolean);
    descriptor: (Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.TriggerEventListener listener
        start local 2 // android.hardware.Sensor sensor
        start local 3 // boolean disable
         0: .line 254
            aload 2 /* sensor */
            ifnull 2
            aload 2 /* sensor */
            invokevirtual android.hardware.Sensor.getReportingMode:()I
            iconst_2
            if_icmpeq 2
         1: .line 255
            iconst_0
            ireturn
         2: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
            dup
            astore 4
            monitorenter
         3: .line 258
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.hardware.SystemSensorManager$TriggerEventQueue
            astore 5 /* queue */
        start local 5 // android.hardware.SystemSensorManager$TriggerEventQueue queue
         4: .line 259
            aload 5 /* queue */
            ifnull 14
         5: .line 261
            aload 2 /* sensor */
            ifnonnull 8
         6: .line 262
            aload 5 /* queue */
            invokevirtual android.hardware.SystemSensorManager$TriggerEventQueue.removeAllSensors:()Z
            istore 6 /* result */
        start local 6 // boolean result
         7: .line 263
            goto 9
        end local 6 // boolean result
         8: .line 264
      StackMap locals: java.util.HashMap android.hardware.SystemSensorManager$TriggerEventQueue
      StackMap stack:
            aload 5 /* queue */
            aload 2 /* sensor */
            iload 3 /* disable */
            invokevirtual android.hardware.SystemSensorManager$TriggerEventQueue.removeSensor:(Landroid/hardware/Sensor;Z)Z
            istore 6 /* result */
        start local 6 // boolean result
         9: .line 266
      StackMap locals: int
      StackMap stack:
            iload 6 /* result */
            ifeq 12
            aload 5 /* queue */
            invokevirtual android.hardware.SystemSensorManager$TriggerEventQueue.hasSensors:()Z
            ifne 12
        10: .line 267
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 268
            aload 5 /* queue */
            invokevirtual android.hardware.SystemSensorManager$TriggerEventQueue.dispose:()V
        12: .line 270
      StackMap locals:
      StackMap stack:
            iload 6 /* result */
            aload 4
            monitorexit
        13: ireturn
        end local 6 // boolean result
        14: .line 272
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        15: iconst_0
            ireturn
        end local 5 // android.hardware.SystemSensorManager$TriggerEventQueue queue
        16: .line 257
      StackMap locals: android.hardware.SystemSensorManager android.hardware.TriggerEventListener android.hardware.Sensor int java.util.HashMap
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        17: athrow
        end local 3 // boolean disable
        end local 2 // android.hardware.Sensor sensor
        end local 1 // android.hardware.TriggerEventListener listener
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Landroid/hardware/SystemSensorManager;
            0   18     1  listener  Landroid/hardware/TriggerEventListener;
            0   18     2    sensor  Landroid/hardware/Sensor;
            0   18     3   disable  Z
            4   16     5     queue  Landroid/hardware/SystemSensorManager$TriggerEventQueue;
            7    8     6    result  Z
            9   14     6    result  Z
      Exception table:
        from    to  target  type
           3    13      16  any
          14    15      16  any
          16    17      16  any
    MethodParameters:
          Name  Flags
      listener  
      sensor    
      disable   

  protected boolean flushImpl(android.hardware.SensorEventListener);
    descriptor: (Landroid/hardware/SensorEventListener;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.SensorEventListener listener
         0: .line 277
            aload 1 /* listener */
            ifnonnull 1
            new java.lang.IllegalArgumentException
            dup
            ldc "listener cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         1: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
         2: .line 280
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.hardware.SystemSensorManager$SensorEventQueue
            astore 3 /* queue */
        start local 3 // android.hardware.SystemSensorManager$SensorEventQueue queue
         3: .line 281
            aload 3 /* queue */
            ifnonnull 6
         4: .line 282
            aload 2
            monitorexit
         5: iconst_0
            ireturn
         6: .line 284
      StackMap locals: java.util.HashMap android.hardware.SystemSensorManager$SensorEventQueue
      StackMap stack:
            aload 3 /* queue */
            invokevirtual android.hardware.SystemSensorManager$SensorEventQueue.flush:()I
            ifne 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: aload 2
            monitorexit
         9: ireturn
        end local 3 // android.hardware.SystemSensorManager$SensorEventQueue queue
        10: .line 279
      StackMap locals: android.hardware.SystemSensorManager android.hardware.SensorEventListener java.util.HashMap
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        11: athrow
        end local 1 // android.hardware.SensorEventListener listener
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/hardware/SystemSensorManager;
            0   12     1  listener  Landroid/hardware/SensorEventListener;
            3   10     3     queue  Landroid/hardware/SystemSensorManager$SensorEventQueue;
      Exception table:
        from    to  target  type
           2     5      10  any
           6     9      10  any
          10    11      10  any
    MethodParameters:
          Name  Flags
      listener  

  protected boolean initDataInjectionImpl(boolean);
    descriptor: (Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // boolean enable
         0: .line 290
            getstatic android.hardware.SystemSensorManager.sLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 291
            iload 1 /* enable */
            ifeq 18
         2: .line 292
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mNativeInstance:J
            invokestatic android.hardware.SystemSensorManager.nativeIsDataInjectionEnabled:(J)Z
            istore 3 /* isDataInjectionModeEnabled */
        start local 3 // boolean isDataInjectionModeEnabled
         3: .line 294
            iload 3 /* isDataInjectionModeEnabled */
            ifne 7
         4: .line 295
            ldc "SensorManager"
            ldc "Data Injection mode not enabled"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 296
            aload 2
            monitorexit
         6: iconst_0
            ireturn
         7: .line 299
      StackMap locals: java.lang.Object int
      StackMap stack:
            getstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
            ifnonnull 14
         8: .line 301
            new android.hardware.SystemSensorManager$InjectEventQueue
            dup
            aload 0 /* this */
         9: .line 302
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mMainLooper:Landroid/os/Looper;
            aload 0 /* this */
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
        10: .line 301
            invokespecial android.hardware.SystemSensorManager$InjectEventQueue.<init>:(Landroid/hardware/SystemSensorManager;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
            putstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
        11: .line 303
            goto 14
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        12: astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
        13: .line 304
            ldc "SensorManager"
            new java.lang.StringBuilder
            dup
            ldc "Cannot create InjectEventQueue: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // java.lang.RuntimeException e
        14: .line 307
      StackMap locals:
      StackMap stack:
            getstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
            ifnull 15
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: aload 2
            monitorexit
        17: ireturn
        end local 3 // boolean isDataInjectionModeEnabled
        18: .line 310
      StackMap locals:
      StackMap stack:
            getstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
            ifnull 21
        19: .line 311
            getstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
            invokevirtual android.hardware.SystemSensorManager$InjectEventQueue.dispose:()V
        20: .line 312
            aconst_null
            putstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
        21: .line 314
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        22: iconst_1
            ireturn
        23: .line 290
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        24: athrow
        end local 1 // boolean enable
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   25     0                        this  Landroid/hardware/SystemSensorManager;
            0   25     1                      enable  Z
            3   18     3  isDataInjectionModeEnabled  Z
           13   14     4                           e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           8    11      12  Class java.lang.RuntimeException
           1     6      23  any
           7    17      23  any
          18    22      23  any
          23    24      23  any
    MethodParameters:
        Name  Flags
      enable  

  protected boolean injectSensorDataImpl(android.hardware.Sensor, float[], int, long);
    descriptor: (Landroid/hardware/Sensor;[FIJ)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.Sensor sensor
        start local 2 // float[] values
        start local 3 // int accuracy
        start local 4 // long timestamp
         0: .line 321
            getstatic android.hardware.SystemSensorManager.sLock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         1: .line 322
            getstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
            ifnonnull 5
         2: .line 323
            ldc "SensorManager"
            ldc "Data injection mode not activated before calling injectSensorData"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 324
            aload 6
            monitorexit
         4: iconst_0
            ireturn
         5: .line 326
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
            aload 1 /* sensor */
            invokevirtual android.hardware.Sensor.getHandle:()I
            aload 2 /* values */
            iload 3 /* accuracy */
         6: .line 327
            lload 4 /* timestamp */
         7: .line 326
            invokevirtual android.hardware.SystemSensorManager$InjectEventQueue.injectSensorData:(I[FIJ)I
            istore 7 /* ret */
        start local 7 // int ret
         8: .line 329
            iload 7 /* ret */
            ifeq 11
         9: .line 330
            getstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
            invokevirtual android.hardware.SystemSensorManager$InjectEventQueue.dispose:()V
        10: .line 331
            aconst_null
            putstatic android.hardware.SystemSensorManager.sInjectEventQueue:Landroid/hardware/SystemSensorManager$InjectEventQueue;
        11: .line 333
      StackMap locals: int
      StackMap stack:
            iload 7 /* ret */
            ifne 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: aload 6
            monitorexit
        14: ireturn
        end local 7 // int ret
        15: .line 321
      StackMap locals: android.hardware.SystemSensorManager android.hardware.Sensor float[] int long java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        16: athrow
        end local 4 // long timestamp
        end local 3 // int accuracy
        end local 2 // float[] values
        end local 1 // android.hardware.Sensor sensor
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Landroid/hardware/SystemSensorManager;
            0   17     1     sensor  Landroid/hardware/Sensor;
            0   17     2     values  [F
            0   17     3   accuracy  I
            0   17     4  timestamp  J
            8   15     7        ret  I
      Exception table:
        from    to  target  type
           1     4      15  any
           5    14      15  any
          15    16      15  any
    MethodParameters:
           Name  Flags
      sensor     
      values     
      accuracy   
      timestamp  

  private void cleanupSensorConnection(android.hardware.Sensor);
    descriptor: (Landroid/hardware/Sensor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.Sensor sensor
         0: .line 338
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mHandleToSensor:Ljava/util/HashMap;
            aload 1 /* sensor */
            invokevirtual android.hardware.Sensor.getHandle:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 340
            aload 1 /* sensor */
            invokevirtual android.hardware.Sensor.getReportingMode:()I
            iconst_2
            if_icmpne 16
         2: .line 341
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
         3: .line 343
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mTriggerListeners:Ljava/util/HashMap;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
         4: .line 342
            astore 3 /* triggerListeners */
        start local 3 // java.util.HashMap triggerListeners
         5: .line 345
            aload 3 /* triggerListeners */
            invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: android.hardware.SystemSensorManager android.hardware.Sensor java.util.HashMap java.util.HashMap top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.hardware.TriggerEventListener
            astore 4 /* l */
        start local 4 // android.hardware.TriggerEventListener l
         7: .line 347
            ldc "SensorManager"
            new java.lang.StringBuilder
            dup
            ldc "removed trigger listener"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* l */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 348
            ldc " due to sensor disconnection"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 347
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        10: .line 350
            aload 0 /* this */
            aload 4 /* l */
            aload 1 /* sensor */
            iconst_1
            invokevirtual android.hardware.SystemSensorManager.cancelTriggerSensorImpl:(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;Z)Z
            pop
        end local 4 // android.hardware.TriggerEventListener l
        11: .line 345
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 3 // java.util.HashMap triggerListeners
        12: .line 341
            aload 2
            monitorexit
        13: goto 30
      StackMap locals: android.hardware.SystemSensorManager android.hardware.Sensor java.util.HashMap
      StackMap stack: java.lang.Throwable
        14: aload 2
            monitorexit
        15: athrow
        16: .line 354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
        17: .line 356
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mSensorListeners:Ljava/util/HashMap;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
        18: .line 355
            astore 3 /* sensorListeners */
        start local 3 // java.util.HashMap sensorListeners
        19: .line 358
            aload 3 /* sensorListeners */
            invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 25
      StackMap locals: android.hardware.SystemSensorManager android.hardware.Sensor java.util.HashMap java.util.HashMap top java.util.Iterator
      StackMap stack:
        20: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.hardware.SensorEventListener
            astore 4 /* l */
        start local 4 // android.hardware.SensorEventListener l
        21: .line 360
            ldc "SensorManager"
            new java.lang.StringBuilder
            dup
            ldc "removed event listener"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* l */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        22: .line 361
            ldc " due to sensor disconnection"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 360
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        24: .line 363
            aload 0 /* this */
            aload 4 /* l */
            aload 1 /* sensor */
            invokevirtual android.hardware.SystemSensorManager.unregisterListenerImpl:(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
        end local 4 // android.hardware.SensorEventListener l
        25: .line 358
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        end local 3 // java.util.HashMap sensorListeners
        26: .line 354
            aload 2
            monitorexit
        27: goto 30
      StackMap locals: android.hardware.SystemSensorManager android.hardware.Sensor java.util.HashMap
      StackMap stack: java.lang.Throwable
        28: aload 2
            monitorexit
        29: athrow
        30: .line 367
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.hardware.Sensor sensor
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   31     0              this  Landroid/hardware/SystemSensorManager;
            0   31     1            sensor  Landroid/hardware/Sensor;
            5   12     3  triggerListeners  Ljava/util/HashMap<Landroid/hardware/TriggerEventListener;Landroid/hardware/SystemSensorManager$TriggerEventQueue;>;
            7   11     4                 l  Landroid/hardware/TriggerEventListener;
           19   26     3   sensorListeners  Ljava/util/HashMap<Landroid/hardware/SensorEventListener;Landroid/hardware/SystemSensorManager$SensorEventQueue;>;
           21   25     4                 l  Landroid/hardware/SensorEventListener;
      Exception table:
        from    to  target  type
           3    13      14  any
          14    15      14  any
          17    27      28  any
          28    29      28  any
    MethodParameters:
        Name  Flags
      sensor  

  private void updateDynamicSensorList();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=1
        start local 0 // android.hardware.SystemSensorManager this
         0: .line 370
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mFullDynamicSensorsList:Ljava/util/List;
            dup
            astore 1
            monitorenter
         1: .line 371
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mDynamicSensorListDirty:Z
            ifeq 30
         2: .line 372
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* list */
        start local 2 // java.util.List list
         3: .line 373
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mNativeInstance:J
            aload 2 /* list */
            invokestatic android.hardware.SystemSensorManager.nativeGetDynamicSensors:(JLjava/util/List;)V
         4: .line 375
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* updatedList */
        start local 3 // java.util.List updatedList
         5: .line 376
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* addedList */
        start local 4 // java.util.List addedList
         6: .line 377
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* removedList */
        start local 5 // java.util.List removedList
         7: .line 380
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mFullDynamicSensorsList:Ljava/util/List;
            aload 2 /* list */
            aload 3 /* updatedList */
            aload 4 /* addedList */
            aload 5 /* removedList */
         8: .line 379
            invokestatic android.hardware.SystemSensorManager.diffSortedSensorList:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
            istore 6 /* changed */
        start local 6 // boolean changed
         9: .line 382
            iload 6 /* changed */
            ifeq 29
        10: .line 384
            ldc "SensorManager"
            ldc "DYNS dynamic sensor list cached should be updated"
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        11: .line 386
            aload 0 /* this */
            aload 3 /* updatedList */
            putfield android.hardware.SystemSensorManager.mFullDynamicSensorsList:Ljava/util/List;
        12: .line 388
            aload 4 /* addedList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 15
      StackMap locals: android.hardware.SystemSensorManager java.util.List java.util.List java.util.List java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
        13: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.hardware.Sensor
            astore 7 /* s */
        start local 7 // android.hardware.Sensor s
        14: .line 389
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mHandleToSensor:Ljava/util/HashMap;
            aload 7 /* s */
            invokevirtual android.hardware.Sensor.getHandle:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 7 /* s */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // android.hardware.Sensor s
        15: .line 388
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 392
            new android.os.Handler
            dup
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getMainLooper:()Landroid/os/Looper;
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
            astore 7 /* mainHandler */
        start local 7 // android.os.Handler mainHandler
        17: .line 395
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mDynamicSensorCallbacks:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 24
      StackMap locals: android.hardware.SystemSensorManager java.util.List java.util.List java.util.List java.util.List java.util.List int android.os.Handler top java.util.Iterator
      StackMap stack:
        18: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* entry */
        start local 8 // java.util.Map$Entry entry
        19: .line 396
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast android.hardware.SensorManager$DynamicSensorCallback
            astore 10 /* callback */
        start local 10 // android.hardware.SensorManager$DynamicSensorCallback callback
        20: .line 398
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            ifnonnull 21
            aload 7 /* mainHandler */
            goto 22
      StackMap locals: android.hardware.SystemSensorManager java.util.List java.util.List java.util.List java.util.List java.util.List int android.os.Handler java.util.Map$Entry java.util.Iterator android.hardware.SensorManager$DynamicSensorCallback
      StackMap stack:
        21: aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast android.os.Handler
        22: .line 397
      StackMap locals:
      StackMap stack: android.os.Handler
            astore 11 /* handler */
        start local 11 // android.os.Handler handler
        23: .line 400
            aload 11 /* handler */
            new android.hardware.SystemSensorManager$1
            dup
            aload 0 /* this */
            aload 4 /* addedList */
            aload 10 /* callback */
            aload 5 /* removedList */
            invokespecial android.hardware.SystemSensorManager$1.<init>:(Landroid/hardware/SystemSensorManager;Ljava/util/List;Landroid/hardware/SensorManager$DynamicSensorCallback;Ljava/util/List;)V
            invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
            pop
        end local 11 // android.os.Handler handler
        end local 10 // android.hardware.SensorManager$DynamicSensorCallback callback
        end local 8 // java.util.Map$Entry entry
        24: .line 394
      StackMap locals: android.hardware.SystemSensorManager java.util.List java.util.List java.util.List java.util.List java.util.List int android.os.Handler top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        25: .line 413
            aload 5 /* removedList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 28
      StackMap locals:
      StackMap stack:
        26: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.hardware.Sensor
            astore 8 /* s */
        start local 8 // android.hardware.Sensor s
        27: .line 414
            aload 0 /* this */
            aload 8 /* s */
            invokevirtual android.hardware.SystemSensorManager.cleanupSensorConnection:(Landroid/hardware/Sensor;)V
        end local 8 // android.hardware.Sensor s
        28: .line 413
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        end local 7 // android.os.Handler mainHandler
        29: .line 418
      StackMap locals: android.hardware.SystemSensorManager java.util.List java.util.List java.util.List java.util.List java.util.List int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.hardware.SystemSensorManager.mDynamicSensorListDirty:Z
        end local 6 // boolean changed
        end local 5 // java.util.List removedList
        end local 4 // java.util.List addedList
        end local 3 // java.util.List updatedList
        end local 2 // java.util.List list
        30: .line 370
      StackMap locals: android.hardware.SystemSensorManager java.util.List
      StackMap stack:
            aload 1
            monitorexit
        31: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: aload 1
            monitorexit
        33: athrow
        34: .line 421
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0         this  Landroid/hardware/SystemSensorManager;
            3   30     2         list  Ljava/util/List<Landroid/hardware/Sensor;>;
            5   30     3  updatedList  Ljava/util/List<Landroid/hardware/Sensor;>;
            6   30     4    addedList  Ljava/util/List<Landroid/hardware/Sensor;>;
            7   30     5  removedList  Ljava/util/List<Landroid/hardware/Sensor;>;
            9   30     6      changed  Z
           14   15     7            s  Landroid/hardware/Sensor;
           17   29     7  mainHandler  Landroid/os/Handler;
           19   24     8        entry  Ljava/util/Map$Entry<Landroid/hardware/SensorManager$DynamicSensorCallback;Landroid/os/Handler;>;
           20   24    10     callback  Landroid/hardware/SensorManager$DynamicSensorCallback;
           23   24    11      handler  Landroid/os/Handler;
           27   28     8            s  Landroid/hardware/Sensor;
      Exception table:
        from    to  target  type
           1    31      32  any
          32    33      32  any

  private void setupDynamicSensorBroadcastReceiver();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.hardware.SystemSensorManager this
         0: .line 424
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mDynamicSensorBroadcastReceiver:Landroid/content/BroadcastReceiver;
            ifnonnull 5
         1: .line 425
            aload 0 /* this */
            new android.hardware.SystemSensorManager$2
            dup
            aload 0 /* this */
            invokespecial android.hardware.SystemSensorManager$2.<init>:(Landroid/hardware/SystemSensorManager;)V
            putfield android.hardware.SystemSensorManager.mDynamicSensorBroadcastReceiver:Landroid/content/BroadcastReceiver;
         2: .line 439
            new android.content.IntentFilter
            dup
            ldc "dynamic_sensor_change"
            invokespecial android.content.IntentFilter.<init>:(Ljava/lang/String;)V
            astore 1 /* filter */
        start local 1 // android.content.IntentFilter filter
         3: .line 440
            aload 1 /* filter */
            ldc "android.intent.action.DYNAMIC_SENSOR_CHANGED"
            invokevirtual android.content.IntentFilter.addAction:(Ljava/lang/String;)V
         4: .line 441
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mContext:Landroid/content/Context;
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mDynamicSensorBroadcastReceiver:Landroid/content/BroadcastReceiver;
            aload 1 /* filter */
            invokevirtual android.content.Context.registerReceiver:(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
            pop
        end local 1 // android.content.IntentFilter filter
         5: .line 443
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Landroid/hardware/SystemSensorManager;
            3    5     1  filter  Landroid/content/IntentFilter;

  private void teardownDynamicSensorBroadcastReceiver();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.hardware.SystemSensorManager this
         0: .line 446
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mDynamicSensorCallbacks:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
         1: .line 447
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mContext:Landroid/content/Context;
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mDynamicSensorBroadcastReceiver:Landroid/content/BroadcastReceiver;
            invokevirtual android.content.Context.unregisterReceiver:(Landroid/content/BroadcastReceiver;)V
         2: .line 448
            aload 0 /* this */
            aconst_null
            putfield android.hardware.SystemSensorManager.mDynamicSensorBroadcastReceiver:Landroid/content/BroadcastReceiver;
         3: .line 449
            return
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/hardware/SystemSensorManager;

  protected void registerDynamicSensorCallbackImpl(android.hardware.SensorManager$DynamicSensorCallback, android.os.Handler);
    descriptor: (Landroid/hardware/SensorManager$DynamicSensorCallback;Landroid/os/Handler;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.SensorManager$DynamicSensorCallback callback
        start local 2 // android.os.Handler handler
         0: .line 455
            ldc "SensorManager"
            ldc "DYNS Register dynamic sensor callback"
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 458
            aload 1 /* callback */
            ifnonnull 3
         2: .line 459
            new java.lang.IllegalArgumentException
            dup
            ldc "callback cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mDynamicSensorCallbacks:Ljava/util/HashMap;
            aload 1 /* callback */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 463
            return
         5: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.hardware.SystemSensorManager.setupDynamicSensorBroadcastReceiver:()V
         6: .line 467
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mDynamicSensorCallbacks:Ljava/util/HashMap;
            aload 1 /* callback */
            aload 2 /* handler */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 468
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.hardware.SensorManager$DynamicSensorCallback callback
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/hardware/SystemSensorManager;
            0    8     1  callback  Landroid/hardware/SensorManager$DynamicSensorCallback;
            0    8     2   handler  Landroid/os/Handler;
    MethodParameters:
          Name  Flags
      callback  
      handler   

  protected void unregisterDynamicSensorCallbackImpl(android.hardware.SensorManager$DynamicSensorCallback);
    descriptor: (Landroid/hardware/SensorManager$DynamicSensorCallback;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.SensorManager$DynamicSensorCallback callback
         0: .line 474
            ldc "SensorManager"
            ldc "Removing dynamic sensor listerner"
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 476
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mDynamicSensorCallbacks:Ljava/util/HashMap;
            aload 1 /* callback */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 477
            return
        end local 1 // android.hardware.SensorManager$DynamicSensorCallback callback
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Landroid/hardware/SystemSensorManager;
            0    3     1  callback  Landroid/hardware/SensorManager$DynamicSensorCallback;
    MethodParameters:
          Name  Flags
      callback  

  private static boolean diffSortedSensorList(java.util.List<android.hardware.Sensor>, java.util.List<android.hardware.Sensor>, java.util.List<android.hardware.Sensor>, java.util.List<android.hardware.Sensor>, java.util.List<android.hardware.Sensor>);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // java.util.List oldList
        start local 1 // java.util.List newList
        start local 2 // java.util.List updated
        start local 3 // java.util.List added
        start local 4 // java.util.List removed
         0: .line 489
            iconst_0
            istore 5 /* changed */
        start local 5 // boolean changed
         1: .line 491
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: iconst_0
            istore 7 /* j */
        start local 7 // int j
         3: .line 493
      StackMap locals: int int int
      StackMap stack:
            iload 7 /* j */
            aload 0 /* oldList */
            invokeinterface java.util.List.size:()I
            if_icmpge 10
            iload 6 /* i */
            aload 1 /* newList */
            invokeinterface java.util.List.size:()I
            if_icmpge 5
         4: .line 494
            aload 1 /* newList */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokevirtual android.hardware.Sensor.getHandle:()I
            aload 0 /* oldList */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokevirtual android.hardware.Sensor.getHandle:()I
            if_icmple 10
         5: .line 495
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* changed */
         6: .line 496
            aload 4 /* removed */
            ifnull 8
         7: .line 497
            aload 4 /* removed */
            aload 0 /* oldList */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 499
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
         9: .line 500
            goto 3
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            aload 1 /* newList */
            invokeinterface java.util.List.size:()I
            if_icmpge 19
            iload 7 /* j */
            aload 0 /* oldList */
            invokeinterface java.util.List.size:()I
            if_icmpge 12
        11: .line 501
            aload 1 /* newList */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokevirtual android.hardware.Sensor.getHandle:()I
            aload 0 /* oldList */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokevirtual android.hardware.Sensor.getHandle:()I
            if_icmpge 19
        12: .line 502
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* changed */
        13: .line 503
            aload 3 /* added */
            ifnull 15
        14: .line 504
            aload 3 /* added */
            aload 1 /* newList */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 506
      StackMap locals:
      StackMap stack:
            aload 2 /* updated */
            ifnull 17
        16: .line 507
            aload 2 /* updated */
            aload 1 /* newList */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 509
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
        18: .line 510
            goto 3
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            aload 1 /* newList */
            invokeinterface java.util.List.size:()I
            if_icmpge 26
            iload 7 /* j */
            aload 0 /* oldList */
            invokeinterface java.util.List.size:()I
            if_icmpge 26
        20: .line 511
            aload 1 /* newList */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokevirtual android.hardware.Sensor.getHandle:()I
            aload 0 /* oldList */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokevirtual android.hardware.Sensor.getHandle:()I
            if_icmpne 26
        21: .line 512
            aload 2 /* updated */
            ifnull 23
        22: .line 513
            aload 2 /* updated */
            aload 0 /* oldList */
            iload 7 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.hardware.Sensor
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 515
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
        24: .line 516
            iinc 7 /* j */ 1
        25: .line 492
            goto 3
        26: .line 521
      StackMap locals:
      StackMap stack:
            iload 5 /* changed */
            ireturn
        end local 7 // int j
        end local 6 // int i
        end local 5 // boolean changed
        end local 4 // java.util.List removed
        end local 3 // java.util.List added
        end local 2 // java.util.List updated
        end local 1 // java.util.List newList
        end local 0 // java.util.List oldList
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0  oldList  Ljava/util/List<Landroid/hardware/Sensor;>;
            0   27     1  newList  Ljava/util/List<Landroid/hardware/Sensor;>;
            0   27     2  updated  Ljava/util/List<Landroid/hardware/Sensor;>;
            0   27     3    added  Ljava/util/List<Landroid/hardware/Sensor;>;
            0   27     4  removed  Ljava/util/List<Landroid/hardware/Sensor;>;
            1   27     5  changed  Z
            2   27     6        i  I
            3   27     7        j  I
    Signature: (Ljava/util/List<Landroid/hardware/Sensor;>;Ljava/util/List<Landroid/hardware/Sensor;>;Ljava/util/List<Landroid/hardware/Sensor;>;Ljava/util/List<Landroid/hardware/Sensor;>;Ljava/util/List<Landroid/hardware/Sensor;>;)Z
    MethodParameters:
         Name  Flags
      oldList  
      newList  
      updated  
      added    
      removed  

  protected int configureDirectChannelImpl(android.hardware.SensorDirectChannel, android.hardware.Sensor, int);
    descriptor: (Landroid/hardware/SensorDirectChannel;Landroid/hardware/Sensor;I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.SensorDirectChannel channel
        start local 2 // android.hardware.Sensor sensor
        start local 3 // int rate
         0: .line 527
            aload 1 /* channel */
            invokevirtual android.hardware.SensorDirectChannel.isOpen:()Z
            ifne 2
         1: .line 528
            new java.lang.IllegalStateException
            dup
            ldc "channel is closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 531
      StackMap locals:
      StackMap stack:
            iload 3 /* rate */
            iflt 4
         3: .line 532
            iload 3 /* rate */
            iconst_3
            if_icmple 5
         4: .line 533
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "rate parameter invalid"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 536
      StackMap locals:
      StackMap stack:
            aload 2 /* sensor */
            ifnonnull 9
            iload 3 /* rate */
            ifeq 9
         6: .line 538
            new java.lang.IllegalArgumentException
            dup
         7: .line 539
            ldc "when sensor is null, rate can only be DIRECT_RATE_STOP"
         8: .line 538
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 542
      StackMap locals:
      StackMap stack:
            aload 2 /* sensor */
            ifnonnull 10
            iconst_m1
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2 /* sensor */
            invokevirtual android.hardware.Sensor.getHandle:()I
      StackMap locals:
      StackMap stack: int
        11: istore 4 /* sensorHandle */
        start local 4 // int sensorHandle
        12: .line 545
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mNativeInstance:J
            aload 1 /* channel */
            invokevirtual android.hardware.SensorDirectChannel.getNativeHandle:()I
            iload 4 /* sensorHandle */
            iload 3 /* rate */
        13: .line 544
            invokestatic android.hardware.SystemSensorManager.nativeConfigDirectChannel:(JIII)I
            istore 5 /* ret */
        start local 5 // int ret
        14: .line 547
            iload 3 /* rate */
            ifne 18
        15: .line 548
            iload 5 /* ret */
            ifne 16
            iconst_1
            goto 17
      StackMap locals: int int
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: ireturn
        18: .line 550
      StackMap locals:
      StackMap stack:
            iload 5 /* ret */
            ifle 19
            iload 5 /* ret */
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: ireturn
        end local 5 // int ret
        end local 4 // int sensorHandle
        end local 3 // int rate
        end local 2 // android.hardware.Sensor sensor
        end local 1 // android.hardware.SensorDirectChannel channel
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Landroid/hardware/SystemSensorManager;
            0   21     1       channel  Landroid/hardware/SensorDirectChannel;
            0   21     2        sensor  Landroid/hardware/Sensor;
            0   21     3          rate  I
           12   21     4  sensorHandle  I
           14   21     5           ret  I
    MethodParameters:
         Name  Flags
      channel  
      sensor   
      rate     

  protected android.hardware.SensorDirectChannel createDirectChannelImpl(android.os.MemoryFile, android.hardware.HardwareBuffer);
    descriptor: (Landroid/os/MemoryFile;Landroid/hardware/HardwareBuffer;)Landroid/hardware/SensorDirectChannel;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.hardware.SystemSensorManager this
         0: .line 563
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tThe method getInt$() is undefined for the type FileDescriptor\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/hardware/SystemSensorManager;
    MethodParameters:
                Name  Flags
      memoryFile      
      hardwareBuffer  

  protected void destroyDirectChannelImpl(android.hardware.SensorDirectChannel);
    descriptor: (Landroid/hardware/SensorDirectChannel;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.SensorDirectChannel channel
         0: .line 615
            aload 1 /* channel */
            ifnull 2
         1: .line 616
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mNativeInstance:J
            aload 1 /* channel */
            invokevirtual android.hardware.SensorDirectChannel.getNativeHandle:()I
            invokestatic android.hardware.SystemSensorManager.nativeDestroyDirectChannel:(JI)V
         2: .line 618
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.hardware.SensorDirectChannel channel
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/hardware/SystemSensorManager;
            0    3     1  channel  Landroid/hardware/SensorDirectChannel;
    MethodParameters:
         Name  Flags
      channel  

  protected boolean setOperationParameterImpl(android.hardware.SensorAdditionalInfo);
    descriptor: (Landroid/hardware/SensorAdditionalInfo;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // android.hardware.SystemSensorManager this
        start local 1 // android.hardware.SensorAdditionalInfo parameter
         0: .line 962
            iconst_m1
            istore 2 /* handle */
        start local 2 // int handle
         1: .line 963
            aload 1 /* parameter */
            getfield android.hardware.SensorAdditionalInfo.sensor:Landroid/hardware/Sensor;
            ifnull 2
            aload 1 /* parameter */
            getfield android.hardware.SensorAdditionalInfo.sensor:Landroid/hardware/Sensor;
            invokevirtual android.hardware.Sensor.getHandle:()I
            istore 2 /* handle */
         2: .line 965
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.SystemSensorManager.mNativeInstance:J
            iload 2 /* handle */
         3: .line 966
            aload 1 /* parameter */
            getfield android.hardware.SensorAdditionalInfo.type:I
            aload 1 /* parameter */
            getfield android.hardware.SensorAdditionalInfo.floatValues:[F
            aload 1 /* parameter */
            getfield android.hardware.SensorAdditionalInfo.intValues:[I
         4: .line 964
            invokestatic android.hardware.SystemSensorManager.nativeSetOperationParameter:(JII[F[I)I
            ifne 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 2 // int handle
        end local 1 // android.hardware.SensorAdditionalInfo parameter
        end local 0 // android.hardware.SystemSensorManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Landroid/hardware/SystemSensorManager;
            0    6     1  parameter  Landroid/hardware/SensorAdditionalInfo;
            1    6     2     handle  I
    MethodParameters:
           Name  Flags
      parameter  
}
SourceFile: "SystemSensorManager.java"
NestMembers:
  android.hardware.SystemSensorManager$1  android.hardware.SystemSensorManager$2  android.hardware.SystemSensorManager$BaseEventQueue  android.hardware.SystemSensorManager$InjectEventQueue  android.hardware.SystemSensorManager$SensorEventQueue  android.hardware.SystemSensorManager$TriggerEventQueue
InnerClasses:
  public abstract DynamicSensorCallback = android.hardware.SensorManager$DynamicSensorCallback of android.hardware.SensorManager
  android.hardware.SystemSensorManager$1
  android.hardware.SystemSensorManager$2
  private abstract BaseEventQueue = android.hardware.SystemSensorManager$BaseEventQueue of android.hardware.SystemSensorManager
  final InjectEventQueue = android.hardware.SystemSensorManager$InjectEventQueue of android.hardware.SystemSensorManager
  final SensorEventQueue = android.hardware.SystemSensorManager$SensorEventQueue of android.hardware.SystemSensorManager
  final TriggerEventQueue = android.hardware.SystemSensorManager$TriggerEventQueue of android.hardware.SystemSensorManager
  public abstract Entry = java.util.Map$Entry of java.util.Map