am 8b300ed1: Merge "Don\'t die(immediate) if from performTraversals." into jb-mr1-dev
* commit '8b300ed14f74a28ac7752d33b39bc7ac91bd9b26': Don't die(immediate) if from performTraversals.
This commit is contained in:
@@ -214,6 +214,9 @@ public final class ViewRootImpl implements ViewParent,
|
|||||||
boolean mTraversalScheduled;
|
boolean mTraversalScheduled;
|
||||||
int mTraversalBarrier;
|
int mTraversalBarrier;
|
||||||
boolean mWillDrawSoon;
|
boolean mWillDrawSoon;
|
||||||
|
/** Set to true while in performTraversals for detecting when die(true) is called from internal
|
||||||
|
* callbacks such as onMeasure, onPreDraw, onDraw and deferring doDie() until later. */
|
||||||
|
boolean mIsInTraversal;
|
||||||
boolean mFitSystemWindowsRequested;
|
boolean mFitSystemWindowsRequested;
|
||||||
boolean mLayoutRequested;
|
boolean mLayoutRequested;
|
||||||
boolean mFirst;
|
boolean mFirst;
|
||||||
@@ -1104,6 +1107,7 @@ public final class ViewRootImpl implements ViewParent,
|
|||||||
if (host == null || !mAdded)
|
if (host == null || !mAdded)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
mIsInTraversal = true;
|
||||||
mWillDrawSoon = true;
|
mWillDrawSoon = true;
|
||||||
boolean windowSizeMayChange = false;
|
boolean windowSizeMayChange = false;
|
||||||
boolean newSurface = false;
|
boolean newSurface = false;
|
||||||
@@ -1842,6 +1846,8 @@ public final class ViewRootImpl implements ViewParent,
|
|||||||
mPendingTransitions.clear();
|
mPendingTransitions.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mIsInTraversal = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void performMeasure(int childWidthMeasureSpec, int childHeightMeasureSpec) {
|
private void performMeasure(int childWidthMeasureSpec, int childHeightMeasureSpec) {
|
||||||
@@ -3956,7 +3962,9 @@ public final class ViewRootImpl implements ViewParent,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void die(boolean immediate) {
|
public void die(boolean immediate) {
|
||||||
if (immediate) {
|
// Make sure we do execute immediately if we are in the middle of a traversal or the damage
|
||||||
|
// done by dispatchDetachedFromWindow will cause havoc on return.
|
||||||
|
if (immediate && !mIsInTraversal) {
|
||||||
doDie();
|
doDie();
|
||||||
} else {
|
} else {
|
||||||
if (!mIsDrawing) {
|
if (!mIsDrawing) {
|
||||||
|
|||||||
Reference in New Issue
Block a user