Move DockEventListener from LockIcon to Controller
Bug: 150393918 Test: atest SystemUITests && manual Change-Id: I431ca2951d4fb2ca38601a3dbd8ea157d6a81a73
This commit is contained in:
@@ -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 {}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user