summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chavi Weingarten <chaviw@google.com> 2022-07-01 13:27:08 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-07-01 13:27:08 +0000
commitcaff4c4c32a042ae5be514c13ef4e1206eebfae4 (patch)
tree50b049d7de74157c39a6d105e1328998ad78be87
parent9d85462b823e471152e3ceb9140fa1dcd7cc6b81 (diff)
parentde765a95ea981b7b578c976c67ad8907448687df (diff)
Merge "Allow canceled draws to get retried for sync" into tm-qpr-dev am: de765a95ea
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19120050 Change-Id: Iffedae628ade79fc0d1eddbca68cc5fa1138a7e2 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--core/java/android/view/ViewRootImpl.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index b8e2e25cf38f..9fb2298a4648 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -604,6 +604,8 @@ public final class ViewRootImpl implements ViewParent,
*/
private boolean mCheckIfCanDraw = false;
+ private boolean mDrewOnceForSync = false;
+
int mSyncSeqId = 0;
int mLastSyncSeqId = 0;
@@ -3001,6 +3003,9 @@ public final class ViewRootImpl implements ViewParent,
reportNextDraw();
mSyncBuffer = true;
isSyncRequest = true;
+ if (!cancelDraw) {
+ mDrewOnceForSync = false;
+ }
}
final boolean surfaceControlChanged =
@@ -3522,9 +3527,11 @@ public final class ViewRootImpl implements ViewParent,
mCheckIfCanDraw = isSyncRequest || cancelDraw;
- boolean cancelAndRedraw = mAttachInfo.mTreeObserver.dispatchOnPreDraw() || cancelDraw;
+ boolean cancelAndRedraw =
+ mAttachInfo.mTreeObserver.dispatchOnPreDraw() || (cancelDraw && mDrewOnceForSync);
if (!cancelAndRedraw) {
createSyncIfNeeded();
+ mDrewOnceForSync = true;
}
if (!isViewVisible) {