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 879e6943dce08..4e2eb6a19d537 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.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. 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 4ecbb7c4d1ea1..6499e23ddd1e0 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 @@ public class StatusBar extends CoreStartable implements } } - 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 facbe8abfd138..3a1491400f387 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 @@ 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, 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 adb76e16507db..12e71af6997ed 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.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) 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 aaf051ca81c08..d885da8b738c3 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.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);