sysui: show empty view in split mode
When showing the notification shade in split mode, the empty view was not showing. This should fix it. If it is in split mode, it doesn't matter if Quick Settings is expanded or not, it should always show the empty view (depending on the other requisites). Also changing the name of the test file and class so it is correctly indexable in IntelliJ. Bug: 188894961 Test: added test NotificationStackScrollLayoutControllerTest#testUpdateEmptyShadeView_splitShadeMode_alwaysShowEmptyView Change-Id: I0d1228bff778cd9699afeda1431b69f77e3d3028
This commit is contained in:
@@ -5232,6 +5232,10 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
|
||||
mSwipeHelper.resetExposedMenuView(animate, force);
|
||||
}
|
||||
|
||||
boolean isUsingSplitNotificationShade() {
|
||||
return mShouldUseSplitNotificationShade;
|
||||
}
|
||||
|
||||
static boolean matchesSelection(
|
||||
ExpandableNotificationRow row,
|
||||
@SelectedRows int selection) {
|
||||
|
||||
@@ -1103,11 +1103,16 @@ public class NotificationStackScrollLayoutController {
|
||||
/**
|
||||
* Update whether we should show the empty shade view (no notifications in the shade).
|
||||
* If so, send the update to our view.
|
||||
*
|
||||
* When in split mode, notifications are always visible regardless of the state of the
|
||||
* QuickSettings panel. That being the case, empty view is always shown if the other conditions
|
||||
* are true.
|
||||
*/
|
||||
public void updateShowEmptyShadeView() {
|
||||
mShowEmptyShadeView = mBarState != KEYGUARD
|
||||
&& !mView.isQsExpanded()
|
||||
&& (!mView.isQsExpanded() || mView.isUsingSplitNotificationShade())
|
||||
&& mView.getVisibleNotificationCount() == 0;
|
||||
|
||||
mView.updateEmptyShadeView(
|
||||
mShowEmptyShadeView,
|
||||
mZenModeController.areNotificationsHiddenInShade());
|
||||
|
||||
@@ -92,7 +92,7 @@ import org.mockito.MockitoAnnotations;
|
||||
*/
|
||||
@SmallTest
|
||||
@RunWith(AndroidTestingRunner.class)
|
||||
public class NotificationStackScrollerControllerTest extends SysuiTestCase {
|
||||
public class NotificationStackScrollLayoutControllerTest extends SysuiTestCase {
|
||||
|
||||
@Mock private NotificationGutsManager mNotificationGutsManager;
|
||||
@Mock private HeadsUpManagerPhone mHeadsUpManager;
|
||||
@@ -232,16 +232,15 @@ public class NotificationStackScrollerControllerTest extends SysuiTestCase {
|
||||
reset(mNotificationStackScrollLayout);
|
||||
mController.updateShowEmptyShadeView();
|
||||
verify(mNotificationStackScrollLayout).updateEmptyShadeView(
|
||||
true /* visible */,
|
||||
|
||||
true /* notifVisibleInShade */);
|
||||
/* visible= */ true,
|
||||
/* notifVisibleInShade= */ true);
|
||||
|
||||
setupShowEmptyShadeViewState(stateListener, false);
|
||||
reset(mNotificationStackScrollLayout);
|
||||
mController.updateShowEmptyShadeView();
|
||||
verify(mNotificationStackScrollLayout).updateEmptyShadeView(
|
||||
false /* visible */,
|
||||
true /* notifVisibleInShade */);
|
||||
/* visible= */ false,
|
||||
/* notifVisibleInShade= */ true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -257,15 +256,42 @@ public class NotificationStackScrollerControllerTest extends SysuiTestCase {
|
||||
reset(mNotificationStackScrollLayout);
|
||||
mController.updateShowEmptyShadeView();
|
||||
verify(mNotificationStackScrollLayout).updateEmptyShadeView(
|
||||
true /* visible */,
|
||||
false /* notifVisibleInShade */);
|
||||
/* visible= */ true,
|
||||
/* notifVisibleInShade= */ false);
|
||||
|
||||
setupShowEmptyShadeViewState(stateListener, false);
|
||||
reset(mNotificationStackScrollLayout);
|
||||
mController.updateShowEmptyShadeView();
|
||||
verify(mNotificationStackScrollLayout).updateEmptyShadeView(
|
||||
false /* visible */,
|
||||
false /* notifVisibleInShade */);
|
||||
/* visible= */ false,
|
||||
/* notifVisibleInShade= */ false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateEmptyShadeView_splitShadeMode_alwaysShowEmptyView() {
|
||||
when(mZenModeController.areNotificationsHiddenInShade()).thenReturn(false);
|
||||
mController.attach(mNotificationStackScrollLayout);
|
||||
verify(mSysuiStatusBarStateController).addCallback(
|
||||
mStateListenerArgumentCaptor.capture(), anyInt());
|
||||
StatusBarStateController.StateListener stateListener =
|
||||
mStateListenerArgumentCaptor.getValue();
|
||||
when(mNotificationStackScrollLayout.isUsingSplitNotificationShade()).thenReturn(true);
|
||||
stateListener.onStateChanged(SHADE);
|
||||
mController.getView().removeAllViews();
|
||||
|
||||
mController.setQsExpanded(false);
|
||||
reset(mNotificationStackScrollLayout);
|
||||
mController.updateShowEmptyShadeView();
|
||||
verify(mNotificationStackScrollLayout).updateEmptyShadeView(
|
||||
/* visible= */ true,
|
||||
/* notifVisibleInShade= */ false);
|
||||
|
||||
mController.setQsExpanded(true);
|
||||
reset(mNotificationStackScrollLayout);
|
||||
mController.updateShowEmptyShadeView();
|
||||
verify(mNotificationStackScrollLayout).updateEmptyShadeView(
|
||||
/* visible= */ true,
|
||||
/* notifVisibleInShade= */ false);
|
||||
}
|
||||
|
||||
@Test
|
||||
Reference in New Issue
Block a user