public class com.android.keyguard.KeyguardUpdateMonitor implements android.app.trust.TrustManager$TrustListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.keyguard.KeyguardUpdateMonitor
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "KeyguardUpdateMonitor"

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

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

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

  private static final java.lang.String ACTION_FACE_UNLOCK_STARTED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.android.facelock.FACE_UNLOCK_STARTED"

  private static final java.lang.String ACTION_FACE_UNLOCK_STOPPED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.android.facelock.FACE_UNLOCK_STOPPED"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private static final android.content.ComponentName FALLBACK_HOME_COMPONENT;
    descriptor: Landroid/content/ComponentName;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final boolean CORE_APPS_ONLY;
    descriptor: Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static com.android.keyguard.KeyguardUpdateMonitor sInstance;
    descriptor: Lcom/android/keyguard/KeyguardUpdateMonitor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  java.util.HashMap<java.lang.Integer, com.android.keyguard.KeyguardUpdateMonitor$SimData> mSimDatas;
    descriptor: Ljava/util/HashMap;
    flags: (0x0000) 
    Signature: Ljava/util/HashMap<Ljava/lang/Integer;Lcom/android/keyguard/KeyguardUpdateMonitor$SimData;>;

  java.util.HashMap<java.lang.Integer, android.telephony.ServiceState> mServiceStates;
    descriptor: Ljava/util/HashMap;
    flags: (0x0000) 
    Signature: Ljava/util/HashMap<Ljava/lang/Integer;Landroid/telephony/ServiceState;>;

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

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

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

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

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

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

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

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

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

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

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

  protected boolean mTelephonyCapable;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()

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

  private com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus mBatteryStatus;
    descriptor: Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;
    flags: (0x0002) ACC_PRIVATE

  private final com.android.keyguard.KeyguardUpdateMonitor$StrongAuthTracker mStrongAuthTracker;
    descriptor: Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.ArrayList<java.lang.ref.WeakReference<com.android.keyguard.KeyguardUpdateMonitorCallback>> mCallbacks;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Lcom/android/keyguard/KeyguardUpdateMonitorCallback;>;>;

  private android.database.ContentObserver mDeviceProvisionedObserver;
    descriptor: Landroid/database/ContentObserver;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private android.telephony.SubscriptionManager mSubscriptionManager;
    descriptor: Landroid/telephony/SubscriptionManager;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<android.telephony.SubscriptionInfo> mSubscriptionInfo;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Landroid/telephony/SubscriptionInfo;>;

  private android.app.trust.TrustManager mTrustManager;
    descriptor: Landroid/app/trust/TrustManager;
    flags: (0x0002) ACC_PRIVATE

  private android.os.UserManager mUserManager;
    descriptor: Landroid/os/UserManager;
    flags: (0x0002) ACC_PRIVATE

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

  private com.android.internal.widget.LockPatternUtils mLockPatternUtils;
    descriptor: Lcom/android/internal/widget/LockPatternUtils;
    flags: (0x0002) ACC_PRIVATE

  private final android.service.dreams.IDreamManager mDreamManager;
    descriptor: Landroid/service/dreams/IDreamManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final android.app.admin.DevicePolicyManager mDevicePolicyManager;
    descriptor: Landroid/app/admin/DevicePolicyManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

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

  private android.telephony.SubscriptionManager$OnSubscriptionsChangedListener mSubscriptionListener;
    descriptor: Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;
    flags: (0x0002) ACC_PRIVATE

  private android.util.SparseBooleanArray mUserHasTrust;
    descriptor: Landroid/util/SparseBooleanArray;
    flags: (0x0002) ACC_PRIVATE

  private android.util.SparseBooleanArray mUserTrustIsManaged;
    descriptor: Landroid/util/SparseBooleanArray;
    flags: (0x0002) ACC_PRIVATE

  private android.util.SparseBooleanArray mUserFingerprintAuthenticated;
    descriptor: Landroid/util/SparseBooleanArray;
    flags: (0x0002) ACC_PRIVATE

  private android.util.SparseBooleanArray mUserFaceUnlockRunning;
    descriptor: Landroid/util/SparseBooleanArray;
    flags: (0x0002) ACC_PRIVATE

  private static int sCurrentUser;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.lang.Runnable mUpdateFingerprintListeningState;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private static boolean sDisableHandlerCheckForTesting;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.lang.Runnable mRetryFingerprintAuthentication;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private com.android.keyguard.KeyguardUpdateMonitor$DisplayClientState mDisplayClientState;
    descriptor: Lcom/android/keyguard/KeyguardUpdateMonitor$DisplayClientState;
    flags: (0x0002) ACC_PRIVATE

  protected final android.content.BroadcastReceiver mBroadcastReceiver;
    descriptor: Landroid/content/BroadcastReceiver;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()

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

  private final android.hardware.fingerprint.FingerprintManager$LockoutResetCallback mLockoutResetCallback;
    descriptor: Landroid/hardware/fingerprint/FingerprintManager$LockoutResetCallback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.hardware.fingerprint.FingerprintManager$AuthenticationCallback mAuthenticationCallback;
    descriptor: Landroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;
    flags: (0x0002) ACC_PRIVATE

  private android.os.CancellationSignal mFingerprintCancelSignal;
    descriptor: Landroid/os/CancellationSignal;
    flags: (0x0002) ACC_PRIVATE

  private android.hardware.fingerprint.FingerprintManager mFpm;
    descriptor: Landroid/hardware/fingerprint/FingerprintManager;
    flags: (0x0002) ACC_PRIVATE

  private final com.android.systemui.recents.misc.SysUiTaskStackChangeListener mTaskStackListener;
    descriptor: Lcom/android/systemui/recents/misc/SysUiTaskStackChangeListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 172
            new android.content.ComponentName
            dup
         1: .line 173
            ldc "com.android.settings"
            ldc "com.android.settings.FallbackHome"
         2: .line 172
            invokespecial android.content.ComponentName.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            putstatic com.android.keyguard.KeyguardUpdateMonitor.FALLBACK_HOME_COMPONENT:Landroid/content/ComponentName;
         3: .line 184
            ldc "package"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
         4: .line 183
            invokestatic android.content.pm.IPackageManager$Stub.asInterface:(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
         5: .line 184
            invokeinterface android.content.pm.IPackageManager.isOnlyCoreApps:()Z
         6: .line 183
            putstatic com.android.keyguard.KeyguardUpdateMonitor.CORE_APPS_ONLY:Z
         7: .line 185
            goto 10
      StackMap locals:
      StackMap stack: android.os.RemoteException
         8: astore 0 /* e */
        start local 0 // android.os.RemoteException e
         9: .line 186
            aload 0 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 0 // android.os.RemoteException e
        10: .line 369
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            9   10     0     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     7       8  Class android.os.RemoteException

  public static synchronized void setCurrentUser(int);
    descriptor: (I)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int currentUser
         0: .line 372
            iload 0 /* currentUser */
            putstatic com.android.keyguard.KeyguardUpdateMonitor.sCurrentUser:I
         1: .line 373
            return
        end local 0 // int currentUser
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0  currentUser  I
    MethodParameters:
             Name  Flags
      currentUser  

  public static synchronized int getCurrentUser();
    descriptor: ()I
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=0, args_size=0
         0: .line 376
            getstatic com.android.keyguard.KeyguardUpdateMonitor.sCurrentUser:I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void onTrustChanged(boolean, int, int);
    descriptor: (ZII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean enabled
        start local 2 // int userId
        start local 3 // int flags
         0: .line 381
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 382
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserHasTrust:Landroid/util/SparseBooleanArray;
            iload 2 /* userId */
            iload 1 /* enabled */
            invokevirtual android.util.SparseBooleanArray.put:(IZ)V
         2: .line 383
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 10
         4: .line 384
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 4 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 5 /* cb */
        start local 5 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 385
            aload 5 /* cb */
            ifnull 9
         6: .line 386
            aload 5 /* cb */
            iload 2 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onTrustChanged:(I)V
         7: .line 387
            iload 1 /* enabled */
            ifeq 9
            iload 3 /* flags */
            ifeq 9
         8: .line 388
            aload 5 /* cb */
            iload 3 /* flags */
            iload 2 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onTrustGrantedWithFlags:(II)V
        end local 5 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         9: .line 383
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 4
        end local 4 // int i
        11: .line 392
            return
        end local 3 // int flags
        end local 2 // int userId
        end local 1 // boolean enabled
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   12     1  enabled  Z
            0   12     2   userId  I
            0   12     3    flags  I
            3   11     4        i  I
            5    9     5       cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
         Name  Flags
      enabled  
      userId   
      flags    

  public void onTrustError(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // java.lang.CharSequence message
         0: .line 396
            aload 0 /* this */
            aload 1 /* message */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.dispatchErrorMessage:(Ljava/lang/CharSequence;)V
         1: .line 397
            return
        end local 1 // java.lang.CharSequence message
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    2     1  message  Ljava/lang/CharSequence;
    MethodParameters:
         Name  Flags
      message  

  private void handleSimSubscriptionInfoChanged();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 411
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getSubscriptionInfo:(Z)Ljava/util/List;
            astore 1 /* subscriptionInfos */
        start local 1 // java.util.List subscriptionInfos
         1: .line 416
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* changedSubscriptions */
        start local 2 // java.util.ArrayList changedSubscriptions
         2: .line 417
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 9
         4: .line 418
      StackMap locals: java.util.List java.util.ArrayList int
      StackMap stack:
            aload 1 /* subscriptionInfos */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.telephony.SubscriptionInfo
            astore 4 /* info */
        start local 4 // android.telephony.SubscriptionInfo info
         5: .line 419
            aload 0 /* this */
            aload 4 /* info */
            invokevirtual android.telephony.SubscriptionInfo.getSubscriptionId:()I
            aload 4 /* info */
            invokevirtual android.telephony.SubscriptionInfo.getSimSlotIndex:()I
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.refreshSimState:(II)Z
            istore 5 /* changed */
        start local 5 // boolean changed
         6: .line 420
            iload 5 /* changed */
            ifeq 8
         7: .line 421
            aload 2 /* changedSubscriptions */
            aload 4 /* info */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // boolean changed
        end local 4 // android.telephony.SubscriptionInfo info
         8: .line 417
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 1 /* subscriptionInfos */
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 3 // int i
        10: .line 424
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        11: goto 21
        12: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSimDatas:Ljava/util/HashMap;
            aload 2 /* changedSubscriptions */
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.telephony.SubscriptionInfo
            invokevirtual android.telephony.SubscriptionInfo.getSubscriptionId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitor$SimData
            astore 4 /* data */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitor$SimData data
        13: .line 426
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        14: goto 19
        15: .line 427
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor$SimData int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 5 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 6 /* cb */
        start local 6 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        16: .line 428
            aload 6 /* cb */
            ifnull 18
        17: .line 429
            aload 6 /* cb */
            aload 4 /* data */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.subId:I
            aload 4 /* data */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.slotId:I
            aload 4 /* data */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.simState:Lcom/android/internal/telephony/IccCardConstants$State;
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onSimStateChanged:(IILcom/android/internal/telephony/IccCardConstants$State;)V
        end local 6 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        18: .line 426
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        19: iload 5 /* j */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 15
        end local 5 // int j
        end local 4 // com.android.keyguard.KeyguardUpdateMonitor$SimData data
        20: .line 424
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 3 /* i */
            aload 2 /* changedSubscriptions */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 12
        end local 3 // int i
        22: .line 433
            iconst_0
            istore 3 /* j */
        start local 3 // int j
        23: goto 28
        24: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        25: .line 435
            aload 4 /* cb */
            ifnull 27
        26: .line 436
            aload 4 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onRefreshCarrierInfo:()V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        27: .line 433
      StackMap locals:
      StackMap stack:
            iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
        28: iload 3 /* j */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 24
        end local 3 // int j
        29: .line 439
            return
        end local 2 // java.util.ArrayList changedSubscriptions
        end local 1 // java.util.List subscriptionInfos
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   30     0                  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            1   30     1     subscriptionInfos  Ljava/util/List<Landroid/telephony/SubscriptionInfo;>;
            2   30     2  changedSubscriptions  Ljava/util/ArrayList<Landroid/telephony/SubscriptionInfo;>;
            3   10     3                     i  I
            5    8     4                  info  Landroid/telephony/SubscriptionInfo;
            6    8     5               changed  Z
           11   22     3                     i  I
           13   20     4                  data  Lcom/android/keyguard/KeyguardUpdateMonitor$SimData;
           14   20     5                     j  I
           16   18     6                    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
           23   29     3                     j  I
           25   27     4                    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  private void handleAirplaneModeChanged();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 442
            iconst_0
            istore 1 /* j */
        start local 1 // int j
         1: goto 6
         2: .line 443
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 1 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 2 /* cb */
        start local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         3: .line 444
            aload 2 /* cb */
            ifnull 5
         4: .line 445
            aload 2 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onRefreshCarrierInfo:()V
        end local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 442
      StackMap locals:
      StackMap stack:
            iinc 1 /* j */ 1
      StackMap locals:
      StackMap stack:
         6: iload 1 /* j */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 1 // int j
         7: .line 448
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            1    7     1     j  I
            3    5     2    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  public java.util.List<android.telephony.SubscriptionInfo> getSubscriptionInfo(boolean);
    descriptor: (Z)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean forceReload
         0: .line 452
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSubscriptionInfo:Ljava/util/List;
            astore 2 /* sil */
        start local 2 // java.util.List sil
         1: .line 453
            aload 2 /* sil */
            ifnull 2
            iload 1 /* forceReload */
            ifeq 3
         2: .line 454
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSubscriptionManager:Landroid/telephony/SubscriptionManager;
            invokevirtual android.telephony.SubscriptionManager.getActiveSubscriptionInfoList:()Ljava/util/List;
            astore 2 /* sil */
         3: .line 456
      StackMap locals:
      StackMap stack:
            aload 2 /* sil */
            ifnonnull 6
         4: .line 458
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.android.keyguard.KeyguardUpdateMonitor.mSubscriptionInfo:Ljava/util/List;
         5: .line 459
            goto 7
         6: .line 460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* sil */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mSubscriptionInfo:Ljava/util/List;
         7: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSubscriptionInfo:Ljava/util/List;
            areturn
        end local 2 // java.util.List sil
        end local 1 // boolean forceReload
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    8     1  forceReload  Z
            1    8     2          sil  Ljava/util/List<Landroid/telephony/SubscriptionInfo;>;
    Signature: (Z)Ljava/util/List<Landroid/telephony/SubscriptionInfo;>;
    MethodParameters:
             Name  Flags
      forceReload  

  public void onTrustManagedChanged(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean managed
        start local 2 // int userId
         0: .line 467
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 468
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserTrustIsManaged:Landroid/util/SparseBooleanArray;
            iload 2 /* userId */
            iload 1 /* managed */
            invokevirtual android.util.SparseBooleanArray.put:(IZ)V
         2: .line 470
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 471
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 472
            aload 4 /* cb */
            ifnull 7
         6: .line 473
            aload 4 /* cb */
            iload 2 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onTrustManagedChanged:(I)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 470
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 4
        end local 3 // int i
         9: .line 476
            return
        end local 2 // int userId
        end local 1 // boolean managed
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   10     1  managed  Z
            0   10     2   userId  I
            3    9     3        i  I
            5    7     4       cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
         Name  Flags
      managed  
      userId   

  public void setKeyguardGoingAway(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean goingAway
         0: .line 483
            aload 0 /* this */
            iload 1 /* goingAway */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardGoingAway:Z
         1: .line 484
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
         2: .line 485
            return
        end local 1 // boolean goingAway
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    3     1  goingAway  Z
    MethodParameters:
           Name  Flags
      goingAway  

  public void setKeyguardOccluded(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean occluded
         0: .line 492
            aload 0 /* this */
            iload 1 /* occluded */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardOccluded:Z
         1: .line 493
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
         2: .line 494
            return
        end local 1 // boolean occluded
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    3     1  occluded  Z
    MethodParameters:
          Name  Flags
      occluded  

  public boolean isDreaming();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 500
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mIsDreaming:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public void awakenFromDream();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 507
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mIsDreaming:Z
            ifeq 5
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDreamManager:Landroid/service/dreams/IDreamManager;
            ifnull 5
         1: .line 509
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDreamManager:Landroid/service/dreams/IDreamManager;
            invokeinterface android.service.dreams.IDreamManager.awaken:()V
         2: .line 510
            goto 5
      StackMap locals:
      StackMap stack: android.os.RemoteException
         3: pop
         4: .line 511
            ldc "KeyguardUpdateMonitor"
            ldc "Unable to awaken from dream"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 514
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  private void onFingerprintAuthenticated(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 517
            ldc "KeyGuardUpdateMonitor#onFingerPrintAuthenticated"
            invokestatic android.os.Trace.beginSection:(Ljava/lang/String;)V
         1: .line 518
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserFingerprintAuthenticated:Landroid/util/SparseBooleanArray;
            iload 1 /* userId */
            iconst_1
            invokevirtual android.util.SparseBooleanArray.put:(IZ)V
         2: .line 520
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getUserCanSkipBouncer:(I)Z
            ifeq 4
         3: .line 521
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mTrustManager:Landroid/app/trust/TrustManager;
            iload 1 /* userId */
            invokevirtual android.app.trust.TrustManager.unlockedByFingerprintForUser:(I)V
         4: .line 524
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintCancelSignal:Landroid/os/CancellationSignal;
         5: .line 525
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 11
         7: .line 526
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         8: .line 527
            aload 3 /* cb */
            ifnull 10
         9: .line 528
            aload 3 /* cb */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onFingerprintAuthenticated:(I)V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        10: .line 525
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 7
        end local 2 // int i
        12: .line 532
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 336
            invokevirtual android.os.Handler.obtainMessage:(I)Landroid/os/Message;
        13: .line 533
            ldc 500
        14: .line 532
            invokevirtual android.os.Handler.sendMessageDelayed:(Landroid/os/Message;J)Z
            pop
        15: .line 536
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.KeyguardUpdateMonitor.mAssistantVisible:Z
        16: .line 538
            invokestatic android.os.Trace.endSection:()V
        17: .line 539
            return
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   18     1  userId  I
            6   12     2       i  I
            8   10     3      cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
        Name  Flags
      userId  

  private void handleFingerprintAuthFailed();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 548
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void handleFingerprintAcquired(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int acquireInfo
         0: .line 552
            iload 1 /* acquireInfo */
            ifeq 2
         1: .line 553
            return
         2: .line 555
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 8
         4: .line 556
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 557
            aload 3 /* cb */
            ifnull 7
         6: .line 558
            aload 3 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onFingerprintAcquired:()V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 555
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 4
        end local 2 // int i
         9: .line 561
            return
        end local 1 // int acquireInfo
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   10     1  acquireInfo  I
            3    9     2            i  I
            5    7     3           cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
             Name  Flags
      acquireInfo  

  private void handleFingerprintAuthenticated(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int authUserId
         0: .line 564
            ldc "KeyGuardUpdateMonitor#handlerFingerPrintAuthenticated"
            invokestatic android.os.Trace.beginSection:(Ljava/lang/String;)V
         1: .line 568
            invokestatic android.app.ActivityManager.getService:()Landroid/app/IActivityManager;
            invokeinterface android.app.IActivityManager.getCurrentUser:()Landroid/content/pm/UserInfo;
            getfield android.content.pm.UserInfo.id:I
            istore 2 /* userId */
        start local 2 // int userId
         2: .line 569
            goto 7
        end local 2 // int userId
      StackMap locals:
      StackMap stack: android.os.RemoteException
         3: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 570
            ldc "KeyguardUpdateMonitor"
            ldc "Failed to get current user id: "
            aload 3 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         5: .line 583
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
         6: .line 571
            return
        end local 3 // android.os.RemoteException e
        start local 2 // int userId
         7: .line 573
      StackMap locals: int
      StackMap stack:
            iload 2 /* userId */
            iload 1 /* authUserId */
            if_icmpeq 11
         8: .line 574
            ldc "KeyguardUpdateMonitor"
            new java.lang.StringBuilder
            dup
            ldc "Fingerprint authenticated for wrong user: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* authUserId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 583
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
        10: .line 575
            return
        11: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isFingerprintDisabled:(I)Z
            ifeq 15
        12: .line 578
            ldc "KeyguardUpdateMonitor"
            new java.lang.StringBuilder
            dup
            ldc "Fingerprint disabled by DPM for userId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* userId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        13: .line 583
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
        14: .line 579
            return
        15: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.onFingerprintAuthenticated:(I)V
        end local 2 // int userId
        16: .line 582
            goto 20
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor int
      StackMap stack: java.lang.Throwable
        17: astore 4
        18: .line 583
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
        19: .line 584
            aload 4
            athrow
        20: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
        21: .line 585
            invokestatic android.os.Trace.endSection:()V
        22: .line 586
            return
        end local 1 // int authUserId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   23     1  authUserId  I
            2    3     2      userId  I
            7   16     2      userId  I
            4    7     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
           1     5      17  any
           7     9      17  any
          11    13      17  any
          15    17      17  any
    MethodParameters:
            Name  Flags
      authUserId  

  private void handleFingerprintHelp(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int msgId
        start local 2 // java.lang.String helpString
         0: .line 589
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 6
         2: .line 590
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         3: .line 591
            aload 4 /* cb */
            ifnull 5
         4: .line 592
            aload 4 /* cb */
            iload 1 /* msgId */
            aload 2 /* helpString */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onFingerprintHelp:(ILjava/lang/String;)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 589
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 3 // int i
         7: .line 595
            return
        end local 2 // java.lang.String helpString
        end local 1 // int msgId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    8     1       msgId  I
            0    8     2  helpString  Ljava/lang/String;
            1    7     3           i  I
            3    5     4          cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
            Name  Flags
      msgId       
      helpString  

  private void handleFingerprintError(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int msgId
        start local 2 // java.lang.String errString
         0: .line 607
            iload 1 /* msgId */
            iconst_5
            if_icmpne 5
         1: .line 608
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintRunningState:I
            iconst_3
            if_icmpne 5
         2: .line 609
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
         3: .line 610
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.startListeningForFingerprint:()V
         4: .line 611
            goto 6
         5: .line 612
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
         6: .line 615
      StackMap locals:
      StackMap stack:
            iload 1 /* msgId */
            iconst_1
            if_icmpne 11
         7: .line 616
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHardwareUnavailableRetryCount:I
            iconst_3
            if_icmpge 11
         8: .line 617
            aload 0 /* this */
            dup
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHardwareUnavailableRetryCount:I
            iconst_1
            iadd
            putfield com.android.keyguard.KeyguardUpdateMonitor.mHardwareUnavailableRetryCount:I
         9: .line 618
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mRetryFingerprintAuthentication:Ljava/lang/Runnable;
            invokevirtual android.os.Handler.removeCallbacks:(Ljava/lang/Runnable;)V
        10: .line 619
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mRetryFingerprintAuthentication:Ljava/lang/Runnable;
            ldc 3000
            invokevirtual android.os.Handler.postDelayed:(Ljava/lang/Runnable;J)Z
            pop
        11: .line 623
      StackMap locals:
      StackMap stack:
            iload 1 /* msgId */
            bipush 9
            if_icmpne 16
        12: .line 624
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mLockPatternUtils:Lcom/android/internal/widget/LockPatternUtils;
        13: .line 625
            bipush 8
        14: .line 626
            invokestatic com.android.keyguard.KeyguardUpdateMonitor.getCurrentUser:()I
        15: .line 624
            invokevirtual com.android.internal.widget.LockPatternUtils.requireStrongAuth:(II)V
        16: .line 629
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        17: goto 22
        18: .line 630
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        19: .line 631
            aload 4 /* cb */
            ifnull 21
        20: .line 632
            aload 4 /* cb */
            iload 1 /* msgId */
            aload 2 /* errString */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onFingerprintError:(ILjava/lang/String;)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        21: .line 629
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 3 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 18
        end local 3 // int i
        23: .line 635
            return
        end local 2 // java.lang.String errString
        end local 1 // int msgId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   24     1      msgId  I
            0   24     2  errString  Ljava/lang/String;
           17   23     3          i  I
           19   21     4         cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
           Name  Flags
      msgId      
      errString  

  private void handleFingerprintLockoutReset();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 638
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
         1: .line 639
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void setFingerprintRunningState(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int fingerprintRunningState
         0: .line 642
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintRunningState:I
            iconst_1
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* wasRunning */
        start local 2 // boolean wasRunning
         3: .line 643
            iload 1 /* fingerprintRunningState */
            iconst_1
            if_icmpne 4
            iconst_1
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* isRunning */
        start local 3 // boolean isRunning
         6: .line 644
            aload 0 /* this */
            iload 1 /* fingerprintRunningState */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintRunningState:I
         7: .line 649
            iload 2 /* wasRunning */
            iload 3 /* isRunning */
            if_icmpeq 9
         8: .line 650
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.notifyFingerprintRunningStateChanged:()V
         9: .line 652
      StackMap locals: int
      StackMap stack:
            return
        end local 3 // boolean isRunning
        end local 2 // boolean wasRunning
        end local 1 // int fingerprintRunningState
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   10     0                     this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   10     1  fingerprintRunningState  I
            3   10     2               wasRunning  Z
            6   10     3                isRunning  Z
    MethodParameters:
                         Name  Flags
      fingerprintRunningState  

  private void notifyFingerprintRunningStateChanged();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 655
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 656
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 7
         3: .line 657
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 2 /* cb */
        start local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         4: .line 658
            aload 2 /* cb */
            ifnull 6
         5: .line 659
            aload 2 /* cb */
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isFingerprintDetectionRunning:()Z
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onFingerprintRunningStateChanged:(Z)V
        end local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 656
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 1 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 3
        end local 1 // int i
         8: .line 662
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            2    8     1     i  I
            4    6     2    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  private void handleFaceUnlockStateChanged(boolean, int);
    descriptor: (ZI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean running
        start local 2 // int userId
         0: .line 664
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 665
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserFaceUnlockRunning:Landroid/util/SparseBooleanArray;
            iload 2 /* userId */
            iload 1 /* running */
            invokevirtual android.util.SparseBooleanArray.put:(IZ)V
         2: .line 666
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 667
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 668
            aload 4 /* cb */
            ifnull 7
         6: .line 669
            aload 4 /* cb */
            iload 1 /* running */
            iload 2 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onFaceUnlockStateChanged:(ZI)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 666
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 4
        end local 3 // int i
         9: .line 672
            return
        end local 2 // int userId
        end local 1 // boolean running
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   10     1  running  Z
            0   10     2   userId  I
            3    9     3        i  I
            5    7     4       cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
         Name  Flags
      running  
      userId   

  public boolean isFaceUnlockRunning(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 675
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserFaceUnlockRunning:Landroid/util/SparseBooleanArray;
            iload 1 /* userId */
            invokevirtual android.util.SparseBooleanArray.get:(I)Z
            ireturn
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean isFingerprintDetectionRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 679
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintRunningState:I
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private boolean isTrustDisabled(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 686
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isSimPinSecure:()Z
            istore 2 /* disabledBySimPin */
        start local 2 // boolean disabledBySimPin
         1: .line 687
            iload 2 /* disabledBySimPin */
            ireturn
        end local 2 // boolean disabledBySimPin
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    2     1            userId  I
            1    2     2  disabledBySimPin  Z
    MethodParameters:
        Name  Flags
      userId  

  private boolean isFingerprintDisabled(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 692
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mContext:Landroid/content/Context;
            ldc "device_policy"
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.app.admin.DevicePolicyManager
         1: .line 691
            astore 2 /* dpm */
        start local 2 // android.app.admin.DevicePolicyManager dpm
         2: .line 693
            aload 2 /* dpm */
            ifnull 4
            aload 2 /* dpm */
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getKeyguardDisabledFeatures:(Landroid/content/ComponentName;I)I
         3: .line 694
            bipush 32
            iand
            ifne 6
         4: .line 695
      StackMap locals: android.app.admin.DevicePolicyManager
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isSimPinSecure:()Z
            ifne 6
         5: .line 693
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_1
            ireturn
        end local 2 // android.app.admin.DevicePolicyManager dpm
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    7     1  userId  I
            2    7     2     dpm  Landroid/app/admin/DevicePolicyManager;
    MethodParameters:
        Name  Flags
      userId  

  public boolean getUserCanSkipBouncer(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 699
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getUserHasTrust:(I)Z
            ifne 3
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserFingerprintAuthenticated:Landroid/util/SparseBooleanArray;
            iload 1 /* userId */
            invokevirtual android.util.SparseBooleanArray.get:(I)Z
            ifeq 2
         1: .line 700
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isUnlockingWithFingerprintAllowed:()Z
            ifne 3
         2: .line 699
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    4     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean getUserHasTrust(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 704
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isTrustDisabled:(I)Z
            ifne 1
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserHasTrust:Landroid/util/SparseBooleanArray;
            iload 1 /* userId */
            invokevirtual android.util.SparseBooleanArray.get:(I)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    2     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean getUserTrustIsManaged(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 708
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserTrustIsManaged:Landroid/util/SparseBooleanArray;
            iload 1 /* userId */
            invokevirtual android.util.SparseBooleanArray.get:(I)Z
            ifeq 1
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isTrustDisabled:(I)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    2     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean isUnlockingWithFingerprintAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 712
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mStrongAuthTracker:Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor$StrongAuthTracker.isUnlockingWithFingerprintAllowed:()Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public boolean isUserInLockdown(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 716
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mStrongAuthTracker:Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor$StrongAuthTracker.getStrongAuthForUser:(I)I
         1: .line 717
            bipush 32
         2: .line 716
            if_icmpne 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    4     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean needsSlowUnlockTransition();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 721
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mNeedsSlowUnlockTransition:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public com.android.keyguard.KeyguardUpdateMonitor$StrongAuthTracker getStrongAuthTracker();
    descriptor: ()Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 725
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mStrongAuthTracker:Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;
            areturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void notifyStrongAuthStateChanged(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 729
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 730
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 731
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         4: .line 732
            aload 3 /* cb */
            ifnull 6
         5: .line 733
            aload 3 /* cb */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onStrongAuthStateChanged:(I)V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 730
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 3
        end local 2 // int i
         8: .line 736
            return
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    9     1  userId  I
            2    8     2       i  I
            4    6     3      cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
        Name  Flags
      userId  

  public boolean isScreenOn();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 739
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mScreenOn:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void dispatchErrorMessage(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // java.lang.CharSequence message
         0: .line 743
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 6
         2: .line 744
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         3: .line 745
            aload 3 /* cb */
            ifnull 5
         4: .line 746
            aload 3 /* cb */
            aload 1 /* message */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onTrustAgentErrorMessage:(Ljava/lang/CharSequence;)V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 743
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 2 // int i
         7: .line 749
            return
        end local 1 // java.lang.CharSequence message
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    8     1  message  Ljava/lang/CharSequence;
            1    7     2        i  I
            3    5     3       cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
         Name  Flags
      message  

  public static com.android.keyguard.KeyguardUpdateMonitor getInstance(android.content.Context);
    descriptor: (Landroid/content/Context;)Lcom/android/keyguard/KeyguardUpdateMonitor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.content.Context context
         0: .line 1077
            getstatic com.android.keyguard.KeyguardUpdateMonitor.sInstance:Lcom/android/keyguard/KeyguardUpdateMonitor;
            ifnonnull 2
         1: .line 1078
            new com.android.keyguard.KeyguardUpdateMonitor
            dup
            aload 0 /* context */
            invokespecial com.android.keyguard.KeyguardUpdateMonitor.<init>:(Landroid/content/Context;)V
            putstatic com.android.keyguard.KeyguardUpdateMonitor.sInstance:Lcom/android/keyguard/KeyguardUpdateMonitor;
         2: .line 1080
      StackMap locals:
      StackMap stack:
            getstatic com.android.keyguard.KeyguardUpdateMonitor.sInstance:Lcom/android/keyguard/KeyguardUpdateMonitor;
            areturn
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  protected void handleStartedWakingUp();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1084
            ldc "KeyguardUpdateMonitor#handleStartedWakingUp"
            invokestatic android.os.Trace.beginSection:(Ljava/lang/String;)V
         1: .line 1085
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
         2: .line 1086
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 1 /* count */
        start local 1 // int count
         3: .line 1087
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 9
         5: .line 1088
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 1089
            aload 3 /* cb */
            ifnull 8
         7: .line 1090
            aload 3 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onStartedWakingUp:()V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         8: .line 1087
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            iload 1 /* count */
            if_icmplt 5
        end local 2 // int i
        10: .line 1093
            invokestatic android.os.Trace.endSection:()V
        11: .line 1094
            return
        end local 1 // int count
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            3   12     1  count  I
            4   10     2      i  I
            6    8     3     cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  protected void handleStartedGoingToSleep(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int arg1
         0: .line 1097
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.clearFingerprintRecognized:()V
         1: .line 1098
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* count */
        start local 2 // int count
         2: .line 1099
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 1100
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1101
            aload 4 /* cb */
            ifnull 7
         6: .line 1102
            aload 4 /* cb */
            iload 1 /* arg1 */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onStartedGoingToSleep:(I)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 1099
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* count */
            if_icmplt 4
        end local 3 // int i
         9: .line 1105
            aload 0 /* this */
            iconst_1
            putfield com.android.keyguard.KeyguardUpdateMonitor.mGoingToSleep:Z
        10: .line 1106
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
        11: .line 1107
            return
        end local 2 // int count
        end local 1 // int arg1
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   12     1   arg1  I
            2   12     2  count  I
            3    9     3      i  I
            5    7     4     cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
      Name  Flags
      arg1  

  protected void handleFinishedGoingToSleep(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int arg1
         0: .line 1110
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.KeyguardUpdateMonitor.mGoingToSleep:Z
         1: .line 1111
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* count */
        start local 2 // int count
         2: .line 1112
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 1113
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1114
            aload 4 /* cb */
            ifnull 7
         6: .line 1115
            aload 4 /* cb */
            iload 1 /* arg1 */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onFinishedGoingToSleep:(I)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 1112
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* count */
            if_icmplt 4
        end local 3 // int i
         9: .line 1118
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
        10: .line 1119
            return
        end local 2 // int count
        end local 1 // int arg1
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   11     1   arg1  I
            2   11     2  count  I
            3    9     3      i  I
            5    7     4     cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
      Name  Flags
      arg1  

  private void handleScreenTurnedOn();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1122
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 1 /* count */
        start local 1 // int count
         1: .line 1123
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 1124
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         4: .line 1125
            aload 3 /* cb */
            ifnull 6
         5: .line 1126
            aload 3 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onScreenTurnedOn:()V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 1123
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            iload 1 /* count */
            if_icmplt 3
        end local 2 // int i
         8: .line 1129
            return
        end local 1 // int count
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            1    9     1  count  I
            2    8     2      i  I
            4    6     3     cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  private void handleScreenTurnedOff();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1132
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.KeyguardUpdateMonitor.mHardwareUnavailableRetryCount:I
         1: .line 1133
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 1 /* count */
        start local 1 // int count
         2: .line 1134
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 8
         4: .line 1135
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1136
            aload 3 /* cb */
            ifnull 7
         6: .line 1137
            aload 3 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onScreenTurnedOff:()V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 1134
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            iload 1 /* count */
            if_icmplt 4
        end local 2 // int i
         9: .line 1140
            return
        end local 1 // int count
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            2   10     1  count  I
            3    9     2      i  I
            5    7     3     cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  private void handleDreamingStateChanged(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int dreamStart
         0: .line 1143
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* count */
        start local 2 // int count
         1: .line 1144
            aload 0 /* this */
            iload 1 /* dreamStart */
            iconst_1
            if_icmpne 2
            iconst_1
            goto 3
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor int int
      StackMap stack: com.android.keyguard.KeyguardUpdateMonitor
         2: iconst_0
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor int int
      StackMap stack: com.android.keyguard.KeyguardUpdateMonitor int
         3: putfield com.android.keyguard.KeyguardUpdateMonitor.mIsDreaming:Z
         4: .line 1145
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 10
         6: .line 1146
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 1147
            aload 4 /* cb */
            ifnull 9
         8: .line 1148
            aload 4 /* cb */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mIsDreaming:Z
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onDreamingStateChanged:(Z)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         9: .line 1145
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            iload 2 /* count */
            if_icmplt 6
        end local 3 // int i
        11: .line 1151
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
        12: .line 1152
            return
        end local 2 // int count
        end local 1 // int dreamStart
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   13     1  dreamStart  I
            1   13     2       count  I
            5   11     3           i  I
            7    9     4          cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
            Name  Flags
      dreamStart  

  private void handleUserInfoChanged(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 1155
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 6
         2: .line 1156
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         3: .line 1157
            aload 3 /* cb */
            ifnull 5
         4: .line 1158
            aload 3 /* cb */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onUserInfoChanged:(I)V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1155
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 2 // int i
         7: .line 1161
            return
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    8     1  userId  I
            1    7     2       i  I
            3    5     3      cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
        Name  Flags
      userId  

  private void handleUserUnlocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1164
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.resolveNeedsSlowUnlockTransition:()Z
            putfield com.android.keyguard.KeyguardUpdateMonitor.mNeedsSlowUnlockTransition:Z
         1: .line 1165
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 7
         3: .line 1166
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 2 /* cb */
        start local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         4: .line 1167
            aload 2 /* cb */
            ifnull 6
         5: .line 1168
            aload 2 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onUserUnlocked:()V
        end local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 1165
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 1 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 3
        end local 1 // int i
         8: .line 1171
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            2    8     1     i  I
            4    6     2    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  protected void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 87
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import com.android.systemui.shared cannot be resolved\n\tR cannot be resolved to a variable\n\tActivityManagerWrapper cannot be resolved\n\tThe method onTaskStackChangedBackground() of type new SysUiTaskStackChangeListener(){} must override or implement a supertype method\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
         Name  Flags
      context  

  private void updateAirplaneModeState();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1262
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mContext:Landroid/content/Context;
            invokestatic com.android.settingslib.WirelessUtils.isAirplaneModeOn:(Landroid/content/Context;)Z
            ifeq 2
         1: .line 1263
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 329
            invokevirtual android.os.Handler.hasMessages:(I)Z
            ifeq 3
         2: .line 1264
      StackMap locals:
      StackMap stack:
            return
         3: .line 1266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 329
            invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
            pop
         4: .line 1267
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void updateFingerprintListeningState();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1272
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 336
            invokevirtual android.os.Handler.hasMessages:(I)Z
            ifeq 2
         1: .line 1273
            return
         2: .line 1275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mRetryFingerprintAuthentication:Ljava/lang/Runnable;
            invokevirtual android.os.Handler.removeCallbacks:(Ljava/lang/Runnable;)V
         3: .line 1276
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.shouldListenForFingerprint:()Z
            istore 1 /* shouldListenForFingerprint */
        start local 1 // boolean shouldListenForFingerprint
         4: .line 1277
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintRunningState:I
            iconst_1
            if_icmpne 7
            iload 1 /* shouldListenForFingerprint */
            ifne 7
         5: .line 1278
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.stopListeningForFingerprint:()V
         6: .line 1279
            goto 10
      StackMap locals: int
      StackMap stack:
         7: aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintRunningState:I
            iconst_1
            if_icmpeq 10
         8: .line 1280
            iload 1 /* shouldListenForFingerprint */
            ifeq 10
         9: .line 1281
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.startListeningForFingerprint:()V
        10: .line 1283
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean shouldListenForFingerprint
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   11     0                        this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            4   11     1  shouldListenForFingerprint  Z

  private boolean shouldListenForFingerprintAssistant();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1286
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mAssistantVisible:Z
            ifeq 4
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardOccluded:Z
            ifeq 4
         1: .line 1287
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserFingerprintAuthenticated:Landroid/util/SparseBooleanArray;
            invokestatic com.android.keyguard.KeyguardUpdateMonitor.getCurrentUser:()I
            iconst_0
            invokevirtual android.util.SparseBooleanArray.get:(IZ)Z
            ifne 4
         2: .line 1288
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserHasTrust:Landroid/util/SparseBooleanArray;
            invokestatic com.android.keyguard.KeyguardUpdateMonitor.getCurrentUser:()I
            iconst_0
            invokevirtual android.util.SparseBooleanArray.get:(IZ)Z
            ifne 4
         3: .line 1286
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private boolean shouldListenForFingerprint();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1292
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardIsVisible:Z
            ifne 4
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceInteractive:Z
            ifeq 4
         1: .line 1293
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mBouncer:Z
            ifeq 2
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardGoingAway:Z
            ifeq 4
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mGoingToSleep:Z
            ifne 4
         3: .line 1294
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.shouldListenForFingerprintAssistant:()Z
            ifne 4
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardOccluded:Z
            ifeq 7
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mIsDreaming:Z
            ifeq 7
         4: .line 1295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSwitchingUser:Z
            ifne 7
            aload 0 /* this */
            invokestatic com.android.keyguard.KeyguardUpdateMonitor.getCurrentUser:()I
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isFingerprintDisabled:(I)Z
            ifne 7
         5: .line 1296
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardGoingAway:Z
            ifne 7
         6: .line 1292
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void startListeningForFingerprint();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1300
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintRunningState:I
            iconst_2
            if_icmpne 3
         1: .line 1301
            aload 0 /* this */
            iconst_3
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
         2: .line 1302
            return
         3: .line 1305
      StackMap locals:
      StackMap stack:
            invokestatic android.app.ActivityManager.getCurrentUser:()I
            istore 1 /* userId */
        start local 1 // int userId
         4: .line 1306
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isUnlockWithFingerprintPossible:(I)Z
            ifeq 12
         5: .line 1307
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintCancelSignal:Landroid/os/CancellationSignal;
            ifnull 7
         6: .line 1308
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintCancelSignal:Landroid/os/CancellationSignal;
            invokevirtual android.os.CancellationSignal.cancel:()V
         7: .line 1310
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            new android.os.CancellationSignal
            dup
            invokespecial android.os.CancellationSignal.<init>:()V
            putfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintCancelSignal:Landroid/os/CancellationSignal;
         8: .line 1311
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFpm:Landroid/hardware/fingerprint/FingerprintManager;
            aconst_null
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintCancelSignal:Landroid/os/CancellationSignal;
            iconst_0
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mAuthenticationCallback:Landroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;
            aconst_null
         9: .line 1312
            iload 1 /* userId */
        10: .line 1311
            invokevirtual android.hardware.fingerprint.FingerprintManager.authenticate:(Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;Landroid/os/CancellationSignal;ILandroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;Landroid/os/Handler;I)V
        11: .line 1313
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
        12: .line 1315
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            4   13     1  userId  I

  public boolean isUnlockWithFingerprintPossible(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 1318
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFpm:Landroid/hardware/fingerprint/FingerprintManager;
            ifnull 3
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFpm:Landroid/hardware/fingerprint/FingerprintManager;
            invokevirtual android.hardware.fingerprint.FingerprintManager.isHardwareDetected:()Z
            ifeq 3
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isFingerprintDisabled:(I)Z
            ifne 3
         1: .line 1319
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFpm:Landroid/hardware/fingerprint/FingerprintManager;
            iload 1 /* userId */
            invokevirtual android.hardware.fingerprint.FingerprintManager.getEnrolledFingerprints:(I)Ljava/util/List;
            invokeinterface java.util.List.size:()I
         2: .line 1318
            ifle 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    4     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  private void stopListeningForFingerprint();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1324
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintRunningState:I
            iconst_1
            if_icmpne 5
         1: .line 1325
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintCancelSignal:Landroid/os/CancellationSignal;
            ifnull 4
         2: .line 1326
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintCancelSignal:Landroid/os/CancellationSignal;
            invokevirtual android.os.CancellationSignal.cancel:()V
         3: .line 1327
            aload 0 /* this */
            aconst_null
            putfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintCancelSignal:Landroid/os/CancellationSignal;
         4: .line 1329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
         5: .line 1331
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFingerprintRunningState:I
            iconst_3
            if_icmpne 7
         6: .line 1332
            aload 0 /* this */
            iconst_2
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.setFingerprintRunningState:(I)V
         7: .line 1334
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private boolean isDeviceProvisionedInSettingsDb();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1337
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
         1: .line 1338
            ldc "device_provisioned"
            iconst_0
         2: .line 1337
            invokestatic android.provider.Settings$Global.getInt:(Landroid/content/ContentResolver;Ljava/lang/String;I)I
            ifeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void watchForDeviceProvisioning();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1342
            aload 0 /* this */
            new com.android.keyguard.KeyguardUpdateMonitor$9
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            invokespecial com.android.keyguard.KeyguardUpdateMonitor$9.<init>:(Lcom/android/keyguard/KeyguardUpdateMonitor;Landroid/os/Handler;)V
            putfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceProvisionedObserver:Landroid/database/ContentObserver;
         1: .line 1354
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
         2: .line 1355
            ldc "device_provisioned"
            invokestatic android.provider.Settings$Global.getUriFor:(Ljava/lang/String;)Landroid/net/Uri;
         3: .line 1356
            iconst_0
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceProvisionedObserver:Landroid/database/ContentObserver;
         4: .line 1354
            invokevirtual android.content.ContentResolver.registerContentObserver:(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
         5: .line 1360
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isDeviceProvisionedInSettingsDb:()Z
            istore 1 /* provisioned */
        start local 1 // boolean provisioned
         6: .line 1361
            iload 1 /* provisioned */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceProvisioned:Z
            if_icmpeq 10
         7: .line 1362
            aload 0 /* this */
            iload 1 /* provisioned */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceProvisioned:Z
         8: .line 1363
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceProvisioned:Z
            ifeq 10
         9: .line 1364
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 308
            invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
            pop
        10: .line 1367
      StackMap locals: int
      StackMap stack:
            return
        end local 1 // boolean provisioned
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            6   11     1  provisioned  Z

  public void setHasLockscreenWallpaper(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean hasLockscreenWallpaper
         0: .line 1375
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 1376
            iload 1 /* hasLockscreenWallpaper */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHasLockscreenWallpaper:Z
            if_icmpeq 10
         2: .line 1377
            aload 0 /* this */
            iload 1 /* hasLockscreenWallpaper */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mHasLockscreenWallpaper:Z
         3: .line 1378
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         4: goto 9
         5: .line 1379
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 1380
            aload 3 /* cb */
            ifnull 8
         7: .line 1381
            aload 3 /* cb */
            iload 1 /* hasLockscreenWallpaper */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onHasLockscreenWallpaperChanged:(Z)V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         8: .line 1378
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            ifge 5
        end local 2 // int i
        10: .line 1385
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean hasLockscreenWallpaper
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   11     0                    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   11     1  hasLockscreenWallpaper  Z
            4   10     2                       i  I
            6    8     3                      cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
                        Name  Flags
      hasLockscreenWallpaper  

  public boolean hasLockscreenWallpaper();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1391
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHasLockscreenWallpaper:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void handleDevicePolicyManagerStateChanged();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1398
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
         1: .line 1399
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            istore 1 /* i */
        start local 1 // int i
         2: goto 7
         3: .line 1400
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 2 /* cb */
        start local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         4: .line 1401
            aload 2 /* cb */
            ifnull 6
         5: .line 1402
            aload 2 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onDevicePolicyManagerStateChanged:()V
        end local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 1399
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 1 /* i */
            ifge 3
        end local 1 // int i
         8: .line 1405
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            2    8     1     i  I
            4    6     2    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  private void handleUserSwitching(int, android.os.IRemoteCallback);
    descriptor: (ILandroid/os/IRemoteCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
        start local 2 // android.os.IRemoteCallback reply
         0: .line 1411
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 6
         2: .line 1412
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         3: .line 1413
            aload 4 /* cb */
            ifnull 5
         4: .line 1414
            aload 4 /* cb */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onUserSwitching:(I)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1411
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 3 // int i
         7: .line 1418
            aload 2 /* reply */
            aconst_null
            invokeinterface android.os.IRemoteCallback.sendResult:(Landroid/os/Bundle;)V
         8: .line 1419
            goto 10
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor int android.os.IRemoteCallback
      StackMap stack: android.os.RemoteException
         9: pop
        10: .line 1421
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.IRemoteCallback reply
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   11     1  userId  I
            0   11     2   reply  Landroid/os/IRemoteCallback;
            1    7     3       i  I
            3    5     4      cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
      Exception table:
        from    to  target  type
           7     8       9  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      userId  
      reply   

  private void handleUserSwitchComplete(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int userId
         0: .line 1427
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 6
         2: .line 1428
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         3: .line 1429
            aload 3 /* cb */
            ifnull 5
         4: .line 1430
            aload 3 /* cb */
            iload 1 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onUserSwitchComplete:(I)V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1427
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 2 // int i
         7: .line 1433
            return
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    8     1  userId  I
            1    7     2       i  I
            3    5     3      cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
        Name  Flags
      userId  

  public void dispatchBootCompleted();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1442
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 313
            invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
            pop
         1: .line 1443
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void handleBootCompleted();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1449
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mBootCompleted:Z
            ifeq 1
            return
         1: .line 1450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.android.keyguard.KeyguardUpdateMonitor.mBootCompleted:Z
         2: .line 1451
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         3: goto 8
         4: .line 1452
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 2 /* cb */
        start local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1453
            aload 2 /* cb */
            ifnull 7
         6: .line 1454
            aload 2 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onBootCompleted:()V
        end local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 1451
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 1 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 4
        end local 1 // int i
         9: .line 1457
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            3    9     1     i  I
            5    7     2    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  public boolean hasBootCompleted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1464
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mBootCompleted:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void handleDeviceProvisioned();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1471
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 6
         2: .line 1472
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 2 /* cb */
        start local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         3: .line 1473
            aload 2 /* cb */
            ifnull 5
         4: .line 1474
            aload 2 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onDeviceProvisioned:()V
        end local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1471
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 1 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 1 // int i
         7: .line 1477
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceProvisionedObserver:Landroid/database/ContentObserver;
            ifnull 10
         8: .line 1479
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceProvisionedObserver:Landroid/database/ContentObserver;
            invokevirtual android.content.ContentResolver.unregisterContentObserver:(Landroid/database/ContentObserver;)V
         9: .line 1480
            aload 0 /* this */
            aconst_null
            putfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceProvisionedObserver:Landroid/database/ContentObserver;
        10: .line 1482
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            1    7     1     i  I
            3    5     2    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  private void handlePhoneStateChanged(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // java.lang.String newState
         0: .line 1489
            getstatic android.telephony.TelephonyManager.EXTRA_STATE_IDLE:Ljava/lang/String;
            aload 1 /* newState */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 1490
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.KeyguardUpdateMonitor.mPhoneState:I
         2: .line 1491
            goto 8
      StackMap locals:
      StackMap stack:
         3: getstatic android.telephony.TelephonyManager.EXTRA_STATE_OFFHOOK:Ljava/lang/String;
            aload 1 /* newState */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 1492
            aload 0 /* this */
            iconst_2
            putfield com.android.keyguard.KeyguardUpdateMonitor.mPhoneState:I
         5: .line 1493
            goto 8
      StackMap locals:
      StackMap stack:
         6: getstatic android.telephony.TelephonyManager.EXTRA_STATE_RINGING:Ljava/lang/String;
            aload 1 /* newState */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 1494
            aload 0 /* this */
            iconst_1
            putfield com.android.keyguard.KeyguardUpdateMonitor.mPhoneState:I
         8: .line 1496
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         9: goto 14
        10: .line 1497
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        11: .line 1498
            aload 3 /* cb */
            ifnull 13
        12: .line 1499
            aload 3 /* cb */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mPhoneState:I
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onPhoneStateChanged:(I)V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        13: .line 1496
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 10
        end local 2 // int i
        15: .line 1502
            return
        end local 1 // java.lang.String newState
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   16     1  newState  Ljava/lang/String;
            9   15     2         i  I
           11   13     3        cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
          Name  Flags
      newState  

  private void handleRingerModeChange(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int mode
         0: .line 1509
            aload 0 /* this */
            iload 1 /* mode */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mRingMode:I
         1: .line 1510
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 1511
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         4: .line 1512
            aload 3 /* cb */
            ifnull 6
         5: .line 1513
            aload 3 /* cb */
            iload 1 /* mode */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onRingerModeChanged:(I)V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 1510
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 3
        end local 2 // int i
         8: .line 1516
            return
        end local 1 // int mode
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    9     1  mode  I
            2    8     2     i  I
            4    6     3    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
      Name  Flags
      mode  

  private void handleTimeUpdate();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1523
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 6
         2: .line 1524
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 2 /* cb */
        start local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         3: .line 1525
            aload 2 /* cb */
            ifnull 5
         4: .line 1526
            aload 2 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onTimeChanged:()V
        end local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1523
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 1 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 1 // int i
         7: .line 1529
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            1    7     1     i  I
            3    5     2    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  private void handleBatteryUpdate(com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus);
    descriptor: (Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus status
         0: .line 1536
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mBatteryStatus:Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;
            aload 1 /* status */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isBatteryUpdateInteresting:(Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;)Z
            istore 2 /* batteryUpdateInteresting */
        start local 2 // boolean batteryUpdateInteresting
         1: .line 1537
            aload 0 /* this */
            aload 1 /* status */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mBatteryStatus:Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;
         2: .line 1538
            iload 2 /* batteryUpdateInteresting */
            ifeq 10
         3: .line 1539
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 9
         5: .line 1540
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 1541
            aload 4 /* cb */
            ifnull 8
         7: .line 1542
            aload 4 /* cb */
            aload 1 /* status */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onRefreshBatteryInfo:(Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         8: .line 1539
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 5
        end local 3 // int i
        10: .line 1546
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean batteryUpdateInteresting
        end local 1 // com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus status
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   11     0                      this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   11     1                    status  Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;
            1   11     2  batteryUpdateInteresting  Z
            4   10     3                         i  I
            6    8     4                        cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
        Name  Flags
      status  

  void updateTelephonyCapable(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean capable
         0: .line 1553
            iload 1 /* capable */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mTelephonyCapable:Z
            if_icmpne 2
         1: .line 1554
            return
         2: .line 1556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* capable */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mTelephonyCapable:Z
         3: .line 1557
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor int top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            astore 2 /* ref */
        start local 2 // java.lang.ref.WeakReference ref
         5: .line 1558
            aload 2 /* ref */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         6: .line 1559
            aload 4 /* cb */
            ifnull 8
         7: .line 1560
            aload 4 /* cb */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mTelephonyCapable:Z
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onTelephonyCapable:(Z)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        end local 2 // java.lang.ref.WeakReference ref
         8: .line 1557
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 1563
            return
        end local 1 // boolean capable
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   10     1  capable  Z
            5    8     2      ref  Ljava/lang/ref/WeakReference<Lcom/android/keyguard/KeyguardUpdateMonitorCallback;>;
            6    8     4       cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
         Name  Flags
      capable  

  void handleSimStateChange(int, int, com.android.internal.telephony.IccCardConstants$State);
    descriptor: (IILcom/android/internal/telephony/IccCardConstants$State;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int subId
        start local 2 // int slotId
        start local 3 // com.android.internal.telephony.IccCardConstants$State state
         0: .line 1570
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 1576
            iload 1 /* subId */
            invokestatic android.telephony.SubscriptionManager.isValidSubscriptionId:(I)Z
            ifne 6
         2: .line 1577
            ldc "KeyguardUpdateMonitor"
            ldc "invalid subId in handleSimStateChange()"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 1579
            aload 3 /* state */
            getstatic com.android.internal.telephony.IccCardConstants$State.ABSENT:Lcom/android/internal/telephony/IccCardConstants$State;
            if_acmpne 5
         4: .line 1580
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateTelephonyCapable:(Z)V
         5: .line 1582
      StackMap locals:
      StackMap stack:
            return
         6: .line 1585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSimDatas:Ljava/util/HashMap;
            iload 1 /* subId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitor$SimData
            astore 4 /* data */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitor$SimData data
         7: .line 1587
            aload 4 /* data */
            ifnonnull 12
         8: .line 1588
            new com.android.keyguard.KeyguardUpdateMonitor$SimData
            dup
            aload 3 /* state */
            iload 2 /* slotId */
            iload 1 /* subId */
            invokespecial com.android.keyguard.KeyguardUpdateMonitor$SimData.<init>:(Lcom/android/internal/telephony/IccCardConstants$State;II)V
            astore 4 /* data */
         9: .line 1589
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSimDatas:Ljava/util/HashMap;
            iload 1 /* subId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* data */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1590
            iconst_1
            istore 5 /* changed */
        start local 5 // boolean changed
        11: .line 1591
            goto 18
        end local 5 // boolean changed
        12: .line 1592
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor$SimData
      StackMap stack:
            aload 4 /* data */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.simState:Lcom/android/internal/telephony/IccCardConstants$State;
            aload 3 /* state */
            if_acmpne 13
            aload 4 /* data */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.subId:I
            iload 1 /* subId */
            if_icmpne 13
            aload 4 /* data */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.slotId:I
            iload 2 /* slotId */
            if_icmpne 13
            iconst_0
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_1
      StackMap locals:
      StackMap stack: int
        14: istore 5 /* changed */
        start local 5 // boolean changed
        15: .line 1593
            aload 4 /* data */
            aload 3 /* state */
            putfield com.android.keyguard.KeyguardUpdateMonitor$SimData.simState:Lcom/android/internal/telephony/IccCardConstants$State;
        16: .line 1594
            aload 4 /* data */
            iload 1 /* subId */
            putfield com.android.keyguard.KeyguardUpdateMonitor$SimData.subId:I
        17: .line 1595
            aload 4 /* data */
            iload 2 /* slotId */
            putfield com.android.keyguard.KeyguardUpdateMonitor$SimData.slotId:I
        18: .line 1597
      StackMap locals: int
      StackMap stack:
            iload 5 /* changed */
            ifeq 26
            aload 3 /* state */
            getstatic com.android.internal.telephony.IccCardConstants$State.UNKNOWN:Lcom/android/internal/telephony/IccCardConstants$State;
            if_acmpeq 26
        19: .line 1598
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        20: goto 25
        21: .line 1599
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 6 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 7 /* cb */
        start local 7 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        22: .line 1600
            aload 7 /* cb */
            ifnull 24
        23: .line 1601
            aload 7 /* cb */
            iload 1 /* subId */
            iload 2 /* slotId */
            aload 3 /* state */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onSimStateChanged:(IILcom/android/internal/telephony/IccCardConstants$State;)V
        end local 7 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        24: .line 1598
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 6 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 21
        end local 6 // int i
        26: .line 1605
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean changed
        end local 4 // com.android.keyguard.KeyguardUpdateMonitor$SimData data
        end local 3 // com.android.internal.telephony.IccCardConstants$State state
        end local 2 // int slotId
        end local 1 // int subId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0     this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   27     1    subId  I
            0   27     2   slotId  I
            0   27     3    state  Lcom/android/internal/telephony/IccCardConstants$State;
            7   27     4     data  Lcom/android/keyguard/KeyguardUpdateMonitor$SimData;
           11   12     5  changed  Z
           15   27     5  changed  Z
           20   26     6        i  I
           22   24     7       cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
        Name  Flags
      subId   
      slotId  
      state   

  void handleServiceStateChange(int, android.telephony.ServiceState);
    descriptor: (ILandroid/telephony/ServiceState;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int subId
        start local 2 // android.telephony.ServiceState serviceState
         0: .line 1617
            iload 1 /* subId */
            invokestatic android.telephony.SubscriptionManager.isValidSubscriptionId:(I)Z
            ifne 3
         1: .line 1618
            ldc "KeyguardUpdateMonitor"
            ldc "invalid subId in handleServiceStateChange()"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 1619
            return
         3: .line 1621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateTelephonyCapable:(Z)V
         4: .line 1624
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mServiceStates:Ljava/util/HashMap;
            iload 1 /* subId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* serviceState */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 1626
            iconst_0
            istore 3 /* j */
        start local 3 // int j
         6: goto 11
         7: .line 1627
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         8: .line 1628
            aload 4 /* cb */
            ifnull 10
         9: .line 1629
            aload 4 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onRefreshCarrierInfo:()V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
        10: .line 1626
      StackMap locals:
      StackMap stack:
            iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* j */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 7
        end local 3 // int j
        12: .line 1632
            return
        end local 2 // android.telephony.ServiceState serviceState
        end local 1 // int subId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   13     1         subId  I
            0   13     2  serviceState  Landroid/telephony/ServiceState;
            6   12     3             j  I
            8   10     4            cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
              Name  Flags
      subId         
      serviceState  

  public boolean isKeyguardVisible();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1635
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardIsVisible:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public void onKeyguardVisibilityChanged(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean showing
         0: .line 1644
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 1646
            aload 0 /* this */
            iload 1 /* showing */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardIsVisible:Z
         2: .line 1647
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 8
         4: .line 1648
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1649
            aload 3 /* cb */
            ifnull 7
         6: .line 1650
            aload 3 /* cb */
            iload 1 /* showing */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onKeyguardVisibilityChangedRaw:(Z)V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 1647
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 4
        end local 2 // int i
         9: .line 1653
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
        10: .line 1654
            return
        end local 1 // boolean showing
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   11     1  showing  Z
            3    9     2        i  I
            5    7     3       cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
         Name  Flags
      showing  

  private void handleKeyguardReset();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1661
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
         1: .line 1662
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.resolveNeedsSlowUnlockTransition:()Z
            putfield com.android.keyguard.KeyguardUpdateMonitor.mNeedsSlowUnlockTransition:Z
         2: .line 1663
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private boolean resolveNeedsSlowUnlockTransition();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1666
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserManager:Landroid/os/UserManager;
            invokestatic com.android.keyguard.KeyguardUpdateMonitor.getCurrentUser:()I
            invokevirtual android.os.UserManager.isUserUnlocked:(I)Z
            ifeq 2
         1: .line 1667
            iconst_0
            ireturn
         2: .line 1669
      StackMap locals:
      StackMap stack:
            new android.content.Intent
            dup
            ldc "android.intent.action.MAIN"
            invokespecial android.content.Intent.<init>:(Ljava/lang/String;)V
         3: .line 1670
            ldc "android.intent.category.HOME"
            invokevirtual android.content.Intent.addCategory:(Ljava/lang/String;)Landroid/content/Intent;
         4: .line 1669
            astore 1 /* homeIntent */
        start local 1 // android.content.Intent homeIntent
         5: .line 1671
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
            aload 1 /* homeIntent */
         6: .line 1672
            iconst_0
         7: .line 1671
            invokevirtual android.content.pm.PackageManager.resolveActivity:(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
            astore 2 /* resolveInfo */
        start local 2 // android.content.pm.ResolveInfo resolveInfo
         8: .line 1673
            getstatic com.android.keyguard.KeyguardUpdateMonitor.FALLBACK_HOME_COMPONENT:Landroid/content/ComponentName;
            aload 2 /* resolveInfo */
            invokevirtual android.content.pm.ResolveInfo.getComponentInfo:()Landroid/content/pm/ComponentInfo;
            invokevirtual android.content.pm.ComponentInfo.getComponentName:()Landroid/content/ComponentName;
            invokevirtual android.content.ComponentName.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // android.content.pm.ResolveInfo resolveInfo
        end local 1 // android.content.Intent homeIntent
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            5    9     1   homeIntent  Landroid/content/Intent;
            8    9     2  resolveInfo  Landroid/content/pm/ResolveInfo;

  private void handleKeyguardBouncerChanged(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int bouncer
         0: .line 1682
            iload 1 /* bouncer */
            iconst_1
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* isBouncer */
        start local 2 // boolean isBouncer
         3: .line 1683
            aload 0 /* this */
            iload 2 /* isBouncer */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mBouncer:Z
         4: .line 1684
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 10
         6: .line 1685
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 4 /* cb */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 1686
            aload 4 /* cb */
            ifnull 9
         8: .line 1687
            aload 4 /* cb */
            iload 2 /* isBouncer */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onKeyguardBouncerChanged:(Z)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         9: .line 1684
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 6
        end local 3 // int i
        11: .line 1690
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.updateFingerprintListeningState:()V
        12: .line 1691
            return
        end local 2 // boolean isBouncer
        end local 1 // int bouncer
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   13     1    bouncer  I
            3   13     2  isBouncer  Z
            5   11     3          i  I
            7    9     4         cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
    MethodParameters:
         Name  Flags
      bouncer  

  private void handleReportEmergencyCallAction();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1697
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 6
         2: .line 1698
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 2 /* cb */
        start local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         3: .line 1699
            aload 2 /* cb */
            ifnull 5
         4: .line 1700
            aload 2 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onEmergencyCallAction:()V
        end local 2 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         5: .line 1697
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 1 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 1 // int i
         7: .line 1703
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            1    7     1     i  I
            3    5     2    cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  private boolean isBatteryUpdateInteresting(com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus, com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus);
    descriptor: (Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus old
        start local 2 // com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus current
         0: .line 1706
            aload 2 /* current */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus.isPluggedIn:()Z
            istore 3 /* nowPluggedIn */
        start local 3 // boolean nowPluggedIn
         1: .line 1707
            aload 1 /* old */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus.isPluggedIn:()Z
            istore 4 /* wasPluggedIn */
        start local 4 // boolean wasPluggedIn
         2: .line 1708
            iload 4 /* wasPluggedIn */
            ifeq 5
            iload 3 /* nowPluggedIn */
            ifeq 5
         3: .line 1709
            aload 1 /* old */
            getfield com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus.status:I
            aload 2 /* current */
            getfield com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus.status:I
            if_icmpeq 5
         4: .line 1708
            iconst_1
            goto 6
      StackMap locals: int int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* stateChangedWhilePluggedIn */
        start local 5 // boolean stateChangedWhilePluggedIn
         7: .line 1712
            iload 4 /* wasPluggedIn */
            iload 3 /* nowPluggedIn */
            if_icmpne 8
            iload 5 /* stateChangedWhilePluggedIn */
            ifeq 9
         8: .line 1713
      StackMap locals: int
      StackMap stack:
            iconst_1
            ireturn
         9: .line 1717
      StackMap locals:
      StackMap stack:
            aload 1 /* old */
            getfield com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus.level:I
            aload 2 /* current */
            getfield com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus.level:I
            if_icmpeq 11
        10: .line 1718
            iconst_1
            ireturn
        11: .line 1722
      StackMap locals:
      StackMap stack:
            iload 3 /* nowPluggedIn */
            ifeq 13
            aload 2 /* current */
            getfield com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus.maxChargingWattage:I
            aload 1 /* old */
            getfield com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus.maxChargingWattage:I
            if_icmpeq 13
        12: .line 1723
            iconst_1
            ireturn
        13: .line 1726
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // boolean stateChangedWhilePluggedIn
        end local 4 // boolean wasPluggedIn
        end local 3 // boolean nowPluggedIn
        end local 2 // com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus current
        end local 1 // com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus old
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   14     0                        this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   14     1                         old  Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;
            0   14     2                     current  Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;
            1   14     3                nowPluggedIn  Z
            2   14     4                wasPluggedIn  Z
            7   14     5  stateChangedWhilePluggedIn  Z
    MethodParameters:
         Name  Flags
      old      
      current  

  public void removeCallback(com.android.keyguard.KeyguardUpdateMonitorCallback);
    descriptor: (Lcom/android/keyguard/KeyguardUpdateMonitorCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // com.android.keyguard.KeyguardUpdateMonitorCallback callback
         0: .line 1735
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 1737
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 1738
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            aload 1 /* callback */
            if_acmpne 5
         4: .line 1739
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
         5: .line 1737
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            ifge 3
        end local 2 // int i
         7: .line 1742
            return
        end local 1 // com.android.keyguard.KeyguardUpdateMonitorCallback callback
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    8     1  callback  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
            2    7     2         i  I
    MethodParameters:
          Name  Flags
      callback  

  public void registerCallback(com.android.keyguard.KeyguardUpdateMonitorCallback);
    descriptor: (Lcom/android/keyguard/KeyguardUpdateMonitorCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // com.android.keyguard.KeyguardUpdateMonitorCallback callback
         0: .line 1750
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 1753
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 1754
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            aload 1 /* callback */
            if_acmpne 5
         4: .line 1757
            return
         5: .line 1753
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 3
        end local 2 // int i
         7: .line 1760
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            new java.lang.ref.WeakReference
            dup
            aload 1 /* callback */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         8: .line 1761
            aload 0 /* this */
            aconst_null
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.removeCallback:(Lcom/android/keyguard/KeyguardUpdateMonitorCallback;)V
         9: .line 1762
            aload 0 /* this */
            aload 1 /* callback */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.sendUpdates:(Lcom/android/keyguard/KeyguardUpdateMonitorCallback;)V
        10: .line 1763
            return
        end local 1 // com.android.keyguard.KeyguardUpdateMonitorCallback callback
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   11     1  callback  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
            2    7     2         i  I
    MethodParameters:
          Name  Flags
      callback  

  public boolean isSwitchingUser();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1766
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSwitchingUser:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public void setSwitchingUser(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean switching
         0: .line 1771
            aload 0 /* this */
            iload 1 /* switching */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mSwitchingUser:Z
         1: .line 1773
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUpdateFingerprintListeningState:Ljava/lang/Runnable;
            invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
            pop
         2: .line 1774
            return
        end local 1 // boolean switching
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    3     1  switching  Z
    MethodParameters:
           Name  Flags
      switching  

  private void sendUpdates(com.android.keyguard.KeyguardUpdateMonitorCallback);
    descriptor: (Lcom/android/keyguard/KeyguardUpdateMonitorCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // com.android.keyguard.KeyguardUpdateMonitorCallback callback
         0: .line 1778
            aload 1 /* callback */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mBatteryStatus:Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onRefreshBatteryInfo:(Lcom/android/keyguard/KeyguardUpdateMonitor$BatteryStatus;)V
         1: .line 1779
            aload 1 /* callback */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onTimeChanged:()V
         2: .line 1780
            aload 1 /* callback */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mRingMode:I
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onRingerModeChanged:(I)V
         3: .line 1781
            aload 1 /* callback */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mPhoneState:I
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onPhoneStateChanged:(I)V
         4: .line 1782
            aload 1 /* callback */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onRefreshCarrierInfo:()V
         5: .line 1783
            aload 1 /* callback */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onClockVisibilityChanged:()V
         6: .line 1784
            aload 1 /* callback */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mKeyguardIsVisible:Z
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onKeyguardVisibilityChangedRaw:(Z)V
         7: .line 1785
            aload 1 /* callback */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mTelephonyCapable:Z
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onTelephonyCapable:(Z)V
         8: .line 1786
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSimDatas:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor com.android.keyguard.KeyguardUpdateMonitorCallback top java.util.Iterator
      StackMap stack:
         9: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* data */
        start local 2 // java.util.Map$Entry data
        10: .line 1787
            aload 2 /* data */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitor$SimData
            astore 4 /* state */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitor$SimData state
        11: .line 1788
            aload 1 /* callback */
            aload 4 /* state */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.subId:I
            aload 4 /* state */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.slotId:I
            aload 4 /* state */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.simState:Lcom/android/internal/telephony/IccCardConstants$State;
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onSimStateChanged:(IILcom/android/internal/telephony/IccCardConstants$State;)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitor$SimData state
        end local 2 // java.util.Map$Entry data
        12: .line 1786
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 1790
            return
        end local 1 // com.android.keyguard.KeyguardUpdateMonitorCallback callback
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   14     1  callback  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;
           10   12     2      data  Ljava/util/Map$Entry<Ljava/lang/Integer;Lcom/android/keyguard/KeyguardUpdateMonitor$SimData;>;
           11   12     4     state  Lcom/android/keyguard/KeyguardUpdateMonitor$SimData;
    MethodParameters:
          Name  Flags
      callback  

  public void sendKeyguardReset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1793
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 312
            invokevirtual android.os.Handler.obtainMessage:(I)Landroid/os/Message;
            invokevirtual android.os.Message.sendToTarget:()V
         1: .line 1794
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public void sendKeyguardBouncerChanged(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean showingBouncer
         0: .line 1801
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 322
            invokevirtual android.os.Handler.obtainMessage:(I)Landroid/os/Message;
            astore 2 /* message */
        start local 2 // android.os.Message message
         1: .line 1802
            aload 2 /* message */
            iload 1 /* showingBouncer */
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor int android.os.Message
      StackMap stack: android.os.Message
         2: iconst_0
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor int android.os.Message
      StackMap stack: android.os.Message int
         3: putfield android.os.Message.arg1:I
         4: .line 1803
            aload 2 /* message */
            invokevirtual android.os.Message.sendToTarget:()V
         5: .line 1804
            return
        end local 2 // android.os.Message message
        end local 1 // boolean showingBouncer
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    6     1  showingBouncer  Z
            1    6     2         message  Landroid/os/Message;
    MethodParameters:
                Name  Flags
      showingBouncer  

  public void reportSimUnlocked(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int subId
         0: .line 1817
            iload 1 /* subId */
            invokestatic android.telephony.SubscriptionManager.getSlotIndex:(I)I
            istore 2 /* slotId */
        start local 2 // int slotId
         1: .line 1818
            aload 0 /* this */
            iload 1 /* subId */
            iload 2 /* slotId */
            getstatic com.android.internal.telephony.IccCardConstants$State.READY:Lcom/android/internal/telephony/IccCardConstants$State;
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.handleSimStateChange:(IILcom/android/internal/telephony/IccCardConstants$State;)V
         2: .line 1819
            return
        end local 2 // int slotId
        end local 1 // int subId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    3     1   subId  I
            1    3     2  slotId  I
    MethodParameters:
       Name  Flags
      subId  

  public void reportEmergencyCallAction(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // boolean bypassHandler
         0: .line 1830
            iload 1 /* bypassHandler */
            ifne 3
         1: .line 1831
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 318
            invokevirtual android.os.Handler.obtainMessage:(I)Landroid/os/Message;
            invokevirtual android.os.Message.sendToTarget:()V
         2: .line 1832
            goto 5
         3: .line 1833
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         4: .line 1834
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.handleReportEmergencyCallAction:()V
         5: .line 1836
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean bypassHandler
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    6     1  bypassHandler  Z
    MethodParameters:
               Name  Flags
      bypassHandler  

  public boolean isDeviceProvisioned();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1843
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceProvisioned:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public android.telephony.ServiceState getServiceState(int);
    descriptor: (I)Landroid/telephony/ServiceState;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int subId
         0: .line 1847
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mServiceStates:Ljava/util/HashMap;
            iload 1 /* subId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.telephony.ServiceState
            areturn
        end local 1 // int subId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    1     1  subId  I
    MethodParameters:
       Name  Flags
      subId  

  public void clearFingerprintRecognized();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1851
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserFingerprintAuthenticated:Landroid/util/SparseBooleanArray;
            invokevirtual android.util.SparseBooleanArray.clear:()V
         1: .line 1852
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mTrustManager:Landroid/app/trust/TrustManager;
            invokevirtual android.app.trust.TrustManager.clearAllFingerprints:()V
         2: .line 1853
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public boolean isSimPinVoiceSecure();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1857
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isSimPinSecure:()Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public boolean isSimPinSecure();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1862
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getSubscriptionInfo:(Z)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.telephony.SubscriptionInfo
            astore 1 /* info */
        start local 1 // android.telephony.SubscriptionInfo info
         2: .line 1863
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual android.telephony.SubscriptionInfo.getSubscriptionId:()I
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getSimState:(I)Lcom/android/internal/telephony/IccCardConstants$State;
            invokestatic com.android.keyguard.KeyguardUpdateMonitor.isSimPinSecure:(Lcom/android/internal/telephony/IccCardConstants$State;)Z
            ifeq 3
            iconst_1
            ireturn
        end local 1 // android.telephony.SubscriptionInfo info
         3: .line 1862
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1865
            iconst_0
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            2    3     1  info  Landroid/telephony/SubscriptionInfo;

  public com.android.internal.telephony.IccCardConstants$State getSimState(int);
    descriptor: (I)Lcom/android/internal/telephony/IccCardConstants$State;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int subId
         0: .line 1869
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSimDatas:Ljava/util/HashMap;
            iload 1 /* subId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1870
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSimDatas:Ljava/util/HashMap;
            iload 1 /* subId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitor$SimData
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.simState:Lcom/android/internal/telephony/IccCardConstants$State;
            areturn
         2: .line 1872
      StackMap locals:
      StackMap stack:
            getstatic com.android.internal.telephony.IccCardConstants$State.UNKNOWN:Lcom/android/internal/telephony/IccCardConstants$State;
            areturn
        end local 1 // int subId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    3     1  subId  I
    MethodParameters:
       Name  Flags
      subId  

  private boolean refreshSimState(int, int);
    descriptor: (II)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int subId
        start local 2 // int slotId
         0: .line 1903
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mContext:Landroid/content/Context;
            invokestatic android.telephony.TelephonyManager.from:(Landroid/content/Context;)Landroid/telephony/TelephonyManager;
            astore 3 /* tele */
        start local 3 // android.telephony.TelephonyManager tele
         1: .line 1904
            aload 3 /* tele */
            iload 2 /* slotId */
            invokevirtual android.telephony.TelephonyManager.getSimState:(I)I
            istore 4 /* simState */
        start local 4 // int simState
         2: .line 1907
            iload 4 /* simState */
            invokestatic com.android.internal.telephony.IccCardConstants$State.intToState:(I)Lcom/android/internal/telephony/IccCardConstants$State;
            astore 5 /* state */
        start local 5 // com.android.internal.telephony.IccCardConstants$State state
         3: .line 1908
            goto 7
        end local 5 // com.android.internal.telephony.IccCardConstants$State state
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor int int android.telephony.TelephonyManager int
      StackMap stack: java.lang.IllegalArgumentException
         4: pop
         5: .line 1909
            ldc "KeyguardUpdateMonitor"
            new java.lang.StringBuilder
            dup
            ldc "Unknown sim state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* simState */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         6: .line 1910
            getstatic com.android.internal.telephony.IccCardConstants$State.UNKNOWN:Lcom/android/internal/telephony/IccCardConstants$State;
            astore 5 /* state */
        start local 5 // com.android.internal.telephony.IccCardConstants$State state
         7: .line 1912
      StackMap locals: com.android.internal.telephony.IccCardConstants$State
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSimDatas:Ljava/util/HashMap;
            iload 1 /* subId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitor$SimData
            astore 6 /* data */
        start local 6 // com.android.keyguard.KeyguardUpdateMonitor$SimData data
         8: .line 1914
            aload 6 /* data */
            ifnonnull 13
         9: .line 1915
            new com.android.keyguard.KeyguardUpdateMonitor$SimData
            dup
            aload 5 /* state */
            iload 2 /* slotId */
            iload 1 /* subId */
            invokespecial com.android.keyguard.KeyguardUpdateMonitor$SimData.<init>:(Lcom/android/internal/telephony/IccCardConstants$State;II)V
            astore 6 /* data */
        10: .line 1916
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSimDatas:Ljava/util/HashMap;
            iload 1 /* subId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 6 /* data */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 1917
            iconst_1
            istore 7 /* changed */
        start local 7 // boolean changed
        12: .line 1918
            goto 17
        end local 7 // boolean changed
        13: .line 1919
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor$SimData
      StackMap stack:
            aload 6 /* data */
            getfield com.android.keyguard.KeyguardUpdateMonitor$SimData.simState:Lcom/android/internal/telephony/IccCardConstants$State;
            aload 5 /* state */
            if_acmpeq 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 7 /* changed */
        start local 7 // boolean changed
        16: .line 1920
            aload 6 /* data */
            aload 5 /* state */
            putfield com.android.keyguard.KeyguardUpdateMonitor$SimData.simState:Lcom/android/internal/telephony/IccCardConstants$State;
        17: .line 1922
      StackMap locals: int
      StackMap stack:
            iload 7 /* changed */
            ireturn
        end local 7 // boolean changed
        end local 6 // com.android.keyguard.KeyguardUpdateMonitor$SimData data
        end local 5 // com.android.internal.telephony.IccCardConstants$State state
        end local 4 // int simState
        end local 3 // android.telephony.TelephonyManager tele
        end local 2 // int slotId
        end local 1 // int subId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   18     1     subId  I
            0   18     2    slotId  I
            1   18     3      tele  Landroid/telephony/TelephonyManager;
            2   18     4  simState  I
            3    4     5     state  Lcom/android/internal/telephony/IccCardConstants$State;
            7   18     5     state  Lcom/android/internal/telephony/IccCardConstants$State;
            8   18     6      data  Lcom/android/keyguard/KeyguardUpdateMonitor$SimData;
           12   13     7   changed  Z
           16   18     7   changed  Z
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.IllegalArgumentException
    MethodParameters:
        Name  Flags
      subId   
      slotId  

  public static boolean isSimPinSecure(com.android.internal.telephony.IccCardConstants$State);
    descriptor: (Lcom/android/internal/telephony/IccCardConstants$State;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.android.internal.telephony.IccCardConstants$State state
         0: .line 1926
            aload 0 /* state */
            astore 1 /* simState */
        start local 1 // com.android.internal.telephony.IccCardConstants$State simState
         1: .line 1927
            aload 1 /* simState */
            getstatic com.android.internal.telephony.IccCardConstants$State.PIN_REQUIRED:Lcom/android/internal/telephony/IccCardConstants$State;
            if_acmpeq 5
         2: .line 1928
            aload 1 /* simState */
            getstatic com.android.internal.telephony.IccCardConstants$State.PUK_REQUIRED:Lcom/android/internal/telephony/IccCardConstants$State;
            if_acmpeq 5
         3: .line 1929
            aload 1 /* simState */
            getstatic com.android.internal.telephony.IccCardConstants$State.PERM_DISABLED:Lcom/android/internal/telephony/IccCardConstants$State;
            if_acmpeq 5
         4: .line 1927
            iconst_0
            ireturn
      StackMap locals: com.android.internal.telephony.IccCardConstants$State
      StackMap stack:
         5: iconst_1
            ireturn
        end local 1 // com.android.internal.telephony.IccCardConstants$State simState
        end local 0 // com.android.internal.telephony.IccCardConstants$State state
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0     state  Lcom/android/internal/telephony/IccCardConstants$State;
            1    6     1  simState  Lcom/android/internal/telephony/IccCardConstants$State;
    MethodParameters:
       Name  Flags
      state  

  public com.android.keyguard.KeyguardUpdateMonitor$DisplayClientState getCachedDisplayClientState();
    descriptor: ()Lcom/android/keyguard/KeyguardUpdateMonitor$DisplayClientState;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1933
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDisplayClientState:Lcom/android/keyguard/KeyguardUpdateMonitor$DisplayClientState;
            areturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public void dispatchStartedWakingUp();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1939
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 1940
            aload 0 /* this */
            iconst_1
            putfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceInteractive:Z
         2: .line 1939
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor com.android.keyguard.KeyguardUpdateMonitor
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 1942
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 319
            invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
            pop
         7: .line 1943
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public void dispatchStartedGoingToSleep(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int why
         0: .line 1946
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 321
            iload 1 /* why */
            iconst_0
            invokevirtual android.os.Handler.obtainMessage:(III)Landroid/os/Message;
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
         1: .line 1947
            return
        end local 1 // int why
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    2     1   why  I
    MethodParameters:
      Name  Flags
      why   

  public void dispatchFinishedGoingToSleep(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int why
         0: .line 1950
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 1951
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceInteractive:Z
         2: .line 1950
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor int com.android.keyguard.KeyguardUpdateMonitor
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 1953
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 320
            iload 1 /* why */
            iconst_0
            invokevirtual android.os.Handler.obtainMessage:(III)Landroid/os/Message;
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
         7: .line 1954
            return
        end local 1 // int why
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    8     1   why  I
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
      Name  Flags
      why   

  public void dispatchScreenTurnedOn();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1957
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 1958
            aload 0 /* this */
            iconst_1
            putfield com.android.keyguard.KeyguardUpdateMonitor.mScreenOn:Z
         2: .line 1957
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor com.android.keyguard.KeyguardUpdateMonitor
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 1960
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 331
            invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
            pop
         7: .line 1961
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public void dispatchScreenTurnedOff();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1964
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 1965
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.KeyguardUpdateMonitor.mScreenOn:Z
         2: .line 1964
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor com.android.keyguard.KeyguardUpdateMonitor
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 1967
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 332
            invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
            pop
         7: .line 1968
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public void dispatchDreamingStarted();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1971
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 333
            iconst_1
            iconst_0
            invokevirtual android.os.Handler.obtainMessage:(III)Landroid/os/Message;
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
         1: .line 1972
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public void dispatchDreamingStopped();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1975
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            sipush 333
            iconst_0
            iconst_0
            invokevirtual android.os.Handler.obtainMessage:(III)Landroid/os/Message;
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
         1: .line 1976
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public boolean isDeviceInteractive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1979
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDeviceInteractive:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public boolean isGoingToSleep();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 1983
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mGoingToSleep:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public int getNextSubIdForState(com.android.internal.telephony.IccCardConstants$State);
    descriptor: (Lcom/android/internal/telephony/IccCardConstants$State;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // com.android.internal.telephony.IccCardConstants$State state
         0: .line 1992
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getSubscriptionInfo:(Z)Ljava/util/List;
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 1993
            iconst_m1
            istore 3 /* resultId */
        start local 3 // int resultId
         2: .line 1994
            ldc 2147483647
            istore 4 /* bestSlotId */
        start local 4 // int bestSlotId
         3: .line 1995
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 12
         5: .line 1996
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor com.android.internal.telephony.IccCardConstants$State java.util.List int int int
      StackMap stack:
            aload 2 /* list */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.telephony.SubscriptionInfo
            astore 6 /* info */
        start local 6 // android.telephony.SubscriptionInfo info
         6: .line 1997
            aload 6 /* info */
            invokevirtual android.telephony.SubscriptionInfo.getSubscriptionId:()I
            istore 7 /* id */
        start local 7 // int id
         7: .line 1998
            iload 7 /* id */
            invokestatic android.telephony.SubscriptionManager.getSlotIndex:(I)I
            istore 8 /* slotId */
        start local 8 // int slotId
         8: .line 1999
            aload 1 /* state */
            aload 0 /* this */
            iload 7 /* id */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getSimState:(I)Lcom/android/internal/telephony/IccCardConstants$State;
            if_acmpne 11
            iload 4 /* bestSlotId */
            iload 8 /* slotId */
            if_icmple 11
         9: .line 2000
            iload 7 /* id */
            istore 3 /* resultId */
        10: .line 2001
            iload 8 /* slotId */
            istore 4 /* bestSlotId */
        end local 8 // int slotId
        end local 7 // int id
        end local 6 // android.telephony.SubscriptionInfo info
        11: .line 1995
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            aload 2 /* list */
            invokeinterface java.util.List.size:()I
            if_icmplt 5
        end local 5 // int i
        13: .line 2004
            iload 3 /* resultId */
            ireturn
        end local 4 // int bestSlotId
        end local 3 // int resultId
        end local 2 // java.util.List list
        end local 1 // com.android.internal.telephony.IccCardConstants$State state
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   14     1       state  Lcom/android/internal/telephony/IccCardConstants$State;
            1   14     2        list  Ljava/util/List<Landroid/telephony/SubscriptionInfo;>;
            2   14     3    resultId  I
            3   14     4  bestSlotId  I
            4   13     5           i  I
            6   11     6        info  Landroid/telephony/SubscriptionInfo;
            7   11     7          id  I
            8   11     8      slotId  I
    MethodParameters:
       Name  Flags
      state  

  public android.telephony.SubscriptionInfo getSubscriptionInfoForSubId(int);
    descriptor: (I)Landroid/telephony/SubscriptionInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // int subId
         0: .line 2008
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getSubscriptionInfo:(Z)Ljava/util/List;
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 2009
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 2010
      StackMap locals: java.util.List int
      StackMap stack:
            aload 2 /* list */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.telephony.SubscriptionInfo
            astore 4 /* info */
        start local 4 // android.telephony.SubscriptionInfo info
         4: .line 2011
            iload 1 /* subId */
            aload 4 /* info */
            invokevirtual android.telephony.SubscriptionInfo.getSubscriptionId:()I
            if_icmpne 5
            aload 4 /* info */
            areturn
        end local 4 // android.telephony.SubscriptionInfo info
         5: .line 2009
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* list */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 3 // int i
         7: .line 2013
            aconst_null
            areturn
        end local 2 // java.util.List list
        end local 1 // int subId
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0    8     1  subId  I
            1    8     2   list  Ljava/util/List<Landroid/telephony/SubscriptionInfo;>;
            2    7     3      i  I
            4    5     4   info  Landroid/telephony/SubscriptionInfo;
    MethodParameters:
       Name  Flags
      subId  

  public boolean isLogoutEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 2020
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mLogoutEnabled:Z
            ireturn
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  private void updateLogoutEnabled();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 2024
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.checkIsHandlerThread:()V
         1: .line 2025
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mDevicePolicyManager:Landroid/app/admin/DevicePolicyManager;
            invokevirtual android.app.admin.DevicePolicyManager.isLogoutEnabled:()Z
            istore 1 /* logoutEnabled */
        start local 1 // boolean logoutEnabled
         2: .line 2026
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mLogoutEnabled:Z
            iload 1 /* logoutEnabled */
            if_icmpeq 11
         3: .line 2027
            aload 0 /* this */
            iload 1 /* logoutEnabled */
            putfield com.android.keyguard.KeyguardUpdateMonitor.mLogoutEnabled:Z
         4: .line 2028
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 10
         6: .line 2029
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitorCallback
            astore 3 /* cb */
        start local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         7: .line 2030
            aload 3 /* cb */
            ifnull 9
         8: .line 2031
            aload 3 /* cb */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitorCallback.onLogoutEnabledChanged:()V
        end local 3 // com.android.keyguard.KeyguardUpdateMonitorCallback cb
         9: .line 2028
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 6
        end local 2 // int i
        11: .line 2035
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean logoutEnabled
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            2   12     1  logoutEnabled  Z
            5   11     2              i  I
            7    9     3             cb  Lcom/android/keyguard/KeyguardUpdateMonitorCallback;

  private void checkIsHandlerThread();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
         0: .line 2038
            getstatic com.android.keyguard.KeyguardUpdateMonitor.sDisableHandlerCheckForTesting:Z
            ifeq 2
         1: .line 2039
            return
         2: .line 2041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            invokevirtual android.os.Handler.getLooper:()Landroid/os/Looper;
            invokevirtual android.os.Looper.isCurrentThread:()Z
            ifne 6
         3: .line 2042
            ldc "KeyguardUpdateMonitor"
            new java.lang.StringBuilder
            dup
            ldc "must call on mHandler's thread "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 2043
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mHandler:Landroid/os/Handler;
            invokevirtual android.os.Handler.getLooper:()Landroid/os/Looper;
            invokevirtual android.os.Looper.getThread:()Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", not "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 2042
            invokestatic android.util.Log.wtf:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         6: .line 2045
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/android/keyguard/KeyguardUpdateMonitor;

  public static void disableHandlerCheckForTesting(android.app.Instrumentation);
    descriptor: (Landroid/app/Instrumentation;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.app.Instrumentation instrumentation
         0: .line 2060
            aload 0 /* instrumentation */
            ldc "Must only call this method in tests!"
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 2064
            iconst_1
            putstatic com.android.keyguard.KeyguardUpdateMonitor.sDisableHandlerCheckForTesting:Z
         2: .line 2065
            return
        end local 0 // android.app.Instrumentation instrumentation
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0  instrumentation  Landroid/app/Instrumentation;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
                 Name  Flags
      instrumentation  

  public void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
    descriptor: (Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.android.keyguard.KeyguardUpdateMonitor this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.io.PrintWriter pw
        start local 3 // java.lang.String[] args
         0: .line 2068
            aload 2 /* pw */
            ldc "KeyguardUpdateMonitor state:"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 2069
            aload 2 /* pw */
            ldc "  SIM States:"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         2: .line 2070
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSimDatas:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor java.io.FileDescriptor java.io.PrintWriter java.lang.String[] top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.android.keyguard.KeyguardUpdateMonitor$SimData
            astore 4 /* data */
        start local 4 // com.android.keyguard.KeyguardUpdateMonitor$SimData data
         4: .line 2071
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* data */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor$SimData.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 4 // com.android.keyguard.KeyguardUpdateMonitor$SimData data
         5: .line 2070
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 2073
            aload 2 /* pw */
            ldc "  Subs:"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         7: .line 2074
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSubscriptionInfo:Ljava/util/List;
            ifnull 13
         8: .line 2075
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         9: goto 12
        10: .line 2076
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor java.io.FileDescriptor java.io.PrintWriter java.lang.String[] int
      StackMap stack:
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSubscriptionInfo:Ljava/util/List;
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        11: .line 2075
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mSubscriptionInfo:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 10
        end local 4 // int i
        13: .line 2079
      StackMap locals:
      StackMap stack:
            aload 2 /* pw */
            ldc "  Service states:"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        14: .line 2080
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mServiceStates:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 17
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor java.io.FileDescriptor java.io.PrintWriter java.lang.String[] top java.util.Iterator
      StackMap stack:
        15: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* subId */
        start local 4 // int subId
        16: .line 2081
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* subId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mServiceStates:Ljava/util/HashMap;
            iload 4 /* subId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 4 // int subId
        17: .line 2080
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 2083
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFpm:Landroid/hardware/fingerprint/FingerprintManager;
            ifnull 31
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mFpm:Landroid/hardware/fingerprint/FingerprintManager;
            invokevirtual android.hardware.fingerprint.FingerprintManager.isHardwareDetected:()Z
            ifeq 31
        19: .line 2084
            invokestatic android.app.ActivityManager.getCurrentUser:()I
            istore 4 /* userId */
        start local 4 // int userId
        20: .line 2085
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mStrongAuthTracker:Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;
            iload 4 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor$StrongAuthTracker.getStrongAuthForUser:(I)I
            istore 5 /* strongAuthFlags */
        start local 5 // int strongAuthFlags
        21: .line 2086
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "  Fingerprint state (user="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* userId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        22: .line 2087
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    allowed="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isUnlockingWithFingerprintAllowed:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        23: .line 2088
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    auth'd="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardUpdateMonitor.mUserFingerprintAuthenticated:Landroid/util/SparseBooleanArray;
            iload 4 /* userId */
            invokevirtual android.util.SparseBooleanArray.get:(I)Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        24: .line 2089
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    authSinceBoot="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        25: .line 2090
            aload 0 /* this */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getStrongAuthTracker:()Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor$StrongAuthTracker.hasUserAuthenticatedSinceBoot:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 2089
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        27: .line 2091
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    disabled(DPM)="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            iload 4 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isFingerprintDisabled:(I)Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        28: .line 2092
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    possible="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            iload 4 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.isUnlockWithFingerprintPossible:(I)Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        29: .line 2093
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    strongAuthFlags="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* strongAuthFlags */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        30: .line 2094
            aload 2 /* pw */
            new java.lang.StringBuilder
            dup
            ldc "    trustManaged="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            iload 4 /* userId */
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getUserTrustIsManaged:(I)Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 5 // int strongAuthFlags
        end local 4 // int userId
        31: .line 2096
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor java.io.FileDescriptor java.io.PrintWriter java.lang.String[]
      StackMap stack:
            return
        end local 3 // java.lang.String[] args
        end local 2 // java.io.PrintWriter pw
        end local 1 // java.io.FileDescriptor fd
        end local 0 // com.android.keyguard.KeyguardUpdateMonitor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0             this  Lcom/android/keyguard/KeyguardUpdateMonitor;
            0   32     1               fd  Ljava/io/FileDescriptor;
            0   32     2               pw  Ljava/io/PrintWriter;
            0   32     3             args  [Ljava/lang/String;
            4    5     4             data  Lcom/android/keyguard/KeyguardUpdateMonitor$SimData;
            9   13     4                i  I
           16   17     4            subId  I
           20   31     4           userId  I
           21   31     5  strongAuthFlags  I
    MethodParameters:
      Name  Flags
      fd    
      pw    
      args  
}
SourceFile: "KeyguardUpdateMonitor.java"
NestMembers:
  com.android.keyguard.KeyguardUpdateMonitor$1  com.android.keyguard.KeyguardUpdateMonitor$10  com.android.keyguard.KeyguardUpdateMonitor$2  com.android.keyguard.KeyguardUpdateMonitor$3  com.android.keyguard.KeyguardUpdateMonitor$4  com.android.keyguard.KeyguardUpdateMonitor$5  com.android.keyguard.KeyguardUpdateMonitor$6  com.android.keyguard.KeyguardUpdateMonitor$7  com.android.keyguard.KeyguardUpdateMonitor$8  com.android.keyguard.KeyguardUpdateMonitor$9  com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus  com.android.keyguard.KeyguardUpdateMonitor$DisplayClientState  com.android.keyguard.KeyguardUpdateMonitor$SimData  com.android.keyguard.KeyguardUpdateMonitor$StrongAuthTracker
InnerClasses:
  public abstract TrustListener = android.app.trust.TrustManager$TrustListener of android.app.trust.TrustManager
  public abstract Stub = android.content.pm.IPackageManager$Stub of android.content.pm.IPackageManager
  public abstract AuthenticationCallback = android.hardware.fingerprint.FingerprintManager$AuthenticationCallback of android.hardware.fingerprint.FingerprintManager
  public final CryptoObject = android.hardware.fingerprint.FingerprintManager$CryptoObject of android.hardware.fingerprint.FingerprintManager
  public abstract LockoutResetCallback = android.hardware.fingerprint.FingerprintManager$LockoutResetCallback of android.hardware.fingerprint.FingerprintManager
  public final Global = android.provider.Settings$Global of android.provider.Settings
  public OnSubscriptionsChangedListener = android.telephony.SubscriptionManager$OnSubscriptionsChangedListener of android.telephony.SubscriptionManager
  public final State = com.android.internal.telephony.IccCardConstants$State of com.android.internal.telephony.IccCardConstants
  com.android.keyguard.KeyguardUpdateMonitor$9
  public BatteryStatus = com.android.keyguard.KeyguardUpdateMonitor$BatteryStatus of com.android.keyguard.KeyguardUpdateMonitor
  DisplayClientState = com.android.keyguard.KeyguardUpdateMonitor$DisplayClientState of com.android.keyguard.KeyguardUpdateMonitor
  private SimData = com.android.keyguard.KeyguardUpdateMonitor$SimData of com.android.keyguard.KeyguardUpdateMonitor
  public StrongAuthTracker = com.android.keyguard.KeyguardUpdateMonitor$StrongAuthTracker of com.android.keyguard.KeyguardUpdateMonitor
  public abstract Entry = java.util.Map$Entry of java.util.Map