summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Craik <ccraik@google.com> 2013-02-07 12:57:10 -0800
committer Chris Craik <ccraik@google.com> 2013-02-07 12:57:10 -0800
commitae4f3204ec2c9251e0e408816e74502079cd1a6c (patch)
treee1f090ce1f3e084dad706e48a505e52b16aa97bc
parent154be52ae785a00ed091175e3eeed36d8ad14999 (diff)
Correctly resume profileRendering
Ensure profileRendering reschedules a previously created profiler callback if disabled and reenabled Change-Id: I181ac5043966b99bb8d21e69ce4fdd7494102acb
-rw-r--r--core/java/android/view/ViewRootImpl.java27
1 files changed, 16 insertions, 11 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index c3321eadd5b0..65a075788ebc 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -2103,20 +2103,25 @@ public final class ViewRootImpl implements ViewParent,
private void profileRendering(boolean enabled) {
if (mProfileRendering) {
mRenderProfilingEnabled = enabled;
- if (mRenderProfiler == null) {
- mRenderProfiler = new Choreographer.FrameCallback() {
- @Override
- public void doFrame(long frameTimeNanos) {
- mDirty.set(0, 0, mWidth, mHeight);
- scheduleTraversals();
- if (mRenderProfilingEnabled) {
- mChoreographer.postFrameCallback(mRenderProfiler);
+
+ if (mRenderProfiler != null) {
+ mChoreographer.removeFrameCallback(mRenderProfiler);
+ }
+ if (mRenderProfilingEnabled) {
+ if (mRenderProfiler == null) {
+ mRenderProfiler = new Choreographer.FrameCallback() {
+ @Override
+ public void doFrame(long frameTimeNanos) {
+ mDirty.set(0, 0, mWidth, mHeight);
+ scheduleTraversals();
+ if (mRenderProfilingEnabled) {
+ mChoreographer.postFrameCallback(mRenderProfiler);
+ }
}
- }
- };
+ };
+ }
mChoreographer.postFrameCallback(mRenderProfiler);
} else {
- mChoreographer.removeFrameCallback(mRenderProfiler);
mRenderProfiler = null;
}
}