Loading core/java/android/view/ViewRootImpl.java +14 −1 Original line number Diff line number Diff line Loading @@ -4345,6 +4345,7 @@ public final class ViewRootImpl implements ViewParent, handleSyncRequestWhenNoAsyncDraw(mActiveSurfaceSyncGroup, mHasPendingTransactions, mPendingTransaction, "view not visible"); mHasPendingTransactions = false; } else if (cancelAndRedraw) { if (!mWasLastDrawCanceled) { logAndTrace("Canceling draw." Loading Loading @@ -4372,6 +4373,7 @@ public final class ViewRootImpl implements ViewParent, if (!performDraw(mActiveSurfaceSyncGroup)) { handleSyncRequestWhenNoAsyncDraw(mActiveSurfaceSyncGroup, mHasPendingTransactions, mPendingTransaction, mLastPerformDrawSkippedReason); mHasPendingTransactions = false; } } mWasLastDrawCanceled = cancelAndRedraw; Loading @@ -4388,7 +4390,14 @@ public final class ViewRootImpl implements ViewParent, mReportNextDraw = false; mLastReportNextDrawReason = null; mActiveSurfaceSyncGroup = null; if (mHasPendingTransactions) { // TODO: We shouldn't ever actually hit this, it means mPendingTransaction wasn't // merged with a sync group or BLASTBufferQueue before making it to this point // But better a one or two frame flicker than steady-state broken from dropping // whatever is in this transaction mPendingTransaction.apply(); mHasPendingTransactions = false; } mSyncBuffer = false; if (isInWMSRequestedSync()) { mWmsRequestSyncGroup.markSyncReady(); Loading Loading @@ -5305,6 +5314,7 @@ public final class ViewRootImpl implements ViewParent, private void registerCallbackForPendingTransactions() { Transaction t = new Transaction(); t.merge(mPendingTransaction); mHasPendingTransactions = false; registerRtFrameCallback(new FrameDrawingCallback() { @Override Loading Loading @@ -5384,6 +5394,7 @@ public final class ViewRootImpl implements ViewParent, if (!usingAsyncReport && mHasPendingTransactions) { pendingTransaction = new Transaction(); pendingTransaction.merge(mPendingTransaction); mHasPendingTransactions = false; } else { pendingTransaction = null; } Loading Loading @@ -9942,6 +9953,7 @@ public final class ViewRootImpl implements ViewParent, } handleSyncRequestWhenNoAsyncDraw(mActiveSurfaceSyncGroup, mHasPendingTransactions, mPendingTransaction, "shutting down VRI"); mHasPendingTransactions = false; WindowManagerGlobal.getInstance().doRemoveView(this); } Loading Loading @@ -12601,6 +12613,7 @@ public final class ViewRootImpl implements ViewParent, if (mHasPendingTransactions) { t = new Transaction(); t.merge(mPendingTransaction); mHasPendingTransactions = false; } else { t = null; } Loading
core/java/android/view/ViewRootImpl.java +14 −1 Original line number Diff line number Diff line Loading @@ -4345,6 +4345,7 @@ public final class ViewRootImpl implements ViewParent, handleSyncRequestWhenNoAsyncDraw(mActiveSurfaceSyncGroup, mHasPendingTransactions, mPendingTransaction, "view not visible"); mHasPendingTransactions = false; } else if (cancelAndRedraw) { if (!mWasLastDrawCanceled) { logAndTrace("Canceling draw." Loading Loading @@ -4372,6 +4373,7 @@ public final class ViewRootImpl implements ViewParent, if (!performDraw(mActiveSurfaceSyncGroup)) { handleSyncRequestWhenNoAsyncDraw(mActiveSurfaceSyncGroup, mHasPendingTransactions, mPendingTransaction, mLastPerformDrawSkippedReason); mHasPendingTransactions = false; } } mWasLastDrawCanceled = cancelAndRedraw; Loading @@ -4388,7 +4390,14 @@ public final class ViewRootImpl implements ViewParent, mReportNextDraw = false; mLastReportNextDrawReason = null; mActiveSurfaceSyncGroup = null; if (mHasPendingTransactions) { // TODO: We shouldn't ever actually hit this, it means mPendingTransaction wasn't // merged with a sync group or BLASTBufferQueue before making it to this point // But better a one or two frame flicker than steady-state broken from dropping // whatever is in this transaction mPendingTransaction.apply(); mHasPendingTransactions = false; } mSyncBuffer = false; if (isInWMSRequestedSync()) { mWmsRequestSyncGroup.markSyncReady(); Loading Loading @@ -5305,6 +5314,7 @@ public final class ViewRootImpl implements ViewParent, private void registerCallbackForPendingTransactions() { Transaction t = new Transaction(); t.merge(mPendingTransaction); mHasPendingTransactions = false; registerRtFrameCallback(new FrameDrawingCallback() { @Override Loading Loading @@ -5384,6 +5394,7 @@ public final class ViewRootImpl implements ViewParent, if (!usingAsyncReport && mHasPendingTransactions) { pendingTransaction = new Transaction(); pendingTransaction.merge(mPendingTransaction); mHasPendingTransactions = false; } else { pendingTransaction = null; } Loading Loading @@ -9942,6 +9953,7 @@ public final class ViewRootImpl implements ViewParent, } handleSyncRequestWhenNoAsyncDraw(mActiveSurfaceSyncGroup, mHasPendingTransactions, mPendingTransaction, "shutting down VRI"); mHasPendingTransactions = false; WindowManagerGlobal.getInstance().doRemoveView(this); } Loading Loading @@ -12601,6 +12613,7 @@ public final class ViewRootImpl implements ViewParent, if (mHasPendingTransactions) { t = new Transaction(); t.merge(mPendingTransaction); mHasPendingTransactions = false; } else { t = null; }