Move WakeUpListener from LockIcon to Controller.

Replaces inheritance to delegation within the controller.

Bug: 150393918
Test: atest SystemUITests
Change-Id: Ic39995edd3f511898f5d77dadbe15fe9c1f01251
This commit is contained in:
Dave Mankoff
2020-03-04 14:55:12 -05:00
parent 90f81b417a
commit 51c5245be2
3 changed files with 31 additions and 16 deletions

View File

@@ -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()) {

View File

@@ -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);
}

View File

@@ -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);
}