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

Commit b60649f9 authored by Beverly Tai's avatar Beverly Tai Committed by Automerger Merge Worker
Browse files

Merge "Hide task bar on AOD" into tm-qpr-dev am: 3d3761b3 am: 230e9419

parents 2c5c9a6d 230e9419
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.BarTransitions;
import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.LightBarTransitionsController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.wm.shell.back.BackAnimation;
import com.android.wm.shell.pip.Pip;

@@ -166,16 +167,20 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,

    private BackAnimation mBackAnimation;

    private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    @Inject
    public TaskbarDelegate(Context context,
            EdgeBackGestureHandler.Factory edgeBackGestureHandlerFactory,
            LightBarTransitionsController.Factory lightBarTransitionsControllerFactory) {
            LightBarTransitionsController.Factory lightBarTransitionsControllerFactory,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager) {
        mLightBarTransitionsControllerFactory = lightBarTransitionsControllerFactory;
        mEdgeBackGestureHandler = edgeBackGestureHandlerFactory.create(context);

        mContext = context;
        mDisplayManager = mContext.getSystemService(DisplayManager.class);
        mPipListener = mEdgeBackGestureHandler::setPipStashExclusionBounds;
        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
        mStatusBarKeyguardViewManager.setTaskbarDelegate(this);
    }

    public void setDependencies(CommandQueue commandQueue,
+8 −1
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerCallbackInt
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor;
import com.android.systemui.navigationbar.NavigationBarView;
import com.android.systemui.navigationbar.NavigationModeController;
import com.android.systemui.navigationbar.TaskbarDelegate;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.ShadeController;
@@ -300,6 +301,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
    @Nullable private KeyguardBypassController mBypassController;
    @Nullable private OccludingAppBiometricUI mOccludingAppBiometricUI;

    @Nullable private TaskbarDelegate mTaskbarDelegate;
    private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback =
            new KeyguardUpdateMonitorCallback() {
        @Override
@@ -564,6 +566,10 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
        updateStates();
    }

    public void setTaskbarDelegate(TaskbarDelegate taskbarDelegate) {
        mTaskbarDelegate = taskbarDelegate;
    }

    /**
     * Show the keyguard.  Will handle creating and attaching to the view manager
     * lazily.
@@ -1193,7 +1199,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
     * Updates the visibility of the nav bar window (which will cause insets changes).
     */
    protected void updateNavigationBarVisibility(boolean navBarVisible) {
        if (mCentralSurfaces.getNavigationBarView() != null) {
        if (mCentralSurfaces.getNavigationBarView() != null
                || (mTaskbarDelegate != null && mTaskbarDelegate.isInitialized())) {
            if (navBarVisible) {
                long delay = getNavBarShowDelay();
                if (delay == 0) {
+4 −1
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.phone.AutoHideController
import com.android.systemui.statusbar.phone.LightBarController
import com.android.systemui.statusbar.phone.LightBarTransitionsController
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager
import com.android.wm.shell.back.BackAnimation
import com.android.wm.shell.pip.Pip
import org.junit.Before
@@ -66,6 +67,8 @@ class TaskbarDelegateTest : SysuiTestCase() {
    lateinit var mBackAnimation: BackAnimation
    @Mock
    lateinit var mCurrentSysUiState: NavBarHelper.CurrentSysuiState
    @Mock
    lateinit var mStatusBarKeyguardViewManager: StatusBarKeyguardViewManager

    @Before
    fun setup() {
@@ -76,7 +79,7 @@ class TaskbarDelegateTest : SysuiTestCase() {
        `when`(mSysUiState.setFlag(anyInt(), anyBoolean())).thenReturn(mSysUiState)
        mTaskStackChangeListeners = TaskStackChangeListeners.getTestInstance()
        mTaskbarDelegate = TaskbarDelegate(context, mEdgeBackGestureHandlerFactory,
                mLightBarControllerFactory)
                mLightBarControllerFactory, mStatusBarKeyguardViewManager)
        mTaskbarDelegate.setDependencies(mCommandQueue, mOverviewProxyService, mNavBarHelper,
        mNavigationModeController, mSysUiState, mDumpManager, mAutoHideController,
                mLightBarController, mOptionalPip, mBackAnimation, mTaskStackChangeListeners)
+20 −0
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ import android.testing.TestableLooper;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewRootImpl;
import android.view.WindowInsets;
import android.view.WindowInsetsController;
import android.window.BackEvent;
import android.window.OnBackAnimationCallback;
import android.window.OnBackInvokedCallback;
@@ -65,8 +67,10 @@ import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerCallbackInt
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerCallbackInteractor.PrimaryBouncerExpansionCallback;
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor;
import com.android.systemui.navigationbar.NavigationModeController;
import com.android.systemui.navigationbar.TaskbarDelegate;
import com.android.systemui.plugins.ActivityStarter.OnDismissAction;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.shade.ShadeExpansionChangeEvent;
import com.android.systemui.shade.ShadeExpansionStateManager;
@@ -123,6 +127,9 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
    @Mock private BouncerView mBouncerView;
    @Mock private BouncerViewDelegate mBouncerViewDelegate;
    @Mock private OnBackAnimationCallback mBouncerViewDelegateBackCallback;
    @Mock private NotificationShadeWindowView mNotificationShadeWindowView;
    @Mock private WindowInsetsController mWindowInsetsController;
    @Mock private TaskbarDelegate mTaskbarDelegate;

    private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    private PrimaryBouncerCallbackInteractor.PrimaryBouncerExpansionCallback
@@ -151,6 +158,11 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
                .isEnabled(Flags.WM_ENABLE_PREDICTIVE_BACK_BOUNCER_ANIM))
                .thenReturn(true);

        when(mCentralSurfaces.getNotificationShadeWindowView())
                .thenReturn(mNotificationShadeWindowView);
        when(mNotificationShadeWindowView.getWindowInsetsController())
                .thenReturn(mWindowInsetsController);

        mStatusBarKeyguardViewManager =
                new StatusBarKeyguardViewManager(
                        getContext(),
@@ -639,6 +651,14 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
        verify(mCentralSurfaces).setBouncerShowingOverDream(false);
    }

    @Test
    public void testHideTaskbar() {
        when(mTaskbarDelegate.isInitialized()).thenReturn(true);
        mStatusBarKeyguardViewManager.setTaskbarDelegate(mTaskbarDelegate);
        mStatusBarKeyguardViewManager.updateNavigationBarVisibility(false);
        verify(mWindowInsetsController).hide(WindowInsets.Type.navigationBars());
    }

    @Test
    public void hideAlternateBouncer_beforeCentralSurfacesRegistered() {
        mStatusBarKeyguardViewManager =