diff options
| author | 2022-07-01 13:27:08 +0000 | |
|---|---|---|
| committer | 2022-07-01 13:27:08 +0000 | |
| commit | caff4c4c32a042ae5be514c13ef4e1206eebfae4 (patch) | |
| tree | 50b049d7de74157c39a6d105e1328998ad78be87 | |
| parent | 9d85462b823e471152e3ceb9140fa1dcd7cc6b81 (diff) | |
| parent | de765a95ea981b7b578c976c67ad8907448687df (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.java | 9 |
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) { |