Fix state weirdness in the panel

When QS was open while the we started with expansion, we
immediately notified about expansion finsihed again, which led to all
kinds of weird states. The change that introduced these bugs was to
fix another bug in which onExpandingFinished was not call. Make sure
to call in exactly that case and no other case to not risk
regressions.

Bug: 22806817
Bug: 22807359
Bug: 22807372
Change-Id: Id7daf37ef4a772f724971bf79c61084ff4279f31
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 56e3032..f8bd793 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -626,6 +626,7 @@
                         && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) {
                     mQsTracking = true;
                     onQsExpansionStarted();
+                    notifyExpandingFinished();
                     mInitialHeightOnTouch = mQsExpansionHeight;
                     mInitialTouchY = y;
                     mInitialTouchX = x;
@@ -825,9 +826,7 @@
             mInitialTouchX = event.getY();
 
             // If we interrupt an expansion gesture here, make sure to update the state correctly.
-            if (mIsExpanding) {
-                onExpandingFinished();
-            }
+            notifyExpandingFinished();
         }
     }
 
@@ -970,7 +969,6 @@
     private void onQsExpansionStarted(int overscrollAmount) {
         cancelQsAnimation();
         cancelHeightAnimator();
-        notifyExpandingFinished();
 
         // Reset scroll position and apply that position to the expanded height.
         float height = mQsExpansionHeight - mScrollView.getScrollY() - overscrollAmount;