mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 02:38:20 +00:00
Fix pre sdk-18 compatibility (crash in dispatchDraw)
issue 13801679 Change-Id: I25b997179fd8eb7cdec6fc48d81533fb1c3094ce
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user