[Status Bar Refactor] Have NotificationShadeWindowViewController query
the window state directly instead of going through StatusBar.java.

Bug: 212424936
Test: NotificationShadeWindowViewControllerTest
Change-Id: I91fc2063185882c837fa4ba9e102b974003a710a
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java
index 879e694..4e2eb6a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewController.java
@@ -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.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 @@
     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 @@
             PanelExpansionStateManager panelExpansionStateManager,
             NotificationStackScrollLayoutController notificationStackScrollLayoutController,
             StatusBarKeyguardViewManager statusBarKeyguardViewManager,
+            StatusBarWindowStateController statusBarWindowStateController,
             LockIconViewController lockIconViewController) {
         mLockscreenShadeTransitionController = transitionController;
         mFalsingCollector = falsingCollector;
@@ -112,6 +113,7 @@
         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 @@
                     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.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 4ecbb7c..6499e23 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -2111,10 +2111,6 @@
         }
     }
 
-    boolean isSameStatusBarState(int state) {
-        return mStatusBarWindowState == state;
-    }
-
     public GestureRecorder getGestureRecorder() {
         return mGestureRec;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowStateController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowStateController.kt
index facbe8a..3a14914 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowStateController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowStateController.kt
@@ -61,6 +61,9 @@
         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,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewControllerTest.kt
index adb76e1..12e71af 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewControllerTest.kt
@@ -31,6 +31,7 @@
 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.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 @@
     @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 @@
             PanelExpansionStateManager(),
             stackScrollLayoutController,
             mStatusBarKeyguardViewManager,
+            mStatusBarWindowStateController,
             mLockIconViewController
         )
         mController.setupExpandedStatusBar()
@@ -155,7 +158,7 @@
     @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 @@
     @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 @@
     @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 @@
         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 @@
     @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)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewTest.java
index aaf051c..d885da8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationShadeWindowViewTest.java
@@ -45,6 +45,7 @@
 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 @@
     @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 @@
                 new PanelExpansionStateManager(),
                 mNotificationStackScrollLayoutController,
                 mStatusBarKeyguardViewManager,
+                mStatusBarWindowStateController,
                 mLockIconViewController);
         mController.setupExpandedStatusBar();
         mController.setService(mStatusBar, mNotificationShadeWindowController);