Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +113 −75 Original line number Diff line number Diff line Loading @@ -345,7 +345,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { Trace.endSection(); break; case MSG_FACE_UNLOCK_STATE_CHANGED: Trace.beginSection("KeyguardUpdateMonitor#handler MSG_FACE_UNLOCK_STATE_CHANGED"); Trace.beginSection( "KeyguardUpdateMonitor#handler MSG_FACE_UNLOCK_STATE_CHANGED"); handleFaceUnlockStateChanged(msg.arg1 != 0, msg.arg2); Trace.endSection(); break; Loading Loading @@ -459,6 +460,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleSimSubscriptionInfoChanged() { checkIsHandlerThread(); if (DEBUG_SIM_STATES) { Log.v(TAG, "onSubscriptionInfoChanged()"); List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList(false); Loading Loading @@ -492,17 +494,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } } for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); if (cb != null) { cb.onRefreshCarrierInfo(); } } callbacksRefreshCarrierInfo(); } private void handleAirplaneModeChanged() { for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); callbacksRefreshCarrierInfo(); } private void callbacksRefreshCarrierInfo() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onRefreshCarrierInfo(); } Loading @@ -528,7 +530,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { public void onTrustManagedChanged(boolean managed, int userId) { checkIsHandlerThread(); mUserTrustIsManaged.put(userId, managed); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -539,7 +540,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Updates KeyguardUpdateMonitor's internal state to know if keyguard is goingAway * @param goingAway */ public void setKeyguardGoingAway(boolean goingAway) { mKeyguardGoingAway = goingAway; Loading @@ -548,7 +548,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Updates KeyguardUpdateMonitor's internal state to know if keyguard is occluded * @param occluded */ public void setKeyguardOccluded(boolean occluded) { mKeyguardOccluded = occluded; Loading Loading @@ -585,6 +584,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { @VisibleForTesting protected void onFingerprintAuthenticated(int userId) { checkIsHandlerThread(); Trace.beginSection("KeyGuardUpdateMonitor#onFingerPrintAuthenticated"); mUserFingerprintAuthenticated.put(userId, true); // Update/refresh trust state only if user can skip bouncer Loading @@ -610,6 +610,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFingerprintAuthFailed() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -621,6 +622,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFingerprintAcquired(int acquireInfo) { checkIsHandlerThread(); if (acquireInfo != FingerprintManager.FINGERPRINT_ACQUIRED_GOOD) { return; } Loading Loading @@ -658,6 +660,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFingerprintHelp(int msgId, String helpString) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -676,6 +679,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { }; private void handleFingerprintError(int msgId, String errString) { checkIsHandlerThread(); if (msgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED && mHandler.hasCallbacks( mCancelNotReceived)) { mHandler.removeCallbacks(mCancelNotReceived); Loading Loading @@ -741,6 +745,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { @VisibleForTesting protected void onFaceAuthenticated(int userId) { Trace.beginSection("KeyGuardUpdateMonitor#onFaceAuthenticated"); checkIsHandlerThread(); mUserFaceAuthenticated.put(userId, true); // Update/refresh trust state only if user can skip bouncer if (getUserCanSkipBouncer(userId)) { Loading @@ -766,6 +771,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFaceAuthFailed() { checkIsHandlerThread(); setFaceRunningState(BIOMETRIC_STATE_STOPPED); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading @@ -778,6 +784,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFaceAcquired(int acquireInfo) { checkIsHandlerThread(); if (acquireInfo != FaceManager.FACE_ACQUIRED_GOOD) { return; } Loading Loading @@ -821,6 +828,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFaceHelp(int msgId, String helpString) { checkIsHandlerThread(); if (DEBUG_FACE) Log.d(TAG, "Face help received: " + helpString); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading @@ -840,6 +848,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { }; private void handleFaceError(int msgId, String errString) { checkIsHandlerThread(); if (DEBUG_FACE) Log.d(TAG, "Face error received: " + errString); if (msgId == FaceManager.FACE_ERROR_CANCELED && mHandler.hasCallbacks(mCancelNotReceived)) { mHandler.removeCallbacks(mCancelNotReceived); Loading Loading @@ -894,6 +903,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void notifyFaceRunningStateChanged() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading Loading @@ -1013,6 +1023,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void dispatchErrorMessage(CharSequence message) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading Loading @@ -1092,7 +1103,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } if (DEBUG_SIM_STATES) { Log.v(TAG, "action " + action + " state: " + intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE) + " state: " + intent.getStringExtra( IccCardConstants.INTENT_KEY_ICC_STATE) + " slotId: " + args.slotId + " subid: " + args.subId); } mHandler.obtainMessage(MSG_SIM_STATE_CHANGE, args.subId, args.slotId, args.simState) Loading Loading @@ -1138,7 +1150,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_INFO_CHANGED, intent.getIntExtra(Intent.EXTRA_USER_HANDLE, getSendingUserId()), 0)); } else if (ACTION_FACE_UNLOCK_STARTED.equals(action)) { Trace.beginSection("KeyguardUpdateMonitor.mBroadcastAllReceiver#onReceive ACTION_FACE_UNLOCK_STARTED"); Trace.beginSection( "KeyguardUpdateMonitor.mBroadcastAllReceiver#onReceive " + "ACTION_FACE_UNLOCK_STARTED"); mHandler.sendMessage(mHandler.obtainMessage(MSG_FACE_UNLOCK_STATE_CHANGED, 1, getSendingUserId())); Trace.endSection(); Loading Loading @@ -1319,6 +1333,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { public final int plugged; public final int health; public final int maxChargingWattage; public BatteryStatus(int status, int level, int plugged, int health, int maxChargingWattage) { this.status = status; Loading @@ -1330,6 +1345,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Determine whether the device is plugged in (USB, power, or wireless). * * @return true if the device is plugged in. */ public boolean isPluggedIn() { Loading @@ -1340,6 +1356,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Determine whether the device is plugged in (USB, power). * * @return true if the device is plugged in wired (as opposed to wireless) */ public boolean isPluggedInWired() { Loading @@ -1351,6 +1368,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Whether or not the device is charged. Note that some devices never return 100% for * battery level, so this allows either battery level or status to determine if the * battery is charged. * * @return true if the device is charged */ public boolean isCharged() { Loading @@ -1359,6 +1377,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Whether battery is low and needs to be charged. * * @return true if battery is low */ public boolean isBatteryLow() { Loading Loading @@ -1414,9 +1433,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { protected void handleStartedWakingUp() { Trace.beginSection("KeyguardUpdateMonitor#handleStartedWakingUp"); checkIsHandlerThread(); updateBiometricListeningState(); final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onStartedWakingUp(); Loading @@ -1426,9 +1445,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } protected void handleStartedGoingToSleep(int arg1) { checkIsHandlerThread(); clearBiometricRecognized(); final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onStartedGoingToSleep(arg1); Loading @@ -1439,9 +1458,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } protected void handleFinishedGoingToSleep(int arg1) { checkIsHandlerThread(); mGoingToSleep = false; final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onFinishedGoingToSleep(arg1); Loading @@ -1451,8 +1470,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleScreenTurnedOn() { final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onScreenTurnedOn(); Loading @@ -1461,11 +1480,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleScreenTurnedOff() { checkIsHandlerThread(); mLockIconPressed = false; mHardwareFingerprintUnavailableRetryCount = 0; mHardwareFaceUnavailableRetryCount = 0; final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onScreenTurnedOff(); Loading @@ -1474,9 +1493,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleDreamingStateChanged(int dreamStart) { final int count = mCallbacks.size(); checkIsHandlerThread(); mIsDreaming = dreamStart == 1; for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onDreamingStateChanged(mIsDreaming); Loading @@ -1486,6 +1505,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleUserInfoChanged(int userId) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -1495,6 +1515,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleUserUnlocked() { checkIsHandlerThread(); mNeedsSlowUnlockTransition = resolveNeedsSlowUnlockTransition(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading Loading @@ -1559,6 +1580,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCHING, newUserId, 0, reply)); } @Override public void onUserSwitchComplete(int newUserId) throws RemoteException { mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCH_COMPLETE, Loading Loading @@ -1644,6 +1666,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Called whenever passive authentication is requested or aborted by a sensor. * * @param active If the interrupt started or ended. */ public void onAuthInterruptDetected(boolean active) { Loading Loading @@ -1898,7 +1921,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { checkIsHandlerThread(); if (hasLockscreenWallpaper != mHasLockscreenWallpaper) { mHasLockscreenWallpaper = hasLockscreenWallpaper; for (int i = mCallbacks.size() - 1; i >= 0; i--) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onHasLockscreenWallpaperChanged(hasLockscreenWallpaper); Loading @@ -1918,8 +1941,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_DPM_STATE_CHANGED} */ private void handleDevicePolicyManagerStateChanged() { checkIsHandlerThread(); updateFingerprintListeningState(); for (int i = mCallbacks.size() - 1; i >= 0; i--) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onDevicePolicyManagerStateChanged(); Loading @@ -1931,6 +1955,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_USER_SWITCHING} */ private void handleUserSwitching(int userId, IRemoteCallback reply) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -1947,6 +1972,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_USER_SWITCH_COMPLETE} */ private void handleUserSwitchComplete(int userId) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -1969,6 +1995,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_BOOT_COMPLETED} */ private void handleBootCompleted() { checkIsHandlerThread(); if (mBootCompleted) return; mBootCompleted = true; for (int i = 0; i < mCallbacks.size(); i++) { Loading @@ -1991,6 +2018,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_DEVICE_PROVISIONED} */ private void handleDeviceProvisioned() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -2008,6 +2036,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_PHONE_STATE_CHANGED} */ private void handlePhoneStateChanged(String newState) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handlePhoneStateChanged(" + newState + ")"); if (TelephonyManager.EXTRA_STATE_IDLE.equals(newState)) { mPhoneState = TelephonyManager.CALL_STATE_IDLE; Loading @@ -2028,6 +2057,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_RINGER_MODE_CHANGED} */ private void handleRingerModeChange(int mode) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleRingerModeChange(" + mode + ")"); mRingMode = mode; for (int i = 0; i < mCallbacks.size(); i++) { Loading @@ -2042,6 +2072,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_TIME_UPDATE} */ private void handleTimeUpdate() { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleTimeUpdate"); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading @@ -2055,6 +2086,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle (@line #MSG_TIMEZONE_UPDATE} */ private void handleTimeZoneUpdate(String timeZone) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleTimeZoneUpdate"); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading @@ -2070,6 +2102,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_BATTERY_UPDATE} */ private void handleBatteryUpdate(BatteryStatus status) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleBatteryUpdate"); final boolean batteryUpdateInteresting = isBatteryUpdateInteresting(mBatteryStatus, status); mBatteryStatus = status; Loading @@ -2088,12 +2121,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { */ @VisibleForTesting void updateTelephonyCapable(boolean capable) { checkIsHandlerThread(); if (capable == mTelephonyCapable) { return; } mTelephonyCapable = capable; for (WeakReference<KeyguardUpdateMonitorCallback> ref : mCallbacks) { KeyguardUpdateMonitorCallback cb = ref.get(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onTelephonyCapable(mTelephonyCapable); } Loading Loading @@ -2176,12 +2210,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mServiceStates.put(subId, serviceState); for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); if (cb != null) { cb.onRefreshCarrierInfo(); } } callbacksRefreshCarrierInfo(); } public boolean isKeyguardVisible() { Loading Loading @@ -2233,9 +2262,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Handle {@link #MSG_KEYGUARD_BOUNCER_CHANGED} * * @see #sendKeyguardBouncerChanged(boolean) */ private void handleKeyguardBouncerChanged(int bouncer) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleKeyguardBouncerChanged(" + bouncer + ")"); boolean isBouncer = (bouncer == 1); mBouncer = isBouncer; Loading @@ -2261,6 +2292,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_REPORT_EMERGENCY_CALL_ACTION} */ private void handleReportEmergencyCallAction() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading Loading @@ -2300,31 +2332,34 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { */ public void removeCallback(KeyguardUpdateMonitorCallback callback) { checkIsHandlerThread(); if (DEBUG) Log.v(TAG, "*** unregister callback for " + callback); for (int i = mCallbacks.size() - 1; i >= 0; i--) { if (mCallbacks.get(i).get() == callback) { mCallbacks.remove(i); } if (DEBUG) { Log.v(TAG, "*** unregister callback for " + callback); } mCallbacks.removeIf(el -> el.get() == callback); } /** * Register to receive notifications about general keyguard information * (see {@link InfoCallback}. * * @param callback The callback to register */ public void registerCallback(KeyguardUpdateMonitorCallback callback) { checkIsHandlerThread(); if (DEBUG) Log.v(TAG, "*** register callback for " + callback); // Prevent adding duplicate callbacks for (int i = 0; i < mCallbacks.size(); i++) { if (mCallbacks.get(i).get() == callback) { if (DEBUG) Log.e(TAG, "Object tried to add another callback", if (DEBUG) { Log.e(TAG, "Object tried to add another callback", new Exception("Called by")); } return; } } mCallbacks.add(new WeakReference<KeyguardUpdateMonitorCallback>(callback)); mCallbacks.add(new WeakReference<>(callback)); removeCallback(null); // remove unused references sendUpdates(callback); } Loading Loading @@ -2419,6 +2454,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } public void clearBiometricRecognized() { checkIsHandlerThread(); mUserFingerprintAuthenticated.clear(); mUserFaceAuthenticated.clear(); mTrustManager.clearAllBiometricRecognized(BiometricSourceType.FINGERPRINT); Loading @@ -2439,6 +2475,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * If any SIM cards are currently secure. * * @see #isSimPinSecure(State) */ public boolean isSimPinSecure() { Loading Loading @@ -2571,7 +2608,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Find the next SubscriptionId for a SIM in the given state, favoring lower slot numbers first. * @param state * * @return subid or {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID} if none found */ public int getNextSubIdForState(State state) { Loading Loading @@ -2611,6 +2648,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { boolean logoutEnabled = mDevicePolicyManager.isLogoutEnabled(); if (mLogoutEnabled != logoutEnabled) { mLogoutEnabled = logoutEnabled; for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +113 −75 Original line number Diff line number Diff line Loading @@ -345,7 +345,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { Trace.endSection(); break; case MSG_FACE_UNLOCK_STATE_CHANGED: Trace.beginSection("KeyguardUpdateMonitor#handler MSG_FACE_UNLOCK_STATE_CHANGED"); Trace.beginSection( "KeyguardUpdateMonitor#handler MSG_FACE_UNLOCK_STATE_CHANGED"); handleFaceUnlockStateChanged(msg.arg1 != 0, msg.arg2); Trace.endSection(); break; Loading Loading @@ -459,6 +460,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleSimSubscriptionInfoChanged() { checkIsHandlerThread(); if (DEBUG_SIM_STATES) { Log.v(TAG, "onSubscriptionInfoChanged()"); List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList(false); Loading Loading @@ -492,17 +494,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } } for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); if (cb != null) { cb.onRefreshCarrierInfo(); } } callbacksRefreshCarrierInfo(); } private void handleAirplaneModeChanged() { for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); callbacksRefreshCarrierInfo(); } private void callbacksRefreshCarrierInfo() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onRefreshCarrierInfo(); } Loading @@ -528,7 +530,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { public void onTrustManagedChanged(boolean managed, int userId) { checkIsHandlerThread(); mUserTrustIsManaged.put(userId, managed); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -539,7 +540,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Updates KeyguardUpdateMonitor's internal state to know if keyguard is goingAway * @param goingAway */ public void setKeyguardGoingAway(boolean goingAway) { mKeyguardGoingAway = goingAway; Loading @@ -548,7 +548,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Updates KeyguardUpdateMonitor's internal state to know if keyguard is occluded * @param occluded */ public void setKeyguardOccluded(boolean occluded) { mKeyguardOccluded = occluded; Loading Loading @@ -585,6 +584,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { @VisibleForTesting protected void onFingerprintAuthenticated(int userId) { checkIsHandlerThread(); Trace.beginSection("KeyGuardUpdateMonitor#onFingerPrintAuthenticated"); mUserFingerprintAuthenticated.put(userId, true); // Update/refresh trust state only if user can skip bouncer Loading @@ -610,6 +610,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFingerprintAuthFailed() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -621,6 +622,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFingerprintAcquired(int acquireInfo) { checkIsHandlerThread(); if (acquireInfo != FingerprintManager.FINGERPRINT_ACQUIRED_GOOD) { return; } Loading Loading @@ -658,6 +660,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFingerprintHelp(int msgId, String helpString) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -676,6 +679,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { }; private void handleFingerprintError(int msgId, String errString) { checkIsHandlerThread(); if (msgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED && mHandler.hasCallbacks( mCancelNotReceived)) { mHandler.removeCallbacks(mCancelNotReceived); Loading Loading @@ -741,6 +745,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { @VisibleForTesting protected void onFaceAuthenticated(int userId) { Trace.beginSection("KeyGuardUpdateMonitor#onFaceAuthenticated"); checkIsHandlerThread(); mUserFaceAuthenticated.put(userId, true); // Update/refresh trust state only if user can skip bouncer if (getUserCanSkipBouncer(userId)) { Loading @@ -766,6 +771,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFaceAuthFailed() { checkIsHandlerThread(); setFaceRunningState(BIOMETRIC_STATE_STOPPED); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading @@ -778,6 +784,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFaceAcquired(int acquireInfo) { checkIsHandlerThread(); if (acquireInfo != FaceManager.FACE_ACQUIRED_GOOD) { return; } Loading Loading @@ -821,6 +828,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFaceHelp(int msgId, String helpString) { checkIsHandlerThread(); if (DEBUG_FACE) Log.d(TAG, "Face help received: " + helpString); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading @@ -840,6 +848,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { }; private void handleFaceError(int msgId, String errString) { checkIsHandlerThread(); if (DEBUG_FACE) Log.d(TAG, "Face error received: " + errString); if (msgId == FaceManager.FACE_ERROR_CANCELED && mHandler.hasCallbacks(mCancelNotReceived)) { mHandler.removeCallbacks(mCancelNotReceived); Loading Loading @@ -894,6 +903,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void notifyFaceRunningStateChanged() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading Loading @@ -1013,6 +1023,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void dispatchErrorMessage(CharSequence message) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading Loading @@ -1092,7 +1103,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } if (DEBUG_SIM_STATES) { Log.v(TAG, "action " + action + " state: " + intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE) + " state: " + intent.getStringExtra( IccCardConstants.INTENT_KEY_ICC_STATE) + " slotId: " + args.slotId + " subid: " + args.subId); } mHandler.obtainMessage(MSG_SIM_STATE_CHANGE, args.subId, args.slotId, args.simState) Loading Loading @@ -1138,7 +1150,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_INFO_CHANGED, intent.getIntExtra(Intent.EXTRA_USER_HANDLE, getSendingUserId()), 0)); } else if (ACTION_FACE_UNLOCK_STARTED.equals(action)) { Trace.beginSection("KeyguardUpdateMonitor.mBroadcastAllReceiver#onReceive ACTION_FACE_UNLOCK_STARTED"); Trace.beginSection( "KeyguardUpdateMonitor.mBroadcastAllReceiver#onReceive " + "ACTION_FACE_UNLOCK_STARTED"); mHandler.sendMessage(mHandler.obtainMessage(MSG_FACE_UNLOCK_STATE_CHANGED, 1, getSendingUserId())); Trace.endSection(); Loading Loading @@ -1319,6 +1333,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { public final int plugged; public final int health; public final int maxChargingWattage; public BatteryStatus(int status, int level, int plugged, int health, int maxChargingWattage) { this.status = status; Loading @@ -1330,6 +1345,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Determine whether the device is plugged in (USB, power, or wireless). * * @return true if the device is plugged in. */ public boolean isPluggedIn() { Loading @@ -1340,6 +1356,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Determine whether the device is plugged in (USB, power). * * @return true if the device is plugged in wired (as opposed to wireless) */ public boolean isPluggedInWired() { Loading @@ -1351,6 +1368,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Whether or not the device is charged. Note that some devices never return 100% for * battery level, so this allows either battery level or status to determine if the * battery is charged. * * @return true if the device is charged */ public boolean isCharged() { Loading @@ -1359,6 +1377,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Whether battery is low and needs to be charged. * * @return true if battery is low */ public boolean isBatteryLow() { Loading Loading @@ -1414,9 +1433,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { protected void handleStartedWakingUp() { Trace.beginSection("KeyguardUpdateMonitor#handleStartedWakingUp"); checkIsHandlerThread(); updateBiometricListeningState(); final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onStartedWakingUp(); Loading @@ -1426,9 +1445,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } protected void handleStartedGoingToSleep(int arg1) { checkIsHandlerThread(); clearBiometricRecognized(); final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onStartedGoingToSleep(arg1); Loading @@ -1439,9 +1458,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } protected void handleFinishedGoingToSleep(int arg1) { checkIsHandlerThread(); mGoingToSleep = false; final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onFinishedGoingToSleep(arg1); Loading @@ -1451,8 +1470,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleScreenTurnedOn() { final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onScreenTurnedOn(); Loading @@ -1461,11 +1480,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleScreenTurnedOff() { checkIsHandlerThread(); mLockIconPressed = false; mHardwareFingerprintUnavailableRetryCount = 0; mHardwareFaceUnavailableRetryCount = 0; final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onScreenTurnedOff(); Loading @@ -1474,9 +1493,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleDreamingStateChanged(int dreamStart) { final int count = mCallbacks.size(); checkIsHandlerThread(); mIsDreaming = dreamStart == 1; for (int i = 0; i < count; i++) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onDreamingStateChanged(mIsDreaming); Loading @@ -1486,6 +1505,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleUserInfoChanged(int userId) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -1495,6 +1515,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleUserUnlocked() { checkIsHandlerThread(); mNeedsSlowUnlockTransition = resolveNeedsSlowUnlockTransition(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading Loading @@ -1559,6 +1580,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCHING, newUserId, 0, reply)); } @Override public void onUserSwitchComplete(int newUserId) throws RemoteException { mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCH_COMPLETE, Loading Loading @@ -1644,6 +1666,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Called whenever passive authentication is requested or aborted by a sensor. * * @param active If the interrupt started or ended. */ public void onAuthInterruptDetected(boolean active) { Loading Loading @@ -1898,7 +1921,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { checkIsHandlerThread(); if (hasLockscreenWallpaper != mHasLockscreenWallpaper) { mHasLockscreenWallpaper = hasLockscreenWallpaper; for (int i = mCallbacks.size() - 1; i >= 0; i--) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onHasLockscreenWallpaperChanged(hasLockscreenWallpaper); Loading @@ -1918,8 +1941,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_DPM_STATE_CHANGED} */ private void handleDevicePolicyManagerStateChanged() { checkIsHandlerThread(); updateFingerprintListeningState(); for (int i = mCallbacks.size() - 1; i >= 0; i--) { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onDevicePolicyManagerStateChanged(); Loading @@ -1931,6 +1955,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_USER_SWITCHING} */ private void handleUserSwitching(int userId, IRemoteCallback reply) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -1947,6 +1972,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_USER_SWITCH_COMPLETE} */ private void handleUserSwitchComplete(int userId) { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -1969,6 +1995,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_BOOT_COMPLETED} */ private void handleBootCompleted() { checkIsHandlerThread(); if (mBootCompleted) return; mBootCompleted = true; for (int i = 0; i < mCallbacks.size(); i++) { Loading @@ -1991,6 +2018,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_DEVICE_PROVISIONED} */ private void handleDeviceProvisioned() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading @@ -2008,6 +2036,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_PHONE_STATE_CHANGED} */ private void handlePhoneStateChanged(String newState) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handlePhoneStateChanged(" + newState + ")"); if (TelephonyManager.EXTRA_STATE_IDLE.equals(newState)) { mPhoneState = TelephonyManager.CALL_STATE_IDLE; Loading @@ -2028,6 +2057,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_RINGER_MODE_CHANGED} */ private void handleRingerModeChange(int mode) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleRingerModeChange(" + mode + ")"); mRingMode = mode; for (int i = 0; i < mCallbacks.size(); i++) { Loading @@ -2042,6 +2072,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_TIME_UPDATE} */ private void handleTimeUpdate() { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleTimeUpdate"); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading @@ -2055,6 +2086,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle (@line #MSG_TIMEZONE_UPDATE} */ private void handleTimeZoneUpdate(String timeZone) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleTimeZoneUpdate"); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); Loading @@ -2070,6 +2102,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_BATTERY_UPDATE} */ private void handleBatteryUpdate(BatteryStatus status) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleBatteryUpdate"); final boolean batteryUpdateInteresting = isBatteryUpdateInteresting(mBatteryStatus, status); mBatteryStatus = status; Loading @@ -2088,12 +2121,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { */ @VisibleForTesting void updateTelephonyCapable(boolean capable) { checkIsHandlerThread(); if (capable == mTelephonyCapable) { return; } mTelephonyCapable = capable; for (WeakReference<KeyguardUpdateMonitorCallback> ref : mCallbacks) { KeyguardUpdateMonitorCallback cb = ref.get(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onTelephonyCapable(mTelephonyCapable); } Loading Loading @@ -2176,12 +2210,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mServiceStates.put(subId, serviceState); for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); if (cb != null) { cb.onRefreshCarrierInfo(); } } callbacksRefreshCarrierInfo(); } public boolean isKeyguardVisible() { Loading Loading @@ -2233,9 +2262,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Handle {@link #MSG_KEYGUARD_BOUNCER_CHANGED} * * @see #sendKeyguardBouncerChanged(boolean) */ private void handleKeyguardBouncerChanged(int bouncer) { checkIsHandlerThread(); if (DEBUG) Log.d(TAG, "handleKeyguardBouncerChanged(" + bouncer + ")"); boolean isBouncer = (bouncer == 1); mBouncer = isBouncer; Loading @@ -2261,6 +2292,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_REPORT_EMERGENCY_CALL_ACTION} */ private void handleReportEmergencyCallAction() { checkIsHandlerThread(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading Loading @@ -2300,31 +2332,34 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { */ public void removeCallback(KeyguardUpdateMonitorCallback callback) { checkIsHandlerThread(); if (DEBUG) Log.v(TAG, "*** unregister callback for " + callback); for (int i = mCallbacks.size() - 1; i >= 0; i--) { if (mCallbacks.get(i).get() == callback) { mCallbacks.remove(i); } if (DEBUG) { Log.v(TAG, "*** unregister callback for " + callback); } mCallbacks.removeIf(el -> el.get() == callback); } /** * Register to receive notifications about general keyguard information * (see {@link InfoCallback}. * * @param callback The callback to register */ public void registerCallback(KeyguardUpdateMonitorCallback callback) { checkIsHandlerThread(); if (DEBUG) Log.v(TAG, "*** register callback for " + callback); // Prevent adding duplicate callbacks for (int i = 0; i < mCallbacks.size(); i++) { if (mCallbacks.get(i).get() == callback) { if (DEBUG) Log.e(TAG, "Object tried to add another callback", if (DEBUG) { Log.e(TAG, "Object tried to add another callback", new Exception("Called by")); } return; } } mCallbacks.add(new WeakReference<KeyguardUpdateMonitorCallback>(callback)); mCallbacks.add(new WeakReference<>(callback)); removeCallback(null); // remove unused references sendUpdates(callback); } Loading Loading @@ -2419,6 +2454,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } public void clearBiometricRecognized() { checkIsHandlerThread(); mUserFingerprintAuthenticated.clear(); mUserFaceAuthenticated.clear(); mTrustManager.clearAllBiometricRecognized(BiometricSourceType.FINGERPRINT); Loading @@ -2439,6 +2475,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * If any SIM cards are currently secure. * * @see #isSimPinSecure(State) */ public boolean isSimPinSecure() { Loading Loading @@ -2571,7 +2608,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { /** * Find the next SubscriptionId for a SIM in the given state, favoring lower slot numbers first. * @param state * * @return subid or {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID} if none found */ public int getNextSubIdForState(State state) { Loading Loading @@ -2611,6 +2648,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { boolean logoutEnabled = mDevicePolicyManager.isLogoutEnabled(); if (mLogoutEnabled != logoutEnabled) { mLogoutEnabled = logoutEnabled; for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { Loading