diff options
| author | 2021-01-15 13:27:38 -0600 | |
|---|---|---|
| committer | 2021-01-16 19:34:13 -0600 | |
| commit | a515d831ea18fa2c5b5b267807da2d248d8511b6 (patch) | |
| tree | 9c94cb4bfa13621cb2ae310de390d8e931bd5615 | |
| parent | b1e9252d657bcc70c824eef8af86747efd9c9fa2 (diff) | |
Propagate shade open state from PanelBar to AmbientState
For use in deciding when to fade and clip notifications.
Bug: 172289889
Test: manual
Change-Id: I54d5ba582401ecdae7b3ec43ede89ad05eb33444
6 files changed, 27 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java index 2c501cbe9846..b5963ef443e7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java @@ -77,6 +77,7 @@ public class AmbientState { private Runnable mOnPulseHeightChangedListener; private ExpandableNotificationRow mTrackedHeadsUpRow; private float mAppearFraction; + private boolean mIsShadeOpening; /** Tracks the state from AlertingNotificationManager#hasNotifications() */ private boolean mHasAlertEntries; @@ -96,6 +97,14 @@ public class AmbientState { mBaseZHeight = getBaseHeight(mZDistanceBetweenElements); } + void setIsShadeOpening(boolean isOpening) { + mIsShadeOpening = isOpening; + } + + public boolean isShadeOpening() { + return mIsShadeOpening; + } + private static int getZDistanceBetweenElements(Context context) { return Math.max(1, context.getResources() .getDimensionPixelSize(R.dimen.z_distance_between_notifications)); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index 9e8385b8a61b..6abbc6bc2c36 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -550,6 +550,10 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable } } + void setIsShadeOpening(boolean isOpening) { + mAmbientState.setIsShadeOpening(isOpening); + } + @Override @ShadeViewRefactor(RefactorComponent.SHADE_VIEW) protected void onFinishInflate() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java index e332f18ce183..e5121b03446f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java @@ -271,6 +271,10 @@ public class NotificationStackScrollLayoutController { } }; + public void setIsShadeOpening(boolean isOpening) { + mView.setIsShadeOpening(isOpening); + } + private final OnMenuEventListener mMenuEventListener = new OnMenuEventListener() { @Override public void onMenuClicked( 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 ba08e76e6f66..615aee199129 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -2412,6 +2412,11 @@ public class NotificationPanelViewController extends PanelViewController { } @Override + protected void setIsShadeOpening(boolean isOpening) { + mNotificationStackScrollLayoutController.setIsShadeOpening(isOpening); + } + + @Override protected void setOverExpansion(float overExpansion, boolean isPixels) { if (mConflictingQsExpansionGesture || mQsExpandImmediate) { return; 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 c1065189f716..a1112dc37b50 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java @@ -52,6 +52,9 @@ public abstract class PanelBar extends FrameLayout { public void go(int state) { if (DEBUG) LOG("go state: %d -> %d", mState, state); mState = state; + if (mPanel != null) { + mPanel.setIsShadeOpening(state == STATE_OPENING); + } } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java index 8ed971087508..8cf9100f2188 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java @@ -739,6 +739,8 @@ public abstract class PanelViewController { */ protected abstract boolean isTrackingBlocked(); + protected abstract void setIsShadeOpening(boolean isShadeOpening); + protected abstract void setOverExpansion(float overExpansion, boolean isPixels); protected abstract void onHeightUpdated(float expandedHeight); |