Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1bf337f0 authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Move DockEventListener from LockIcon to Controller

Bug: 150393918
Test: atest SystemUITests && manual
Change-Id: I431ca2951d4fb2ca38601a3dbd8ea157d6a81a73
parent 8fe38b59
Loading
Loading
Loading
Loading
+8 −24
Original line number Diff line number Diff line
@@ -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 {}
+18 −1
Original line number Diff line number Diff line
@@ -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);
    }
+5 −1
Original line number Diff line number Diff line
@@ -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);
    }