From 51c5245be272fb9a6183c345a408daec7726a523 Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Wed, 4 Mar 2020 14:55:12 -0500 Subject: [PATCH] Move WakeUpListener from LockIcon to Controller. Replaces inheritance to delegation within the controller. Bug: 150393918 Test: atest SystemUITests Change-Id: Ic39995edd3f511898f5d77dadbe15fe9c1f01251 --- .../systemui/statusbar/phone/LockIcon.java | 15 +----------- .../phone/LockscreenLockIconController.java | 24 ++++++++++++++++++- .../phone/LockscreenIconControllerTest.java | 8 ++++++- 3 files changed, 31 insertions(+), 16 deletions(-) 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 0e8add3d8ef23..3e612e574573f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java @@ -61,7 +61,6 @@ import javax.inject.Named; * Manages the different states and animations of the unlock icon. */ public class LockIcon extends KeyguardAffordanceView implements - NotificationWakeUpCoordinator.WakeUpListener, ViewTreeObserver.OnPreDrawListener, OnHeadsUpChangedListener { private static final int STATE_LOCKED = 0; @@ -192,7 +191,6 @@ public class LockIcon extends KeyguardAffordanceView implements super.onAttachedToWindow(); mKeyguardStateController.addCallback(mKeyguardMonitorCallback); mKeyguardUpdateMonitor.registerCallback(mUpdateMonitorCallback); - mWakeUpCoordinator.addListener(this); mSimLocked = mKeyguardUpdateMonitor.isSimPinSecure(); if (mDockManager != null) { mDockManager.addListener(mDockEventListener); @@ -205,7 +203,6 @@ public class LockIcon extends KeyguardAffordanceView implements super.onDetachedFromWindow(); mKeyguardUpdateMonitor.removeCallback(mUpdateMonitorCallback); mKeyguardStateController.removeCallback(mKeyguardMonitorCallback); - mWakeUpCoordinator.removeListener(this); if (mDockManager != null) { mDockManager.removeListener(mDockEventListener); } @@ -306,7 +303,7 @@ public class LockIcon extends KeyguardAffordanceView implements * Update the icon visibility * @return true if the visibility changed */ - private boolean updateIconVisibility() { + boolean updateIconVisibility() { boolean onAodNotPulsingOrDocked = mDozing && (!mPulsing || mDocked); boolean invisible = onAodNotPulsingOrDocked || mWakeAndUnlockRunning || mShowingLaunchAffordance; @@ -424,16 +421,6 @@ public class LockIcon extends KeyguardAffordanceView implements return -1; } - @Override - public void onFullyHiddenChanged(boolean isFullyHidden) { - if (mBypassController.getBypassEnabled()) { - boolean changed = updateIconVisibility(); - if (changed) { - update(); - } - } - } - public void setBouncerShowingScrimmed(boolean bouncerShowing) { mBouncerShowingScrimmed = bouncerShowing; if (mBypassController.getBypassEnabled()) { 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 698a430c389ec..4cf8607f3186f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java @@ -28,6 +28,8 @@ import com.android.systemui.R; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.KeyguardIndicationController; +import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; +import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator.WakeUpListener; import com.android.systemui.statusbar.policy.AccessibilityController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; @@ -47,6 +49,8 @@ public class LockscreenLockIconController { private final KeyguardIndicationController mKeyguardIndicationController; private final StatusBarStateController mStatusBarStateController; private final ConfigurationController mConfigurationController; + private final NotificationWakeUpCoordinator mNotificationWakeUpCoordinator; + private final KeyguardBypassController mKeyguardBypassController; private LockIcon mLockIcon; private View.OnAttachStateChangeListener mOnAttachStateChangeListener = @@ -55,6 +59,7 @@ public class LockscreenLockIconController { public void onViewAttachedToWindow(View v) { mStatusBarStateController.addCallback(mSBStateListener); mConfigurationController.addCallback(mConfigurationListener); + mNotificationWakeUpCoordinator.addListener(mWakeUpListener); mConfigurationListener.onThemeChanged(); } @@ -63,6 +68,7 @@ public class LockscreenLockIconController { public void onViewDetachedFromWindow(View v) { mStatusBarStateController.removeCallback(mSBStateListener); mConfigurationController.removeCallback(mConfigurationListener); + mNotificationWakeUpCoordinator.removeListener(mWakeUpListener); } }; @@ -115,6 +121,18 @@ public class LockscreenLockIconController { } }; + private final WakeUpListener mWakeUpListener = new WakeUpListener() { + @Override + public void onFullyHiddenChanged(boolean isFullyHidden) { + if (mKeyguardBypassController.getBypassEnabled()) { + boolean changed = mLockIcon.updateIconVisibility(); + if (changed) { + mLockIcon.update(); + } + } + } + }; + @Inject public LockscreenLockIconController(LockscreenGestureLogger lockscreenGestureLogger, KeyguardUpdateMonitor keyguardUpdateMonitor, @@ -123,7 +141,9 @@ public class LockscreenLockIconController { AccessibilityController accessibilityController, KeyguardIndicationController keyguardIndicationController, StatusBarStateController statusBarStateController, - ConfigurationController configurationController) { + ConfigurationController configurationController, + NotificationWakeUpCoordinator notificationWakeUpCoordinator, + KeyguardBypassController keyguardBypassController) { mLockscreenGestureLogger = lockscreenGestureLogger; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mLockPatternUtils = lockPatternUtils; @@ -132,6 +152,8 @@ public class LockscreenLockIconController { mKeyguardIndicationController = keyguardIndicationController; mStatusBarStateController = statusBarStateController; mConfigurationController = configurationController; + mNotificationWakeUpCoordinator = notificationWakeUpCoordinator; + mKeyguardBypassController = keyguardBypassController; mKeyguardIndicationController.setLockIconController(this); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java index 05f10e376f619..be8d1821faa44 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java @@ -31,6 +31,7 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.KeyguardIndicationController; +import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; import com.android.systemui.statusbar.policy.AccessibilityController; import com.android.systemui.statusbar.policy.ConfigurationController; @@ -63,6 +64,10 @@ public class LockscreenIconControllerTest extends SysuiTestCase { private StatusBarStateController mStatusBarStateController; @Mock private ConfigurationController mConfigurationController; + @Mock + private NotificationWakeUpCoordinator mNotificationWakeUpCoordinator; + @Mock + private KeyguardBypassController mKeyguardBypassController; @Before public void setUp() { @@ -71,7 +76,8 @@ public class LockscreenIconControllerTest extends SysuiTestCase { mLockIconController = new LockscreenLockIconController( mLockscreenGestureLogger, mKeyguardUpdateMonitor, mLockPatternUtils, mShadeController, mAccessibilityController, mKeyguardIndicationController, - mStatusBarStateController, mConfigurationController); + mStatusBarStateController, mConfigurationController, mNotificationWakeUpCoordinator, + mKeyguardBypassController); mLockIconController.attach(mLockIcon); }