From 1dbbe7d664b16aad502730933f67a24152a81165 Mon Sep 17 00:00:00 2001 From: Nicolas Prevot Date: Tue, 17 May 2016 12:52:54 +0100 Subject: [PATCH] Refactor how StatusBarPolicy knows if keyguard is visible. In the case where the keyguard has never been shown and thus never been dismissed: StatusBarPolicy thought the keyguard was still visible. Instead of StatusBarPolicy keeping its own internal variable for wether the keyguard is visible, directly use StatusBarKeyguardViewManager.isShowing() BUG:28755086 Change-Id: I1b30c0e6985aa7ff35eea41444ab5504c00ff130 --- .../systemui/statusbar/phone/PhoneStatusBar.java | 5 ++--- .../statusbar/phone/PhoneStatusBarPolicy.java | 15 +++++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 4bb97974b88be..72e4d21eee653 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -1178,6 +1178,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mKeyguardIndicationController.setStatusBarKeyguardViewManager( mStatusBarKeyguardViewManager); mFingerprintUnlockController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager); + mIconPolicy.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager); mRemoteInputController.addCallback(mStatusBarKeyguardViewManager); if (FORCE_REMOTE_INPUT_HISTORY) { @@ -4065,12 +4066,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } if (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) { mScrimController.setKeyguardShowing(true); - mIconPolicy.setKeyguardShowing(true); } else { mScrimController.setKeyguardShowing(false); - mIconPolicy.setKeyguardShowing(false); } - + mIconPolicy.notifyKeyguardShowingChanged(); mNotificationPanel.setBarState(mState, mKeyguardFadingAway, goingToFullShade); updateDozingState(); updatePublicMode(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java index 823af36fff5a9..8f24033e0beec 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java @@ -80,6 +80,7 @@ public class PhoneStatusBarPolicy implements Callback, RotationLockController.Ro private final StatusBarIconController mIconController; private final RotationLockController mRotationLockController; private final DataSaverController mDataSaver; + private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; // Assume it's all good unless we hear otherwise. We don't always seem // to get broadcasts that it *is* there. @@ -95,7 +96,6 @@ public class PhoneStatusBarPolicy implements Callback, RotationLockController.Ro private boolean mManagedProfileIconVisible = false; private boolean mManagedProfileInQuietMode = false; - private boolean mKeyguardVisible = true; private BluetoothController mBluetooth; public PhoneStatusBarPolicy(Context context, StatusBarIconController iconController, @@ -192,6 +192,11 @@ public class PhoneStatusBarPolicy implements Callback, RotationLockController.Ro mDataSaver.addListener(this); } + public void setStatusBarKeyguardViewManager( + StatusBarKeyguardViewManager statusBarKeyguardViewManager) { + mStatusBarKeyguardViewManager = statusBarKeyguardViewManager; + } + public void setZenMode(int zen) { mZen = zen; updateVolumeZen(); @@ -385,10 +390,9 @@ public class PhoneStatusBarPolicy implements Callback, RotationLockController.Ro private void updateManagedProfile() { if (DEBUG) Log.v(TAG, "updateManagedProfile: mManagedProfileFocused: " - + mManagedProfileFocused - + " mKeyguardVisible: " + mKeyguardVisible); + + mManagedProfileFocused); final boolean showIcon; - if (mManagedProfileFocused && !mKeyguardVisible) { + if (mManagedProfileFocused && !mStatusBarKeyguardViewManager.isShowing()) { showIcon = true; mIconController.setIcon(mSlotManagedProfile, R.drawable.stat_sys_managed_profile_status, @@ -446,8 +450,7 @@ public class PhoneStatusBarPolicy implements Callback, RotationLockController.Ro updateManagedProfile(); } - public void setKeyguardShowing(boolean visible) { - mKeyguardVisible = visible; + public void notifyKeyguardShowingChanged() { updateManagedProfile(); }