diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index e38376d7d4a12..c64a2e8e4a4f6 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -1122,14 +1122,15 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall * @hide */ @Override - public void surfaceSyncStarted() { + public void vriDrawStarted(boolean isWmSync) { ViewRootImpl viewRoot = getViewRootImpl(); - if (viewRoot != null) { - synchronized (mSyncGroups) { + synchronized (mSyncGroups) { + if (isWmSync && viewRoot != null) { for (SurfaceSyncGroup syncGroup : mSyncGroups) { viewRoot.addToSync(syncGroup); } } + mSyncGroups.clear(); } } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index c4da009efaf36..e129767d6fd7f 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -2114,7 +2114,7 @@ public final class ViewRootImpl implements ViewParent, void surfaceCreated(Transaction t); void surfaceReplaced(Transaction t); void surfaceDestroyed(); - default void surfaceSyncStarted() {}; + default void vriDrawStarted(boolean isWmSync) {}; } private final ArrayList mSurfaceChangedCallbacks = new ArrayList<>(); @@ -2149,9 +2149,9 @@ public final class ViewRootImpl implements ViewParent, } } - private void notifySurfaceSyncStarted() { + private void notifyDrawStarted(boolean isWmSync) { for (int i = 0; i < mSurfaceChangedCallbacks.size(); i++) { - mSurfaceChangedCallbacks.get(i).surfaceSyncStarted(); + mSurfaceChangedCallbacks.get(i).vriDrawStarted(isWmSync); } } @@ -3663,6 +3663,7 @@ public final class ViewRootImpl implements ViewParent, } createSyncIfNeeded(); + notifyDrawStarted(isInWMSRequestedSync()); mDrewOnceForSync = true; } @@ -3736,7 +3737,6 @@ public final class ViewRootImpl implements ViewParent, mWmsRequestSyncGroup.addToSync(this); Trace.traceEnd(Trace.TRACE_TAG_VIEW); - notifySurfaceSyncStarted(); } private void notifyContentCatpureEvents() {