Merge "Allow canceled draws to get retried for sync" into tm-qpr-dev

This commit is contained in:
Chavi Weingarten
2022-07-01 13:11:49 +00:00
committed by Android (Google) Code Review

View File

@@ -604,6 +604,8 @@ public final class ViewRootImpl implements ViewParent,
*/
private boolean mCheckIfCanDraw = false;
private boolean mDrewOnceForSync = false;
int mSyncSeqId = 0;
int mLastSyncSeqId = 0;
@@ -2999,6 +3001,9 @@ public final class ViewRootImpl implements ViewParent,
reportNextDraw();
mSyncBuffer = true;
isSyncRequest = true;
if (!cancelDraw) {
mDrewOnceForSync = false;
}
}
final boolean surfaceControlChanged =
@@ -3520,9 +3525,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) {