Merge "Fixing empty split shade after rotation from expanded QS on lockscreen" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
58bc0c4cc7
@@ -22,18 +22,21 @@ package com.android.systemui.statusbar;
|
|||||||
public class StatusBarState {
|
public class StatusBarState {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The status bar is in the "normal" shade mode.
|
* The status bar is in the "normal", unlocked mode or the device is still locked but we're
|
||||||
|
* accessing camera from power button double-tap shortcut.
|
||||||
*/
|
*/
|
||||||
public static final int SHADE = 0;
|
public static final int SHADE = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Status bar is currently the Keyguard.
|
* Status bar is currently the Keyguard. In single column mode, when you swipe from the top of
|
||||||
|
* the keyguard to expand QS immediately, it's still KEYGUARD state.
|
||||||
*/
|
*/
|
||||||
public static final int KEYGUARD = 1;
|
public static final int KEYGUARD = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Status bar is in the special mode, where it is fully interactive but still locked. So
|
* Status bar is in the special mode, where it was transitioned from lockscreen to shade.
|
||||||
* dismissing the shade will still show the bouncer.
|
* Depending on user's security settings, dismissing the shade will either show the
|
||||||
|
* bouncer or go directly to unlocked {@link #SHADE} mode.
|
||||||
*/
|
*/
|
||||||
public static final int SHADE_LOCKED = 2;
|
public static final int SHADE_LOCKED = 2;
|
||||||
|
|
||||||
|
|||||||
@@ -1163,17 +1163,30 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
mKeyguardMediaController.refreshMediaPosition();
|
mKeyguardMediaController.refreshMediaPosition();
|
||||||
|
|
||||||
if (splitShadeChanged) {
|
if (splitShadeChanged) {
|
||||||
// when we switch from split shade to regular shade we want to enforce setting qs to
|
onSplitShadeEnabledChanged();
|
||||||
// the default state: expanded for split shade and collapsed otherwise
|
|
||||||
if (!isOnKeyguard() && mPanelExpanded) {
|
|
||||||
setQsExpanded(mSplitShadeEnabled);
|
|
||||||
}
|
|
||||||
updateClockAppearance();
|
|
||||||
updateQsState();
|
|
||||||
mNotificationStackScrollLayoutController.updateFooter();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onSplitShadeEnabledChanged() {
|
||||||
|
// when we switch between split shade and regular shade we want to enforce setting qs to
|
||||||
|
// the default state: expanded for split shade and collapsed otherwise
|
||||||
|
if (!isOnKeyguard() && mPanelExpanded) {
|
||||||
|
setQsExpanded(mSplitShadeEnabled);
|
||||||
|
}
|
||||||
|
if (isOnKeyguard() && mQsExpanded && mSplitShadeEnabled) {
|
||||||
|
// In single column keyguard - when you swipe from the top - QS is fully expanded and
|
||||||
|
// StatusBarState is KEYGUARD. That state doesn't make sense for split shade,
|
||||||
|
// where notifications are always visible and we effectively go to fully expanded
|
||||||
|
// shade, that is SHADE_LOCKED.
|
||||||
|
// Also we might just be switching from regular expanded shade, so we don't want
|
||||||
|
// to force state transition if it's already correct.
|
||||||
|
mStatusBarStateController.setState(StatusBarState.SHADE_LOCKED, /* force= */false);
|
||||||
|
}
|
||||||
|
updateClockAppearance();
|
||||||
|
updateQsState();
|
||||||
|
mNotificationStackScrollLayoutController.updateFooter();
|
||||||
|
}
|
||||||
|
|
||||||
private View reInflateStub(int viewId, int stubId, int layoutId, boolean enabled) {
|
private View reInflateStub(int viewId, int stubId, int layoutId, boolean enabled) {
|
||||||
View view = mView.findViewById(viewId);
|
View view = mView.findViewById(viewId);
|
||||||
if (view != null) {
|
if (view != null) {
|
||||||
|
|||||||
@@ -1005,6 +1005,16 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
|
|||||||
verify(mTapAgainViewController).show();
|
verify(mTapAgainViewController).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRotatingToSplitShadeWithQsExpanded_transitionsToShadeLocked() {
|
||||||
|
mStatusBarStateController.setState(KEYGUARD);
|
||||||
|
mNotificationPanelViewController.setQsExpanded(true);
|
||||||
|
|
||||||
|
enableSplitShade(true);
|
||||||
|
|
||||||
|
assertThat(mStatusBarStateController.getState()).isEqualTo(SHADE_LOCKED);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSwitchesToCorrectClockInSinglePaneShade() {
|
public void testSwitchesToCorrectClockInSinglePaneShade() {
|
||||||
mStatusBarStateController.setState(KEYGUARD);
|
mStatusBarStateController.setState(KEYGUARD);
|
||||||
|
|||||||
Reference in New Issue
Block a user