diff options
author | Adam Cohen <adamcohen@google.com> | 2014-04-07 22:32:57 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-04-07 22:32:58 +0000 |
commit | c4cf34dedb5fc21fce30924105729fa3dad6aa90 (patch) | |
tree | 22676c8d400f7550368c74ca6d19ad220a88c21d | |
parent | 59551217428a9cfbe11f727d0b69246a291931b5 (diff) | |
parent | 2d783ce2f4b2e507bead0d723f0edcdf902dbd46 (diff) | |
download | android_packages_apps_Trebuchet-c4cf34dedb5fc21fce30924105729fa3dad6aa90.tar.gz android_packages_apps_Trebuchet-c4cf34dedb5fc21fce30924105729fa3dad6aa90.tar.bz2 android_packages_apps_Trebuchet-c4cf34dedb5fc21fce30924105729fa3dad6aa90.zip |
Merge "Fix pre sdk-18 compatibility (crash in dispatchDraw)" into ub-now-mister-ugly
-rw-r--r-- | src/com/android/launcher3/DragLayer.java | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/com/android/launcher3/DragLayer.java b/src/com/android/launcher3/DragLayer.java index bbf8c8c10..cd51c96e1 100644 --- a/src/com/android/launcher3/DragLayer.java +++ b/src/com/android/launcher3/DragLayer.java @@ -75,6 +75,7 @@ public class DragLayer extends FrameLayout implements ViewGroup.OnHierarchyChang private View mOverlayView; private int mTopViewIndex; + private int mChildCountOnLastUpdate = -1; /** * Used to create a new DragLayer from XML. @@ -736,13 +737,7 @@ public class DragLayer extends FrameLayout implements ViewGroup.OnHierarchyChang mDropAnim.cancel(); } if (mDropView != null) { - final DragView dropView = mDropView; - post(new Runnable() { - @Override - public void run() { - mDragController.onDeferredEndDrag(dropView); - } - }); + mDragController.onDeferredEndDrag(mDropView); } mDropView = null; invalidate(); @@ -802,10 +797,19 @@ public class DragLayer extends FrameLayout implements ViewGroup.OnHierarchyChang mTopViewIndex = i; } } + mChildCountOnLastUpdate = childCount; } @Override protected int getChildDrawingOrder(int childCount, int i) { + if (mChildCountOnLastUpdate != childCount) { + // between platform versions 17 and 18, behavior for onChildViewRemoved / Added changed. + // Pre-18, the child was not added / removed by the time of those callbacks. We need to + // force update our representation of things here to avoid crashing on pre-18 devices + // in certain instances. + updateChildIndices(); + } + // i represents the current draw iteration if (mTopViewIndex == -1) { // in general we do nothing |