Merge "Fixing QS blinking when going from unlocked to AOD in split shade" into tm-qpr-dev am: 9a0ed1afe1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19991125 Change-Id: Ie578a34cb5a741df659d2e3620d63429d046698a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -60,6 +60,7 @@ import com.android.systemui.qs.footer.ui.binder.FooterActionsViewBinder;
|
||||
import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
|
||||
@@ -82,7 +83,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
private static final String EXTRA_VISIBLE = "visible";
|
||||
|
||||
private final Rect mQsBounds = new Rect();
|
||||
private final StatusBarStateController mStatusBarStateController;
|
||||
private final SysuiStatusBarStateController mStatusBarStateController;
|
||||
private final FalsingManager mFalsingManager;
|
||||
private final KeyguardBypassController mBypassController;
|
||||
private boolean mQsExpanded;
|
||||
@@ -159,7 +160,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
* Progress of pull down from the center of the lock screen.
|
||||
* @see com.android.systemui.statusbar.LockscreenShadeTransitionController
|
||||
*/
|
||||
private float mFullShadeProgress;
|
||||
private float mLockscreenToShadeProgress;
|
||||
|
||||
private boolean mOverScrolling;
|
||||
|
||||
@@ -177,7 +178,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
@Inject
|
||||
public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler,
|
||||
QSTileHost qsTileHost,
|
||||
StatusBarStateController statusBarStateController, CommandQueue commandQueue,
|
||||
SysuiStatusBarStateController statusBarStateController, CommandQueue commandQueue,
|
||||
@Named(QS_PANEL) MediaHost qsMediaHost,
|
||||
@Named(QUICK_QS_PANEL) MediaHost qqsMediaHost,
|
||||
KeyguardBypassController keyguardBypassController,
|
||||
@@ -585,7 +586,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
mTransitioningToFullShade = isTransitioningToFullShade;
|
||||
updateShowCollapsedOnKeyguard();
|
||||
}
|
||||
mFullShadeProgress = qsTransitionFraction;
|
||||
mLockscreenToShadeProgress = qsTransitionFraction;
|
||||
setQsExpansion(mLastQSExpansion, mLastPanelFraction, mLastHeaderTranslation,
|
||||
isTransitioningToFullShade ? qsSquishinessFraction : mSquishinessFraction);
|
||||
}
|
||||
@@ -709,10 +710,13 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
}
|
||||
if (mInSplitShade) {
|
||||
// Large screens in landscape.
|
||||
if (mTransitioningToFullShade || isKeyguardState()) {
|
||||
// Need to check upcoming state as for unlocked -> AOD transition current state is
|
||||
// not updated yet, but we're transitioning and UI should already follow KEYGUARD state
|
||||
if (mTransitioningToFullShade || mStatusBarStateController.getCurrentOrUpcomingState()
|
||||
== StatusBarState.KEYGUARD) {
|
||||
// Always use "mFullShadeProgress" on keyguard, because
|
||||
// "panelExpansionFractions" is always 1 on keyguard split shade.
|
||||
return mFullShadeProgress;
|
||||
return mLockscreenToShadeProgress;
|
||||
} else {
|
||||
return panelExpansionFraction;
|
||||
}
|
||||
@@ -721,7 +725,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
if (mTransitioningToFullShade) {
|
||||
// Only use this value during the standard lock screen shade expansion. During the
|
||||
// "quick" expansion from top, this value is 0.
|
||||
return mFullShadeProgress;
|
||||
return mLockscreenToShadeProgress;
|
||||
} else {
|
||||
return panelExpansionFraction;
|
||||
}
|
||||
@@ -929,7 +933,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
indentingPw.println("mLastHeaderTranslation: " + mLastHeaderTranslation);
|
||||
indentingPw.println("mInSplitShade: " + mInSplitShade);
|
||||
indentingPw.println("mTransitioningToFullShade: " + mTransitioningToFullShade);
|
||||
indentingPw.println("mFullShadeProgress: " + mFullShadeProgress);
|
||||
indentingPw.println("mLockscreenToShadeProgress: " + mLockscreenToShadeProgress);
|
||||
indentingPw.println("mOverScrolling: " + mOverScrolling);
|
||||
indentingPw.println("isCustomizing: " + mQSCustomizerController.isCustomizing());
|
||||
View view = getView();
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
|
||||
package com.android.systemui.qs;
|
||||
|
||||
import static com.android.systemui.statusbar.StatusBarState.KEYGUARD;
|
||||
import static com.android.systemui.statusbar.StatusBarState.SHADE;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
@@ -49,13 +52,13 @@ import com.android.systemui.flags.FakeFeatureFlags;
|
||||
import com.android.systemui.flags.Flags;
|
||||
import com.android.systemui.media.MediaHost;
|
||||
import com.android.systemui.plugins.FalsingManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.qs.customize.QSCustomizerController;
|
||||
import com.android.systemui.qs.dagger.QSFragmentComponent;
|
||||
import com.android.systemui.qs.external.TileServiceRequestController;
|
||||
import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
|
||||
@@ -93,7 +96,7 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
|
||||
@Mock private QSPanel.QSTileLayout mQsTileLayout;
|
||||
@Mock private QSPanel.QSTileLayout mQQsTileLayout;
|
||||
@Mock private QSAnimator mQSAnimator;
|
||||
@Mock private StatusBarStateController mStatusBarStateController;
|
||||
@Mock private SysuiStatusBarStateController mStatusBarStateController;
|
||||
@Mock private QSSquishinessController mSquishinessController;
|
||||
private View mQsFragmentView;
|
||||
|
||||
@@ -158,7 +161,7 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
|
||||
public void
|
||||
transitionToFullShade_onKeyguard_noBouncer_setsAlphaUsingLinearInterpolator() {
|
||||
QSFragment fragment = resumeAndGetFragment();
|
||||
setStatusBarState(StatusBarState.KEYGUARD);
|
||||
setStatusBarState(KEYGUARD);
|
||||
when(mQSPanelController.isBouncerInTransit()).thenReturn(false);
|
||||
boolean isTransitioningToFullShade = true;
|
||||
float transitionProgress = 0.5f;
|
||||
@@ -174,7 +177,7 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
|
||||
public void
|
||||
transitionToFullShade_onKeyguard_bouncerActive_setsAlphaUsingBouncerInterpolator() {
|
||||
QSFragment fragment = resumeAndGetFragment();
|
||||
setStatusBarState(StatusBarState.KEYGUARD);
|
||||
setStatusBarState(KEYGUARD);
|
||||
when(mQSPanelController.isBouncerInTransit()).thenReturn(true);
|
||||
boolean isTransitioningToFullShade = true;
|
||||
float transitionProgress = 0.5f;
|
||||
@@ -261,6 +264,27 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
|
||||
verify(mQSFooterActionController).setExpansion(expansion);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setQsExpansion_inSplitShade_whenTransitioningToKeyguard_setsAlphaBasedOnShadeTransitionProgress() {
|
||||
QSFragment fragment = resumeAndGetFragment();
|
||||
enableSplitShade();
|
||||
when(mStatusBarStateController.getState()).thenReturn(SHADE);
|
||||
when(mStatusBarStateController.getCurrentOrUpcomingState()).thenReturn(KEYGUARD);
|
||||
boolean isTransitioningToFullShade = false;
|
||||
float transitionProgress = 0;
|
||||
float squishinessFraction = 0f;
|
||||
|
||||
fragment.setTransitionToFullShadeProgress(isTransitioningToFullShade, transitionProgress,
|
||||
squishinessFraction);
|
||||
|
||||
// trigger alpha refresh with non-zero expansion and fraction values
|
||||
fragment.setQsExpansion(/* expansion= */ 1, /* panelExpansionFraction= */1,
|
||||
/* proposedTranslation= */ 0, /* squishinessFraction= */ 1);
|
||||
|
||||
// alpha should follow lockscreen to shade progress, not panel expansion fraction
|
||||
assertThat(mQsFragmentView.getAlpha()).isEqualTo(transitionProgress);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getQsMinExpansionHeight_notInSplitShade_returnsHeaderHeight() {
|
||||
QSFragment fragment = resumeAndGetFragment();
|
||||
|
||||
Reference in New Issue
Block a user