Merge "Fixed a bug when double tapping a notification in the normal shade" into lmp-dev
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user