Fixed a bug where a notification could not be collapsed

Also fixed a bug where the content height was wrongly
calculated when the dismissview was invisible.
Finally refined the appearance when more then 2 huns
are present.
Change-Id: If66243beef2383f2cb36961deffcb0a42bbcd177
diff --git a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
index 20ca7b7..fece07f 100644
--- a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
@@ -322,8 +322,7 @@
                         isInside(mScrollAdapter.getHostView(), x, y)
                         && mScrollAdapter.isScrolledToTop();
                 mResizedView = findView(x, y);
-                if (mResizedView != null && (isFullyExpanded(mResizedView)
-                        || !mCallback.canChildBeExpanded(mResizedView))) {
+                if (mResizedView != null && !mCallback.canChildBeExpanded(mResizedView)) {
                     mResizedView = null;
                     mWatchingForPull = false;
                 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
index c52b036..e072521 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
@@ -98,7 +98,7 @@
         mDefaultSnoozeLengthMs = resources.getInteger(R.integer.heads_up_default_snooze_length_ms);
         mSnoozeLengthMs = mDefaultSnoozeLengthMs;
         mMinimumDisplayTime = resources.getInteger(R.integer.heads_up_notification_minimum_time);
-        mHeadsUpNotificationDecay = 200000000/*resources.getInteger(R.integer.heads_up_notification_decay)*/;;
+        mHeadsUpNotificationDecay = resources.getInteger(R.integer.heads_up_notification_decay);
         mClock = new Clock();
         // TODO: shadow mSwipeHelper.setMaxSwipeProgress(mMaxAlpha);
 
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 4d7f8c1..f61e9ae 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -1397,12 +1397,9 @@
                     // add the padding before this element
                     height += mPaddingBetweenElements;
                 }
-                if (child instanceof ExpandableNotificationRow) {
-                    ExpandableNotificationRow row = (ExpandableNotificationRow) child;
-                    height += row.getIntrinsicHeight();
-                } else if (child instanceof ExpandableView) {
+                if (child instanceof ExpandableView) {
                     ExpandableView expandableView = (ExpandableView) child;
-                    height += expandableView.getActualHeight();
+                    height += expandableView.getIntrinsicHeight();
                 }
             }
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
index 54ed04c..d98bcfe 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
@@ -524,8 +524,8 @@
                     // Ensure that a headsUp is never below the topmost headsUp
                     StackViewState topState = resultState.getViewStateForView(topHeadsUpEntry);
                     childState.height = row.getHeadsUpHeight();
-                    childState.yTranslation = Math.min(childState.yTranslation,
-                            topState.yTranslation + topState.height - childState.height);
+                    childState.yTranslation = topState.yTranslation + topState.height
+                            - childState.height;
                 }
             } else if (mIsExpanded) {
                 if (isTopEntry) {