Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07efb030 authored by Chris Craik's avatar Chris Craik Committed by Android (Google) Code Review
Browse files

Merge "Defer process mode upon draw" into jb-mr1.1-dev

parents 6c58b155 9efa222b
Loading
Loading
Loading
Loading
+8 −12
Original line number Diff line number Diff line
@@ -1304,17 +1304,11 @@ public abstract class HardwareRenderer {
                }
            }

            if ((status & DisplayList.STATUS_INVOKE) != 0) {
                scheduleFunctors(attachInfo, true);
            }
        }

        private void scheduleFunctors(View.AttachInfo attachInfo, boolean delayed) {
            if ((status & DisplayList.STATUS_INVOKE) != 0 ||
                    attachInfo.mHandler.hasCallbacks(mFunctorsRunnable)) {
                attachInfo.mHandler.removeCallbacks(mFunctorsRunnable);
                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);
                attachInfo.mHandler.postDelayed(mFunctorsRunnable, FUNCTOR_PROCESS_DELAY);
            }
        }

@@ -1329,7 +1323,9 @@ public abstract class HardwareRenderer {
        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;