Merge "sysui: show empty view in split mode" into sc-v2-dev
This commit is contained in:
@@ -5256,6 +5256,10 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
|
||||
mSwipeHelper.resetExposedMenuView(animate, force);
|
||||
}
|
||||
|
||||
boolean isUsingSplitNotificationShade() {
|
||||
return mShouldUseSplitNotificationShade;
|
||||
}
|
||||
|
||||
static boolean matchesSelection(
|
||||
ExpandableNotificationRow row,
|
||||
@SelectedRows int selection) {
|
||||
|
||||
@@ -1099,11 +1099,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