Fix overexpand panel motion
Expanding was already set to false when we decided which QS
overscroll animation to run. We can't change the order of expanding
finished/tracking finished because of another bug. Instead, let the
stack scroller know about tracking state and combine both of them.
Bug: 21705230
Change-Id: I041ff1fabc6c939c233528f9d08d804ead64bbab
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
index f98840b..7040864 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -163,6 +163,7 @@
private boolean mChildrenUpdateRequested;
private SpeedBumpView mSpeedBumpView;
private boolean mIsExpansionChanging;
+ private boolean mPanelTracking;
private boolean mExpandingNotification;
private boolean mExpandedInThisMotion;
private boolean mScrollingEnabled;
@@ -1513,7 +1514,7 @@
}
if (mExpandedInThisMotion) {
return RUBBER_BAND_FACTOR_AFTER_EXPAND;
- } else if (mIsExpansionChanging) {
+ } else if (mIsExpansionChanging || mPanelTracking) {
return RUBBER_BAND_FACTOR_ON_PANEL_EXPAND;
} else if (mScrolledToTopOnFirstDown) {
return 1.0f;
@@ -1527,7 +1528,7 @@
* overscroll view (e.g. expand QS).
*/
private boolean isRubberbanded(boolean onTop) {
- return !onTop || mExpandedInThisMotion || mIsExpansionChanging
+ return !onTop || mExpandedInThisMotion || mIsExpansionChanging || mPanelTracking
|| !mScrolledToTopOnFirstDown;
}
@@ -2249,6 +2250,13 @@
}
}
+ public void onPanelTrackingStarted() {
+ mPanelTracking = true;
+ }
+ public void onPanelTrackingStopped() {
+ mPanelTracking = false;
+ }
+
public void resetScrollPosition() {
mScroller.abortAnimation();
mOwnScrollY = 0;