From 8cc1f69193be4fd42a5f630d7076369481b3f14d Mon Sep 17 00:00:00 2001 From: John Reck Date: Fri, 1 Mar 2019 09:09:34 -0800 Subject: [PATCH] More targetted drawFinished fix Prior to fe5dfca the frameCompleteCallback was posted to the native Looper, which is effectively a postAtFrontOfQueue. Since it was switched to the Java-side looper, do an explicit postAtFrontOfQueue Fixes: 124801988 Test: speculative Change-Id: I287c9f3917983503402dcfe3ee7d494eefae8d1f --- core/java/android/view/ViewRootImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index b1fee2d17079..2ee3e807f1a4 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -3406,7 +3406,7 @@ public final class ViewRootImpl implements ViewParent, usingAsyncReport = true; final Handler handler = mAttachInfo.mHandler; mAttachInfo.mThreadedRenderer.setFrameCompleteCallback((long frameNr) -> - handler.post(() -> { + handler.postAtFrontOfQueue(() -> { // TODO: Use the frame number pendingDrawFinished(); if (commitCallbacks != null) { @@ -3418,7 +3418,7 @@ public final class ViewRootImpl implements ViewParent, } else if (commitCallbacks != null && commitCallbacks.size() > 0) { final Handler handler = mAttachInfo.mHandler; mAttachInfo.mThreadedRenderer.setFrameCompleteCallback((long frameNr) -> - handler.post(() -> { + handler.postAtFrontOfQueue(() -> { for (int i = 0; i < commitCallbacks.size(); i++) { commitCallbacks.get(i).run(); } -- 2.11.0