Loading core/java/android/view/ViewTreeObserver.java +14 −5 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ public final class ViewTreeObserver { private boolean mWindowShown; // The reason that the last call to dispatchOnPreDraw() returned true to cancel and redraw private String mLastDispatchOnPreDrawCanceledReason; private StringBuilder mLastDispatchOnPreDrawCanceledReason; private boolean mAlive = true; Loading Loading @@ -1173,9 +1173,15 @@ public final class ViewTreeObserver { int count = access.size(); for (int i = 0; i < count; i++) { final OnPreDrawListener preDrawListener = access.get(i); cancelDraw |= !(preDrawListener.onPreDraw()); if (cancelDraw) { mLastDispatchOnPreDrawCanceledReason = preDrawListener.getClass().getName(); final boolean listenerCanceledDraw = !(preDrawListener.onPreDraw()); cancelDraw |= listenerCanceledDraw; if (listenerCanceledDraw) { final String className = preDrawListener.getClass().getName(); if (mLastDispatchOnPreDrawCanceledReason == null) { mLastDispatchOnPreDrawCanceledReason = new StringBuilder(className); } else { mLastDispatchOnPreDrawCanceledReason.append("|").append(className); } } } } finally { Loading @@ -1191,7 +1197,10 @@ public final class ViewTreeObserver { * @hide */ final String getLastDispatchOnPreDrawCanceledReason() { return mLastDispatchOnPreDrawCanceledReason; if (mLastDispatchOnPreDrawCanceledReason != null) { return mLastDispatchOnPreDrawCanceledReason.toString(); } return null; } /** Loading Loading
core/java/android/view/ViewTreeObserver.java +14 −5 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ public final class ViewTreeObserver { private boolean mWindowShown; // The reason that the last call to dispatchOnPreDraw() returned true to cancel and redraw private String mLastDispatchOnPreDrawCanceledReason; private StringBuilder mLastDispatchOnPreDrawCanceledReason; private boolean mAlive = true; Loading Loading @@ -1173,9 +1173,15 @@ public final class ViewTreeObserver { int count = access.size(); for (int i = 0; i < count; i++) { final OnPreDrawListener preDrawListener = access.get(i); cancelDraw |= !(preDrawListener.onPreDraw()); if (cancelDraw) { mLastDispatchOnPreDrawCanceledReason = preDrawListener.getClass().getName(); final boolean listenerCanceledDraw = !(preDrawListener.onPreDraw()); cancelDraw |= listenerCanceledDraw; if (listenerCanceledDraw) { final String className = preDrawListener.getClass().getName(); if (mLastDispatchOnPreDrawCanceledReason == null) { mLastDispatchOnPreDrawCanceledReason = new StringBuilder(className); } else { mLastDispatchOnPreDrawCanceledReason.append("|").append(className); } } } } finally { Loading @@ -1191,7 +1197,10 @@ public final class ViewTreeObserver { * @hide */ final String getLastDispatchOnPreDrawCanceledReason() { return mLastDispatchOnPreDrawCanceledReason; if (mLastDispatchOnPreDrawCanceledReason != null) { return mLastDispatchOnPreDrawCanceledReason.toString(); } return null; } /** Loading