am 07efb030: Merge "Defer process mode upon draw" into jb-mr1.1-dev
* commit '07efb0303ff031512b7c38c6e7e9c2fcdb5849c0':
Defer process mode upon draw
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java
index 1c613245..5b7a5af 100644
--- a/core/java/android/view/HardwareRenderer.java
+++ b/core/java/android/view/HardwareRenderer.java
@@ -1304,17 +1304,11 @@
}
}
- if ((status & DisplayList.STATUS_INVOKE) != 0) {
- scheduleFunctors(attachInfo, true);
- }
- }
-
- private void scheduleFunctors(View.AttachInfo attachInfo, boolean delayed) {
- mFunctorsRunnable.attachInfo = attachInfo;
- if (!attachInfo.mHandler.hasCallbacks(mFunctorsRunnable)) {
- // delay the functor callback by a few ms so it isn't polled constantly
- attachInfo.mHandler.postDelayed(mFunctorsRunnable,
- delayed ? FUNCTOR_PROCESS_DELAY : 0);
+ if ((status & DisplayList.STATUS_INVOKE) != 0 ||
+ attachInfo.mHandler.hasCallbacks(mFunctorsRunnable)) {
+ attachInfo.mHandler.removeCallbacks(mFunctorsRunnable);
+ mFunctorsRunnable.attachInfo = attachInfo;
+ attachInfo.mHandler.postDelayed(mFunctorsRunnable, FUNCTOR_PROCESS_DELAY);
}
}
@@ -1329,7 +1323,9 @@
boolean attachFunctor(View.AttachInfo attachInfo, int functor) {
if (mCanvas != null) {
mCanvas.attachFunctor(functor);
- scheduleFunctors(attachInfo, false);
+ mFunctorsRunnable.attachInfo = attachInfo;
+ attachInfo.mHandler.removeCallbacks(mFunctorsRunnable);
+ attachInfo.mHandler.postDelayed(mFunctorsRunnable, 0);
return true;
}
return false;