Merge "Fix for the notification panel getting stuck open."
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
index c9fd9a9..759c17c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
@@ -39,7 +39,8 @@
 
 public class NotificationPanel extends LinearLayout implements StatusBarPanel,
         View.OnClickListener {
-    static final String TAG = "NotificationPanel";
+    static final String TAG = "Tablet/NotificationPanel";
+    static final boolean DEBUG = false;
 
     boolean mShowing;
     View mTitleArea;
@@ -248,6 +249,7 @@
         }
 
         void startAnimation(boolean visible) {
+            if (DEBUG) Slog.d(TAG, "startAnimation(visible=" + visible + ")");
             if (mBgAnim != null && mVisible != visible) {
                 mBgAnim.reverse();
                 mPositionAnim.reverse();
@@ -303,18 +305,22 @@
             if (mPanelBottom == 0) {
                 // fully closed, no animation necessary
                 setPanelBottom(0);
-            } else {
-                // a little bit visible, schedule an animation
+            } else if (mVisible) {
+                if (DEBUG) {
+                    Slog.d(TAG, "panelHeight not zero but trying to open; scheduling an anim to open fully");
+                }
                 startAnimation(true);
             }
         }
 
         public void onAnimationCancel(Animator animation) {
-            //Slog.d(TAG, "onAnimationCancel mBgAlpha=" + mBgAlpha);
+            if (DEBUG) Slog.d(TAG, "onAnimationCancel mBgAlpha=" + mBgAlpha);
+            // force this to zero so we close the window
+            mBgAlpha = 0;
         }
 
         public void onAnimationEnd(Animator animation) {
-            //Slog.d(TAG, "onAnimationEnd mBgAlpha=" + mBgAlpha);
+            if (DEBUG) Slog.d(TAG, "onAnimationEnd mBgAlpha=" + mBgAlpha);
             if (mBgAlpha == 0) {
                 setVisibility(View.GONE);
             }