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

Commit 9bed7dc0 authored by Caitlin Cassidy's avatar Caitlin Cassidy
Browse files

[Status Bar Refactor] Have NotificationShadeWindowViewController query

the window state directly instead of going through StatusBar.java.

Bug: 212424936
Test: NotificationShadeWindowViewControllerTest
Change-Id: I91fc2063185882c837fa4ba9e102b974003a710a
parent 06a2da0b
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.systemui.statusbar.phone;

import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;

import android.app.StatusBarManager;
import android.hardware.display.AmbientDisplayConfiguration;
import android.media.AudioManager;
@@ -46,6 +44,7 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.window.StatusBarWindowStateController;
import com.android.systemui.tuner.TunerService;

import java.io.FileDescriptor;
@@ -67,6 +66,7 @@ public class NotificationShadeWindowViewController {
    private final LockscreenShadeTransitionController mLockscreenShadeTransitionController;
    private final LockIconViewController mLockIconViewController;
    private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    private final StatusBarWindowStateController mStatusBarWindowStateController;

    private GestureDetector mGestureDetector;
    private View mBrightnessMirror;
@@ -100,6 +100,7 @@ public class NotificationShadeWindowViewController {
            PanelExpansionStateManager panelExpansionStateManager,
            NotificationStackScrollLayoutController notificationStackScrollLayoutController,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
            StatusBarWindowStateController statusBarWindowStateController,
            LockIconViewController lockIconViewController) {
        mLockscreenShadeTransitionController = transitionController;
        mFalsingCollector = falsingCollector;
@@ -112,6 +113,7 @@ public class NotificationShadeWindowViewController {
        mDepthController = depthController;
        mNotificationStackScrollLayoutController = notificationStackScrollLayoutController;
        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
        mStatusBarWindowStateController = statusBarWindowStateController;
        mLockIconViewController = lockIconViewController;

        // This view is not part of the newly inflated expanded status bar.
@@ -248,7 +250,7 @@ public class NotificationShadeWindowViewController {
                    float x = ev.getRawX();
                    float y = ev.getRawY();
                    if (mStatusBarViewController.touchIsWithinView(x, y)) {
                        if (mService.isSameStatusBarState(WINDOW_STATE_SHOWING)) {
                        if (mStatusBarWindowStateController.windowIsShowing()) {
                            mIsTrackingBarGesture = true;
                            return mStatusBarViewController.sendTouchToView(ev);
                        } else { // it's hidden or hiding, don't send to notification shade.
+0 −4
Original line number Diff line number Diff line
@@ -2111,10 +2111,6 @@ public class StatusBar extends CoreStartable implements
        }
    }

    boolean isSameStatusBarState(int state) {
        return mStatusBarWindowState == state;
    }

    public GestureRecorder getGestureRecorder() {
        return mGestureRec;
    }
+3 −0
Original line number Diff line number Diff line
@@ -61,6 +61,9 @@ class StatusBarWindowStateController @Inject constructor(
        listeners.add(listener)
    }

    /** Returns true if the window is currently showing. */
    fun windowIsShowing() = windowState == WINDOW_STATE_SHOWING

    private fun setWindowState(
        displayId: Int,
        @StatusBarManager.WindowType window: Int,
+9 −6
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController
import com.android.systemui.statusbar.phone.NotificationShadeWindowView.InteractionEventHandler
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager
import com.android.systemui.statusbar.window.StatusBarWindowStateController
import com.android.systemui.tuner.TunerService
import com.google.common.truth.Truth.assertThat
import org.junit.Before
@@ -40,7 +41,6 @@ import org.mockito.ArgumentCaptor
import org.mockito.Mock
import org.mockito.MockitoAnnotations
import org.mockito.Mockito.anyFloat
import org.mockito.Mockito.anyInt
import org.mockito.Mockito.never
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when` as whenever
@@ -72,6 +72,8 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
    @Mock
    private lateinit var mStatusBarKeyguardViewManager: StatusBarKeyguardViewManager
    @Mock
    private lateinit var mStatusBarWindowStateController: StatusBarWindowStateController
    @Mock
    private lateinit var mLockscreenShadeTransitionController: LockscreenShadeTransitionController
    @Mock
    private lateinit var mLockIconViewController: LockIconViewController
@@ -98,6 +100,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
            PanelExpansionStateManager(),
            stackScrollLayoutController,
            mStatusBarKeyguardViewManager,
            mStatusBarWindowStateController,
            mLockIconViewController
        )
        mController.setupExpandedStatusBar()
@@ -155,7 +158,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
    @Test
    fun handleDispatchTouchEvent_downAndPanelCollapsedAndInSbBoundAndSbWindowShow_sendsTouchToSb() {
        mController.setStatusBarViewController(mPhoneStatusBarViewController)
        whenever(mStatusBar.isSameStatusBarState(anyInt())).thenReturn(true)
        whenever(mStatusBarWindowStateController.windowIsShowing()).thenReturn(true)
        whenever(mNotificationPanelViewController.isFullyCollapsed).thenReturn(true)
        whenever(mPhoneStatusBarViewController.touchIsWithinView(anyFloat(), anyFloat()))
            .thenReturn(true)
@@ -170,7 +173,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
    @Test
    fun handleDispatchTouchEvent_panelNotCollapsed_returnsNull() {
        mController.setStatusBarViewController(mPhoneStatusBarViewController)
        whenever(mStatusBar.isSameStatusBarState(anyInt())).thenReturn(true)
        whenever(mStatusBarWindowStateController.windowIsShowing()).thenReturn(true)
        whenever(mPhoneStatusBarViewController.touchIsWithinView(anyFloat(), anyFloat()))
            .thenReturn(true)
        // Item we're testing
@@ -185,7 +188,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
    @Test
    fun handleDispatchTouchEvent_touchNotInSbBounds_returnsNull() {
        mController.setStatusBarViewController(mPhoneStatusBarViewController)
        whenever(mStatusBar.isSameStatusBarState(anyInt())).thenReturn(true)
        whenever(mStatusBarWindowStateController.windowIsShowing()).thenReturn(true)
        whenever(mNotificationPanelViewController.isFullyCollapsed).thenReturn(true)
        // Item we're testing
        whenever(mPhoneStatusBarViewController.touchIsWithinView(anyFloat(), anyFloat()))
@@ -204,7 +207,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
        whenever(mPhoneStatusBarViewController.touchIsWithinView(anyFloat(), anyFloat()))
            .thenReturn(true)
        // Item we're testing
        whenever(mStatusBar.isSameStatusBarState(anyInt())).thenReturn(false)
        whenever(mStatusBarWindowStateController.windowIsShowing()).thenReturn(false)

        val returnVal = mInteractionEventHandler.handleDispatchTouchEvent(downEv)

@@ -215,7 +218,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
    @Test
    fun handleDispatchTouchEvent_downEventSentToSbThenAnotherEvent_sendsTouchToSb() {
        mController.setStatusBarViewController(mPhoneStatusBarViewController)
        whenever(mStatusBar.isSameStatusBarState(anyInt())).thenReturn(true)
        whenever(mStatusBarWindowStateController.windowIsShowing()).thenReturn(true)
        whenever(mNotificationPanelViewController.isFullyCollapsed).thenReturn(true)
        whenever(mPhoneStatusBarViewController.touchIsWithinView(anyFloat(), anyFloat()))
            .thenReturn(true)
+3 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.window.StatusBarWindowStateController;
import com.android.systemui.tuner.TunerService;

import org.junit.Before;
@@ -75,6 +76,7 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase {
    @Mock private NotificationShadeWindowController mNotificationShadeWindowController;
    @Mock private NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
    @Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    @Mock private StatusBarWindowStateController mStatusBarWindowStateController;
    @Mock private LockscreenShadeTransitionController mLockscreenShadeTransitionController;
    @Mock private LockIconViewController mLockIconViewController;

@@ -107,6 +109,7 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase {
                new PanelExpansionStateManager(),
                mNotificationStackScrollLayoutController,
                mStatusBarKeyguardViewManager,
                mStatusBarWindowStateController,
                mLockIconViewController);
        mController.setupExpandedStatusBar();
        mController.setService(mStatusBar, mNotificationShadeWindowController);