From d23d6bb38ae5666505565195674403db609da538 Mon Sep 17 00:00:00 2001 From: Michal Brzezinski Date: Thu, 30 Dec 2021 11:27:53 +0100 Subject: [PATCH] Fixing duplicate status bars in unfolded mode The issue was caused by incorrect alpha calculation - getLockscreenShadeDragProgress should account for special case of going directly to expanded QS on lockscreen, when "dragProgress" is not updated. Also putting keyguard status bar refresh close to split shade header refresh, otherwise keyguard status bar alpha wouldn't update often enough and animation would look like it's stuck. Bug: 212544026 Test: in folded mode lockscreen pull down shade from the top to expanded QS -> unfold and see only one status bar Change-Id: I3e8c66589270469cfc1484963d0a53c7273d07c1 --- .../phone/NotificationPanelViewController.java | 13 ++++--------- .../phone/KeyguardStatusBarViewControllerTest.java | 10 ---------- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index 4d625cfbfbf57..ac069d755396f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -2438,7 +2438,7 @@ public class NotificationPanelViewController extends PanelViewController { mSplitShadeHeaderController.setShadeExpandedFraction(shadeExpandedFraction); mSplitShadeHeaderController.setQsExpandedFraction(qsExpansionFraction); mSplitShadeHeaderController.setShadeExpanded(mQsVisible); - + mKeyguardStatusBarViewController.updateViewState(); if (mCommunalViewController != null) { mCommunalViewController.updateQsExpansion(qsExpansionFraction); @@ -4733,8 +4733,6 @@ public class NotificationPanelViewController extends PanelViewController { public interface NotificationPanelViewStateProvider { /** Returns the expanded height of the panel view. */ float getPanelViewExpandedHeight(); - /** Returns the fraction of QS that's expanded. */ - float getQsExpansionFraction(); /** * Returns true if heads up should be visible. * @@ -4754,11 +4752,6 @@ public class NotificationPanelViewController extends PanelViewController { return getExpandedHeight(); } - @Override - public float getQsExpansionFraction() { - return computeQsExpansionFraction(); - } - @Override public boolean shouldHeadsUpBeVisible() { return mHeadsUpAppearanceController.shouldBeVisible(); @@ -4766,7 +4759,9 @@ public class NotificationPanelViewController extends PanelViewController { @Override public float getLockscreenShadeDragProgress() { - return mLockscreenShadeTransitionController.getQSDragProgress(); + return mTransitioningToFullShadeProgress > 0 + ? mLockscreenShadeTransitionController.getQSDragProgress() + : computeQsExpansionFraction(); } }; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java index 37cf7485b8ab7..36a4c1e5ebfc6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java @@ -354,7 +354,6 @@ public class KeyguardStatusBarViewControllerTest extends SysuiTestCase { TestNotificationPanelViewStateProvider() {} private float mPanelViewExpandedHeight = 100f; - private float mQsExpansionFraction = 0f; private boolean mShouldHeadsUpBeVisible = false; private float mLockscreenShadeDragProgress = 0f; @@ -363,11 +362,6 @@ public class KeyguardStatusBarViewControllerTest extends SysuiTestCase { return mPanelViewExpandedHeight; } - @Override - public float getQsExpansionFraction() { - return mQsExpansionFraction; - } - @Override public boolean shouldHeadsUpBeVisible() { return mShouldHeadsUpBeVisible; @@ -382,10 +376,6 @@ public class KeyguardStatusBarViewControllerTest extends SysuiTestCase { this.mPanelViewExpandedHeight = panelViewExpandedHeight; } - public void setQsExpansionFraction(float qsExpansionFraction) { - this.mQsExpansionFraction = qsExpansionFraction; - } - public void setShouldHeadsUpBeVisible(boolean shouldHeadsUpBeVisible) { this.mShouldHeadsUpBeVisible = shouldHeadsUpBeVisible; }