[Status Bar Refactor] Have NotificationShadeWindowViewController query
the window state directly instead of going through StatusBar.java. Bug: 212424936 Test: NotificationShadeWindowViewControllerTest Change-Id: I91fc2063185882c837fa4ba9e102b974003a710a
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -2111,10 +2111,6 @@ public class StatusBar extends CoreStartable implements
|
||||
}
|
||||
}
|
||||
|
||||
boolean isSameStatusBarState(int state) {
|
||||
return mStatusBarWindowState == state;
|
||||
}
|
||||
|
||||
public GestureRecorder getGestureRecorder() {
|
||||
return mGestureRec;
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user