Merge "Fixed a bug when double tapping a notification in the normal shade" into lmp-dev

This commit is contained in:
Selim Cinek
2014-10-14 22:28:24 +00:00
committed by Android (Google) Code Review
3 changed files with 28 additions and 5 deletions

View File

@@ -372,6 +372,7 @@ public abstract class PanelView extends FrameLayout {
} }
protected void onTrackingStarted() { protected void onTrackingStarted() {
mClosing = false;
mTracking = true; mTracking = true;
mCollapseAfterPeek = false; mCollapseAfterPeek = false;
mBar.onTrackingStarted(PanelView.this); mBar.onTrackingStarted(PanelView.this);

View File

@@ -738,8 +738,9 @@ public class StackScrollAlgorithm {
if (mExpandedOnStart) { if (mExpandedOnStart) {
// We are collapsing the shade, so the first child can get as most as high as the // We are collapsing the shade, so the first child can get as most as high as the
// current height. // current height or the end value of the animation.
mFirstChildMaxHeight = mFirstChildWhileExpanding.getActualHeight(); mFirstChildMaxHeight = StackStateAnimator.getFinalActualHeight(
mFirstChildWhileExpanding);
} else { } else {
updateFirstChildMaxSizeToMaxHeight(); updateFirstChildMaxSizeToMaxHeight();
} }
@@ -801,9 +802,14 @@ public class StackScrollAlgorithm {
this.mIsExpanded = isExpanded; this.mIsExpanded = isExpanded;
} }
public void notifyChildrenChanged(ViewGroup hostView) { public void notifyChildrenChanged(final ViewGroup hostView) {
if (mIsExpansionChanging) { if (mIsExpansionChanging) {
updateFirstChildHeightWhileExpanding(hostView); hostView.post(new Runnable() {
@Override
public void run() {
updateFirstChildHeightWhileExpanding(hostView);
}
});
} }
} }

View File

@@ -709,7 +709,7 @@ public class StackStateAnimator {
}; };
} }
private <T> T getChildTag(View child, int tag) { private static <T> T getChildTag(View child, int tag) {
return (T) child.getTag(tag); return (T) child.getTag(tag);
} }
@@ -848,4 +848,20 @@ public class StackStateAnimator {
currentAnimator.cancel(); currentAnimator.cancel();
} }
} }
/**
* Get the end value of the height animation running on a view or the actualHeight
* if no animation is running.
*/
public static int getFinalActualHeight(ExpandableView view) {
if (view == null) {
return 0;
}
ValueAnimator heightAnimator = getChildTag(view, TAG_ANIMATOR_HEIGHT);
if (heightAnimator == null) {
return view.getActualHeight();
} else {
return getChildTag(view, TAG_END_HEIGHT);
}
}
} }