Propagate status bar state to NSSL on reattach
Fixes: 250032065 Test: atest NotificationStackScrollLayoutControllerTest Change-Id: Ib6f7d25ee79e621b6f2d07804fb05f63aaf88ef6
This commit is contained in:
@@ -209,7 +209,11 @@ public class NotificationStackScrollLayoutController {
|
||||
public void onViewAttachedToWindow(View v) {
|
||||
mConfigurationController.addCallback(mConfigurationListener);
|
||||
mZenModeController.addCallback(mZenModeControllerCallback);
|
||||
mBarState = mStatusBarStateController.getState();
|
||||
final int newBarState = mStatusBarStateController.getState();
|
||||
if (newBarState != mBarState) {
|
||||
mStateListener.onStateChanged(newBarState);
|
||||
mStateListener.onStatePostChange();
|
||||
}
|
||||
mStatusBarStateController.addCallback(
|
||||
mStateListener, SysuiStatusBarStateController.RANK_STACK_SCROLLER);
|
||||
}
|
||||
|
||||
@@ -413,6 +413,37 @@ public class NotificationStackScrollLayoutControllerTest extends SysuiTestCase {
|
||||
verify(mNotificationStackScrollLayout).updateEmptyShadeView(anyBoolean(), anyBoolean());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAttach_updatesViewStatusBarState() {
|
||||
// GIVEN: Controller is attached
|
||||
mController.attach(mNotificationStackScrollLayout);
|
||||
ArgumentCaptor<StatusBarStateController.StateListener> captor =
|
||||
ArgumentCaptor.forClass(StatusBarStateController.StateListener.class);
|
||||
verify(mSysuiStatusBarStateController).addCallback(captor.capture(), anyInt());
|
||||
StatusBarStateController.StateListener stateListener = captor.getValue();
|
||||
|
||||
// WHEN: StatusBarState changes to SHADE
|
||||
when(mSysuiStatusBarStateController.getState()).thenReturn(SHADE);
|
||||
stateListener.onStateChanged(SHADE);
|
||||
|
||||
// THEN: NSSL is updated with the current state
|
||||
verify(mNotificationStackScrollLayout).setStatusBarState(SHADE);
|
||||
|
||||
// WHEN: Controller is detached
|
||||
mController.mOnAttachStateChangeListener
|
||||
.onViewDetachedFromWindow(mNotificationStackScrollLayout);
|
||||
|
||||
// WHEN: StatusBarState changes to KEYGUARD
|
||||
when(mSysuiStatusBarStateController.getState()).thenReturn(KEYGUARD);
|
||||
|
||||
// WHEN: Controller is re-attached
|
||||
mController.mOnAttachStateChangeListener
|
||||
.onViewAttachedToWindow(mNotificationStackScrollLayout);
|
||||
|
||||
// THEN: NSSL is updated with the current state
|
||||
verify(mNotificationStackScrollLayout).setStatusBarState(KEYGUARD);
|
||||
}
|
||||
|
||||
private LogMaker logMatcher(int category, int type) {
|
||||
return argThat(new LogMatcher(category, type));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user