diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java index 8367c2266095d..468f98b8a19b8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java @@ -26,7 +26,6 @@ import android.graphics.Color; import android.graphics.drawable.Animatable2; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.Drawable; -import android.hardware.biometrics.BiometricSourceType; import android.os.Trace; import android.provider.Settings; import android.text.TextUtils; @@ -38,7 +37,6 @@ import androidx.annotation.Nullable; import com.android.internal.graphics.ColorUtils; import com.android.keyguard.KeyguardUpdateMonitor; -import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; @@ -141,31 +139,6 @@ public class LockIcon extends KeyguardAffordanceView implements } }; - private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback = - new KeyguardUpdateMonitorCallback() { - @Override - public void onSimStateChanged(int subId, int slotId, int simState) { - mSimLocked = mKeyguardUpdateMonitor.isSimPinSecure(); - update(); - } - - @Override - public void onKeyguardVisibilityChanged(boolean showing) { - update(); - } - - @Override - public void onBiometricRunningStateChanged(boolean running, - BiometricSourceType biometricSourceType) { - update(); - } - - @Override - public void onStrongAuthStateChanged(int userId) { - update(); - } - }; - @Inject public LockIcon(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs, AccessibilityController accessibilityController, @@ -189,7 +162,6 @@ public class LockIcon extends KeyguardAffordanceView implements protected void onAttachedToWindow() { super.onAttachedToWindow(); mKeyguardStateController.addCallback(mKeyguardMonitorCallback); - mKeyguardUpdateMonitor.registerCallback(mUpdateMonitorCallback); mSimLocked = mKeyguardUpdateMonitor.isSimPinSecure(); if (mDockManager != null) { mDockManager.addListener(mDockEventListener); @@ -200,7 +172,6 @@ public class LockIcon extends KeyguardAffordanceView implements @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); - mKeyguardUpdateMonitor.removeCallback(mUpdateMonitorCallback); mKeyguardStateController.removeCallback(mKeyguardMonitorCallback); if (mDockManager != null) { mDockManager.removeListener(mDockEventListener); @@ -440,6 +411,10 @@ public class LockIcon extends KeyguardAffordanceView implements updateDarkTint(); } + void setSimLocked(boolean simLocked) { + mSimLocked = simLocked; + } + @Retention(RetentionPolicy.SOURCE) @IntDef({ERROR, UNLOCK, LOCK, SCANNING}) @interface LockAnimIndex {} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java index 4cf8607f3186f..8dc6012f7c896 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java @@ -18,12 +18,14 @@ package com.android.systemui.statusbar.phone; import android.content.res.TypedArray; import android.graphics.Color; +import android.hardware.biometrics.BiometricSourceType; import android.view.View; import android.view.ViewGroup; import com.android.internal.logging.nano.MetricsProto; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; +import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.R; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.CommandQueue; @@ -60,6 +62,7 @@ public class LockscreenLockIconController { mStatusBarStateController.addCallback(mSBStateListener); mConfigurationController.addCallback(mConfigurationListener); mNotificationWakeUpCoordinator.addListener(mWakeUpListener); + mKeyguardUpdateMonitor.registerCallback(mUpdateMonitorCallback); mConfigurationListener.onThemeChanged(); } @@ -69,6 +72,7 @@ public class LockscreenLockIconController { mStatusBarStateController.removeCallback(mSBStateListener); mConfigurationController.removeCallback(mConfigurationListener); mNotificationWakeUpCoordinator.removeListener(mWakeUpListener); + mKeyguardUpdateMonitor.removeCallback(mUpdateMonitorCallback); } }; @@ -133,6 +137,31 @@ public class LockscreenLockIconController { } }; + private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback = + new KeyguardUpdateMonitorCallback() { + @Override + public void onSimStateChanged(int subId, int slotId, int simState) { + mLockIcon.setSimLocked(mKeyguardUpdateMonitor.isSimPinSecure()); + mLockIcon.update(); + } + + @Override + public void onKeyguardVisibilityChanged(boolean showing) { + mLockIcon.update(); + } + + @Override + public void onBiometricRunningStateChanged(boolean running, + BiometricSourceType biometricSourceType) { + mLockIcon.update(); + } + + @Override + public void onStrongAuthStateChanged(int userId) { + mLockIcon.update(); + } + }; + @Inject public LockscreenLockIconController(LockscreenGestureLogger lockscreenGestureLogger, KeyguardUpdateMonitor keyguardUpdateMonitor,