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

Commit 3c40d952 authored by Justin Weir's avatar Justin Weir
Browse files

Make ShadeControllerImpl use KeyguardViewController

ShadeControllerImpl currently references StatusBarKeyguardViewManager
directly instead of using the interface KeyguardViewController. This
creates dependency injection issues, which can be read in more detail
in b/393883346. Also deletes some dead code.

Fixes: 393883346
Test: quick manual check and presubmits
Flag: EXEMPT no functional changes
Change-Id: I2241294c5da492caa6db1db95c30291d424919f8
parent 5c84e052
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -64,11 +64,9 @@ import com.android.keyguard.KeyguardMessageArea;
import com.android.keyguard.KeyguardMessageAreaController;
import com.android.keyguard.KeyguardSecurityModel;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.Flags;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.biometrics.domain.interactor.UdfpsOverlayInteractor;
import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor;
import com.android.systemui.bouncer.domain.interactor.BouncerInteractor;
import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerCallbackInteractor;
@@ -144,7 +142,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
    @Mock private SysuiStatusBarStateController mStatusBarStateController;
    @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    @Mock private View mNotificationContainer;
    @Mock private KeyguardBypassController mBypassController;
    @Mock private KeyguardMessageAreaController.Factory mKeyguardMessageAreaFactory;
    @Mock private KeyguardMessageAreaController mKeyguardMessageAreaController;
    @Mock private KeyguardMessageArea mKeyguardMessageArea;
@@ -156,7 +153,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
    @Mock private PrimaryBouncerCallbackInteractor mPrimaryBouncerCallbackInteractor;
    @Mock private PrimaryBouncerInteractor mPrimaryBouncerInteractor;
    @Mock private AlternateBouncerInteractor mAlternateBouncerInteractor;
    @Mock private UdfpsOverlayInteractor mUdfpsOverlayInteractor;
    @Mock private ActivityStarter mActivityStarter;
    @Mock private BouncerView mBouncerView;
    @Mock private BouncerViewDelegate mBouncerViewDelegate;
@@ -165,7 +161,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
    @Mock private NotificationShadeWindowView mNotificationShadeWindowView;
    @Mock private WindowInsetsController mWindowInsetsController;
    @Mock private TaskbarDelegate mTaskbarDelegate;
    @Mock private StatusBarKeyguardViewManager.KeyguardViewManagerCallback mCallback;
    @Mock private SelectedUserInteractor mSelectedUserInteractor;
    @Mock private DeviceEntryInteractor mDeviceEntryInteractor;
    @Mock private SceneInteractor mSceneInteractor;
@@ -187,8 +182,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
    private KeyguardTransitionInteractor mKeyguardTransitionInteractor;
    @Captor
    private ArgumentCaptor<OnBackInvokedCallback> mBackCallbackCaptor;
    @Captor
    private ArgumentCaptor<KeyguardUpdateMonitorCallback> mKeyguardUpdateMonitorCallback;
    @Mock
    private KeyguardDismissActionInteractor mKeyguardDismissActionInteractor;

@@ -223,7 +216,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
                        mock(DockManager.class),
                        mNotificationShadeWindowController,
                        mKeyguardStateController,
                        mKeyguardMessageAreaFactory,
                        Optional.of(mSysUiUnfoldComponent),
                        () -> mShadeController,
                        mLatencyTracker,
@@ -232,7 +224,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
                        mPrimaryBouncerInteractor,
                        mBouncerView,
                        mAlternateBouncerInteractor,
                        mUdfpsOverlayInteractor,
                        mActivityStarter,
                        mKeyguardTransitionInteractor,
                        mock(KeyguardDismissTransitionInteractor.class),
@@ -727,7 +718,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
                        mock(DockManager.class),
                        mock(NotificationShadeWindowController.class),
                        mKeyguardStateController,
                        mKeyguardMessageAreaFactory,
                        Optional.of(mSysUiUnfoldComponent),
                        () -> mShadeController,
                        mLatencyTracker,
@@ -736,7 +726,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
                        mPrimaryBouncerInteractor,
                        mBouncerView,
                        mAlternateBouncerInteractor,
                        mUdfpsOverlayInteractor,
                        mActivityStarter,
                        mock(KeyguardTransitionInteractor.class),
                        mock(KeyguardDismissTransitionInteractor.class),
+5 −0
Original line number Diff line number Diff line
@@ -172,6 +172,11 @@ public interface KeyguardViewController {
     */
    boolean isBouncerShowing();

    /**
     * Report when the UI is ready for dismissing the whole Keyguard.
     */
    void readyForKeyguardDone();

    /**
     * Stop showing the alternate bouncer, if showing.
     *
+5 −4
Original line number Diff line number Diff line
@@ -16,19 +16,19 @@

package com.android.systemui.shade

import com.android.keyguard.KeyguardViewController
import com.android.systemui.assist.AssistManager
import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.NotificationPresenter
import com.android.systemui.statusbar.NotificationShadeWindowController
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager
import dagger.Lazy

/** A base class for non-empty implementations of ShadeController. */
abstract class BaseShadeControllerImpl(
    protected val commandQueue: CommandQueue,
    protected val statusBarKeyguardViewManager: StatusBarKeyguardViewManager,
    protected val keyguardViewController: KeyguardViewController,
    protected val notificationShadeWindowController: NotificationShadeWindowController,
    protected val assistManagerLazy: Lazy<AssistManager>
    protected val assistManagerLazy: Lazy<AssistManager>,
) : ShadeController {
    protected lateinit var notifPresenter: NotificationPresenter
    /** Runnables to run after completing a collapse of the shade. */
@@ -66,7 +66,7 @@ abstract class BaseShadeControllerImpl(
        for (r in clonedList) {
            r.run()
        }
        statusBarKeyguardViewManager.readyForKeyguardDone()
        keyguardViewController.readyForKeyguardDone()
    }

    final override fun onLaunchAnimationEnd(launchIsFullScreen: Boolean) {
@@ -77,6 +77,7 @@ abstract class BaseShadeControllerImpl(
            instantCollapseShade()
        }
    }

    final override fun onLaunchAnimationCancelled(isLaunchForActivity: Boolean) {
        if (
            notifPresenter.isPresenterFullyCollapsed() &&
+4 −6
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.view.MotionEvent;
import android.view.ViewTreeObserver;
import android.view.WindowManagerGlobal;

import com.android.keyguard.KeyguardViewController;
import com.android.systemui.DejankUtils;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.dagger.SysUISingleton;
@@ -35,7 +36,6 @@ import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.window.StatusBarWindowControllerStore;
@@ -61,7 +61,6 @@ public final class ShadeControllerImpl extends BaseShadeControllerImpl {
    private final KeyguardStateController mKeyguardStateController;
    private final NotificationShadeWindowController mNotificationShadeWindowController;
    private final StatusBarStateController mStatusBarStateController;
    private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    private final StatusBarWindowControllerStore mStatusBarWindowControllerStore;
    private final DeviceProvisionedController mDeviceProvisionedController;

@@ -82,7 +81,7 @@ public final class ShadeControllerImpl extends BaseShadeControllerImpl {
            WindowRootViewVisibilityInteractor windowRootViewVisibilityInteractor,
            KeyguardStateController keyguardStateController,
            StatusBarStateController statusBarStateController,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
            KeyguardViewController keyguardViewController,
            StatusBarWindowControllerStore statusBarWindowControllerStore,
            DeviceProvisionedController deviceProvisionedController,
            NotificationShadeWindowController notificationShadeWindowController,
@@ -93,7 +92,7 @@ public final class ShadeControllerImpl extends BaseShadeControllerImpl {
            Lazy<NotificationGutsManager> gutsManager
    ) {
        super(commandQueue,
                statusBarKeyguardViewManager,
                keyguardViewController,
                notificationShadeWindowController,
                assistManagerLazy);
        SceneContainerFlag.assertInLegacyMode();
@@ -107,7 +106,6 @@ public final class ShadeControllerImpl extends BaseShadeControllerImpl {
        mGutsManager = gutsManager;
        mNotificationShadeWindowController = notificationShadeWindowController;
        mNotifShadeWindowViewController = notificationShadeWindowViewController;
        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
        mDisplayId = displayId;
        mKeyguardStateController = keyguardStateController;
        mAssistManagerLazy = assistManagerLazy;
@@ -396,7 +394,7 @@ public final class ShadeControllerImpl extends BaseShadeControllerImpl {

    @Override
    public void collapseShadeForActivityStart() {
        if (isExpandedVisible() && !mStatusBarKeyguardViewManager.isBouncerShowing()) {
        if (isExpandedVisible() && !getKeyguardViewController().isBouncerShowing()) {
            animateCollapseShadeForcedDelayed();
        } else {
            // Do it after DismissAction has been processed to conserve the
+1 −8
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ import androidx.annotation.VisibleForTesting;

import com.android.internal.util.LatencyTracker;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardMessageAreaController;
import com.android.keyguard.KeyguardSecurityModel;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
@@ -56,7 +55,6 @@ import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.DejankUtils;
import com.android.systemui.Flags;
import com.android.systemui.animation.back.FlingOnBackAnimationCallback;
import com.android.systemui.biometrics.domain.interactor.UdfpsOverlayInteractor;
import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor;
import com.android.systemui.bouncer.domain.interactor.BouncerInteractor;
import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerCallbackInteractor;
@@ -157,7 +155,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
    private final ConfigurationController mConfigurationController;
    private final NavigationModeController mNavigationModeController;
    private final NotificationShadeWindowController mNotificationShadeWindowController;
    private final KeyguardMessageAreaController.Factory mKeyguardMessageAreaFactory;
    private final DreamOverlayStateController mDreamOverlayStateController;
    @Nullable
    private final FoldAodAnimationController mFoldAodAnimationController;
@@ -326,7 +323,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
    private float mQsExpansion;

    final Set<KeyguardViewManagerCallback> mCallbacks = new HashSet<>();
    private final UdfpsOverlayInteractor mUdfpsOverlayInteractor;
    private final ActivityStarter mActivityStarter;

    private OnDismissAction mAfterKeyguardGoneAction;
@@ -384,7 +380,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
            DockManager dockManager,
            NotificationShadeWindowController notificationShadeWindowController,
            KeyguardStateController keyguardStateController,
            KeyguardMessageAreaController.Factory keyguardMessageAreaFactory,
            Optional<SysUIUnfoldComponent> sysUIUnfoldComponent,
            Lazy<ShadeController> shadeController,
            LatencyTracker latencyTracker,
@@ -393,7 +388,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
            PrimaryBouncerInteractor primaryBouncerInteractor,
            BouncerView primaryBouncerView,
            AlternateBouncerInteractor alternateBouncerInteractor,
            UdfpsOverlayInteractor udfpsOverlayInteractor,
            ActivityStarter activityStarter,
            KeyguardTransitionInteractor keyguardTransitionInteractor,
            KeyguardDismissTransitionInteractor keyguardDismissTransitionInteractor,
@@ -420,7 +414,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
        mKeyguardUpdateManager = keyguardUpdateMonitor;
        mStatusBarStateController = sysuiStatusBarStateController;
        mDockManager = dockManager;
        mKeyguardMessageAreaFactory = keyguardMessageAreaFactory;
        mShadeController = shadeController;
        mLatencyTracker = latencyTracker;
        mKeyguardSecurityModel = keyguardSecurityModel;
@@ -431,7 +424,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
                .map(SysUIUnfoldComponent::getFoldAodAnimationController).orElse(null);
        mAlternateBouncerInteractor = alternateBouncerInteractor;
        mBouncerInteractor = bouncerInteractor;
        mUdfpsOverlayInteractor = udfpsOverlayInteractor;
        mActivityStarter = activityStarter;
        mKeyguardTransitionInteractor = keyguardTransitionInteractor;
        mKeyguardDismissTransitionInteractor = keyguardDismissTransitionInteractor;
@@ -1575,6 +1567,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
                && mPrimaryBouncerView.getDelegate().dispatchBackKeyEventPreIme();
    }

    @Override
    public void readyForKeyguardDone() {
        mViewMediatorCallback.readyForKeyguardDone();
    }