diff options
| author | 2022-10-04 15:10:54 +0000 | |
|---|---|---|
| committer | 2022-10-04 15:10:54 +0000 | |
| commit | 8ff8a6fbaa828bf30fe224c4c985e93dcc589548 (patch) | |
| tree | d8ac72b2122f57afc78e8e550e047b5ed4ad2d2d | |
| parent | a2a15ec28cce8c2f55b018c55bbc3837b2c7ad8f (diff) | |
| parent | 9a0ed1afe1a4ea2c1e8537196d84c8c958a275d5 (diff) | |
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>
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/QSFragment.java | 20 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java | 32 |
2 files changed, 40 insertions, 12 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java index 653d9dd8b6a4..1ef6426d52a0 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java @@ -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(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java index 2a66773f924e..d2c2d58820bc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java @@ -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; @@ -262,6 +265,27 @@ public class QSFragmentTest extends SysuiBaseFragmentTest { } @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(); disableSplitShade(); |