diff options
| author | 2020-03-05 13:57:43 -0500 | |
|---|---|---|
| committer | 2020-03-05 16:31:16 -0500 | |
| commit | 1bf337f01a7275b9fe55b3fb2b932384b6fd76ba (patch) | |
| tree | fb06df3e8505e50510c7d8eea654885aa4ec6596 | |
| parent | 8fe38b59bc14f568761ad9d66cbfe0c4c1f84e2b (diff) | |
Move DockEventListener from LockIcon to Controller
Bug: 150393918
Test: atest SystemUITests && manual
Change-Id: I431ca2951d4fb2ca38601a3dbd8ea157d6a81a73
3 files changed, 31 insertions, 26 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 468f98b8a19b..cf9d43eeff73 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java @@ -33,14 +33,11 @@ import android.util.AttributeSet; import android.view.ViewTreeObserver; import android.view.accessibility.AccessibilityNodeInfo; -import androidx.annotation.Nullable; - import com.android.internal.graphics.ColorUtils; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.R; -import com.android.systemui.dock.DockManager; import com.android.systemui.statusbar.KeyguardAffordanceView; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; @@ -66,7 +63,6 @@ public class LockIcon extends KeyguardAffordanceView implements private static final int STATE_BIOMETRICS_ERROR = 3; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; private final AccessibilityController mAccessibilityController; - private final DockManager mDockManager; private final KeyguardStateController mKeyguardStateController; private final KeyguardBypassController mBypassController; private final NotificationWakeUpCoordinator mWakeUpCoordinator; @@ -126,18 +122,6 @@ public class LockIcon extends KeyguardAffordanceView implements update(); } }; - private final DockManager.DockEventListener mDockEventListener = - new DockManager.DockEventListener() { - @Override - public void onEvent(int event) { - boolean docked = event == DockManager.STATE_DOCKED - || event == DockManager.STATE_DOCKED_HIDE; - if (docked != mDocked) { - mDocked = docked; - update(); - } - } - }; @Inject public LockIcon(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs, @@ -145,7 +129,6 @@ public class LockIcon extends KeyguardAffordanceView implements KeyguardBypassController bypassController, NotificationWakeUpCoordinator wakeUpCoordinator, KeyguardStateController keyguardStateController, - @Nullable DockManager dockManager, HeadsUpManagerPhone headsUpManager) { super(context, attrs); mContext = context; @@ -154,7 +137,6 @@ public class LockIcon extends KeyguardAffordanceView implements mBypassController = bypassController; mWakeUpCoordinator = wakeUpCoordinator; mKeyguardStateController = keyguardStateController; - mDockManager = dockManager; mHeadsUpManager = headsUpManager; } @@ -163,9 +145,6 @@ public class LockIcon extends KeyguardAffordanceView implements super.onAttachedToWindow(); mKeyguardStateController.addCallback(mKeyguardMonitorCallback); mSimLocked = mKeyguardUpdateMonitor.isSimPinSecure(); - if (mDockManager != null) { - mDockManager.addListener(mDockEventListener); - } update(); } @@ -173,9 +152,6 @@ public class LockIcon extends KeyguardAffordanceView implements protected void onDetachedFromWindow() { super.onDetachedFromWindow(); mKeyguardStateController.removeCallback(mKeyguardMonitorCallback); - if (mDockManager != null) { - mDockManager.removeListener(mDockEventListener); - } } /** @@ -415,6 +391,14 @@ public class LockIcon extends KeyguardAffordanceView implements mSimLocked = simLocked; } + /** Set if the device is docked. */ + public void setDocked(boolean docked) { + if (mDocked != docked) { + mDocked = docked; + update(); + } + } + @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 8dc6012f7c89..2b1a8a472d9e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java @@ -22,11 +22,14 @@ import android.hardware.biometrics.BiometricSourceType; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.Nullable; + 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.dock.DockManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.KeyguardIndicationController; @@ -36,6 +39,8 @@ import com.android.systemui.statusbar.policy.AccessibilityController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; +import java.util.Optional; + import javax.inject.Inject; import javax.inject.Singleton; @@ -53,6 +58,7 @@ public class LockscreenLockIconController { private final ConfigurationController mConfigurationController; private final NotificationWakeUpCoordinator mNotificationWakeUpCoordinator; private final KeyguardBypassController mKeyguardBypassController; + private final Optional<DockManager> mDockManager; private LockIcon mLockIcon; private View.OnAttachStateChangeListener mOnAttachStateChangeListener = @@ -64,6 +70,8 @@ public class LockscreenLockIconController { mNotificationWakeUpCoordinator.addListener(mWakeUpListener); mKeyguardUpdateMonitor.registerCallback(mUpdateMonitorCallback); + mDockManager.ifPresent(dockManager -> dockManager.addListener(mDockEventListener)); + mConfigurationListener.onThemeChanged(); } @@ -73,6 +81,9 @@ public class LockscreenLockIconController { mConfigurationController.removeCallback(mConfigurationListener); mNotificationWakeUpCoordinator.removeListener(mWakeUpListener); mKeyguardUpdateMonitor.removeCallback(mUpdateMonitorCallback); + + + mDockManager.ifPresent(dockManager -> dockManager.removeListener(mDockEventListener)); } }; @@ -162,6 +173,10 @@ public class LockscreenLockIconController { } }; + private final DockManager.DockEventListener mDockEventListener = + event -> mLockIcon.setDocked(event == DockManager.STATE_DOCKED + || event == DockManager.STATE_DOCKED_HIDE); + @Inject public LockscreenLockIconController(LockscreenGestureLogger lockscreenGestureLogger, KeyguardUpdateMonitor keyguardUpdateMonitor, @@ -172,7 +187,8 @@ public class LockscreenLockIconController { StatusBarStateController statusBarStateController, ConfigurationController configurationController, NotificationWakeUpCoordinator notificationWakeUpCoordinator, - KeyguardBypassController keyguardBypassController) { + KeyguardBypassController keyguardBypassController, + @Nullable DockManager dockManager) { mLockscreenGestureLogger = lockscreenGestureLogger; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mLockPatternUtils = lockPatternUtils; @@ -183,6 +199,7 @@ public class LockscreenLockIconController { mConfigurationController = configurationController; mNotificationWakeUpCoordinator = notificationWakeUpCoordinator; mKeyguardBypassController = keyguardBypassController; + mDockManager = dockManager == null ? Optional.empty() : Optional.of(dockManager); 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 be8d1821faa4..487885ac244e 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 @@ -29,6 +29,7 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.SysuiTestCase; +import com.android.systemui.dock.DockManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.KeyguardIndicationController; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; @@ -68,6 +69,9 @@ public class LockscreenIconControllerTest extends SysuiTestCase { private NotificationWakeUpCoordinator mNotificationWakeUpCoordinator; @Mock private KeyguardBypassController mKeyguardBypassController; + @Mock + private DockManager mDockManager; + @Before public void setUp() { @@ -77,7 +81,7 @@ public class LockscreenIconControllerTest extends SysuiTestCase { mLockscreenGestureLogger, mKeyguardUpdateMonitor, mLockPatternUtils, mShadeController, mAccessibilityController, mKeyguardIndicationController, mStatusBarStateController, mConfigurationController, mNotificationWakeUpCoordinator, - mKeyguardBypassController); + mKeyguardBypassController, mDockManager); mLockIconController.attach(mLockIcon); } |