diff options
| author | 2018-06-21 11:41:34 -0700 | |
|---|---|---|
| committer | 2018-06-23 00:45:35 +0000 | |
| commit | 95951a341ed0208a455f8e32ba54734e70c36dcd (patch) | |
| tree | b9e4002f8d67f5f29acc9a07c782ccd5d58a839b | |
| parent | d2aadbfd93699b8cc2c4d62bd526df0a6eaa1356 (diff) | |
Conserve expansion after re-inflation
We were updating most of the PhoneStatusBarView state during
re-inflation but not the expansion and its fraction.
Test: Pull down shade, run: adb shell service call overlay 4 s16 "com.android.systemui.theme.dark" i32 1 i32 0
Test: Switch to guest user, switch back
Test: Reboot, look at status bar
Change-Id: I41669fb32419ad02a11586ba248a68b47d450413
Merged-In: I41669fb32419ad02a11586ba248a68b47d450413
Fixes: 110530608
Fixes: 110147405
Fixes: 79122419
3 files changed, 16 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java index c4d7e72c0d82..6f4a3cd82140 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java @@ -29,6 +29,7 @@ public abstract class PanelBar extends FrameLayout { private static final boolean SPEW = false; private boolean mBouncerShowing; private boolean mExpanded; + protected float mPanelFraction; public static final void LOG(String fmt, Object... args) { if (!DEBUG) return; @@ -77,6 +78,14 @@ public abstract class PanelBar extends FrameLayout { if (mPanel != null) mPanel.setImportantForAccessibility(important); } + public float getExpansionFraction() { + return mPanelFraction; + } + + public boolean isExpanded() { + return mExpanded; + } + private void updateVisibility() { mPanel.setVisibility(mExpanded || mBouncerShowing ? VISIBLE : INVISIBLE); } @@ -131,6 +140,7 @@ public abstract class PanelBar extends FrameLayout { if (SPEW) LOG("panelExpansionChanged: start state=%d", mState); PanelView pv = mPanel; mExpanded = expanded; + mPanelFraction = frac; updateVisibility(); // adjust any other panels that may be partially visible if (expanded) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index 075883a8ac52..59863ecb1191 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -59,7 +59,6 @@ public class PhoneStatusBarView extends PanelBar { private final PhoneStatusBarTransitions mBarTransitions; private ScrimController mScrimController; private float mMinFraction; - private float mPanelFraction; private Runnable mHideExpandedRunnable = new Runnable() { @Override public void run() { @@ -269,7 +268,6 @@ public class PhoneStatusBarView extends PanelBar { @Override public void panelExpansionChanged(float frac, boolean expanded) { super.panelExpansionChanged(frac, expanded); - mPanelFraction = frac; updateScrimFraction(); if ((frac == 0 || frac == 1) && mBar.getNavigationBarView() != null) { mBar.getNavigationBarView().onPanelExpandedChange(expanded); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 07b0e1d242d5..182f9f758fb0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -836,11 +836,17 @@ public class StatusBar extends SystemUI implements DemoMode, CollapsedStatusBarFragment statusBarFragment = (CollapsedStatusBarFragment) fragment; statusBarFragment.initNotificationIconArea(mNotificationIconAreaController); + PhoneStatusBarView oldStatusBarView = mStatusBarView; mStatusBarView = (PhoneStatusBarView) fragment.getView(); mStatusBarView.setBar(this); mStatusBarView.setPanel(mNotificationPanel); mStatusBarView.setScrimController(mScrimController); mStatusBarView.setBouncerShowing(mBouncerShowing); + if (oldStatusBarView != null) { + float fraction = oldStatusBarView.getExpansionFraction(); + boolean expanded = oldStatusBarView.isExpanded(); + mStatusBarView.panelExpansionChanged(fraction, expanded); + } if (mHeadsUpAppearanceController != null) { // This view is being recreated, let's destroy the old one mHeadsUpAppearanceController.destroy(); |