diff options
author | Selim Cinek <cinek@google.com> | 2014-10-14 22:28:24 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-10-14 22:28:25 +0000 |
commit | cedb6dc7f2e19120d6889bc681d143bfb2891b80 (patch) | |
tree | 6f656d596840035be65292f5c92f3af42209dbd5 /packages/SystemUI/src/com/android | |
parent | a4f9c0873f1d414d6721989f44d88de9a1f6d01a (diff) | |
parent | 02af41efe54eb2cc8fde7311e4cf5f0e5ff2373c (diff) | |
download | frameworks_base-cedb6dc7f2e19120d6889bc681d143bfb2891b80.zip frameworks_base-cedb6dc7f2e19120d6889bc681d143bfb2891b80.tar.gz frameworks_base-cedb6dc7f2e19120d6889bc681d143bfb2891b80.tar.bz2 |
Merge "Fixed a bug when double tapping a notification in the normal shade" into lmp-dev
Diffstat (limited to 'packages/SystemUI/src/com/android')
3 files changed, 28 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index d8c99f8..a7ff0bd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -372,6 +372,7 @@ public abstract class PanelView extends FrameLayout { } protected void onTrackingStarted() { + mClosing = false; mTracking = true; mCollapseAfterPeek = false; mBar.onTrackingStarted(PanelView.this); 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 e4a1c27..853628e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java @@ -738,8 +738,9 @@ public class StackScrollAlgorithm { if (mExpandedOnStart) { // We are collapsing the shade, so the first child can get as most as high as the - // current height. - mFirstChildMaxHeight = mFirstChildWhileExpanding.getActualHeight(); + // current height or the end value of the animation. + mFirstChildMaxHeight = StackStateAnimator.getFinalActualHeight( + mFirstChildWhileExpanding); } else { updateFirstChildMaxSizeToMaxHeight(); } @@ -801,9 +802,14 @@ public class StackScrollAlgorithm { this.mIsExpanded = isExpanded; } - public void notifyChildrenChanged(ViewGroup hostView) { + public void notifyChildrenChanged(final ViewGroup hostView) { if (mIsExpansionChanging) { - updateFirstChildHeightWhileExpanding(hostView); + hostView.post(new Runnable() { + @Override + public void run() { + updateFirstChildHeightWhileExpanding(hostView); + } + }); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java index a69390e..433357e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java @@ -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); } @@ -848,4 +848,20 @@ public class StackStateAnimator { 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); + } + } } |