diff options
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
-rw-r--r-- | core/java/android/view/ViewRootImpl.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 127c7b7a8dc9..ad3379f4c46e 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -90,6 +90,7 @@ import static android.view.inputmethod.InputMethodEditorTraceProto.InputMethodCl import static android.view.inputmethod.InputMethodEditorTraceProto.InputMethodClientsTraceProto.ClientSideProto.INSETS_CONTROLLER; import android.Manifest; +import android.animation.AnimationHandler; import android.animation.LayoutTransition; import android.annotation.AnyThread; import android.annotation.NonNull; @@ -1363,6 +1364,8 @@ public final class ViewRootImpl implements ViewParent, mFirstInputStage = nativePreImeStage; mFirstPostImeInputStage = earlyPostImeStage; mPendingInputEventQueueLengthCounterName = "aq:pending:" + counterSuffix; + + AnimationHandler.requestAnimatorsEnabled(mAppVisible, this); } } } @@ -1708,6 +1711,7 @@ public final class ViewRootImpl implements ViewParent, if (!mAppVisible) { WindowManagerGlobal.trimForeground(); } + AnimationHandler.requestAnimatorsEnabled(mAppVisible, this); } } @@ -3496,7 +3500,9 @@ public final class ViewRootImpl implements ViewParent, } mPendingTransitions.clear(); } - performDraw(); + if (!performDraw() && mSyncBufferCallback != null) { + mSyncBufferCallback.onBufferReady(null); + } } if (mAttachInfo.mContentCaptureEvents != null) { @@ -4239,11 +4245,11 @@ public final class ViewRootImpl implements ViewParent, }); } - private void performDraw() { + private boolean performDraw() { if (mAttachInfo.mDisplayState == Display.STATE_OFF && !mReportNextDraw) { - return; + return false; } else if (mView == null) { - return; + return false; } final boolean fullRedrawNeeded = mFullRedrawNeeded || mSyncBufferCallback != null; @@ -4327,6 +4333,7 @@ public final class ViewRootImpl implements ViewParent, if (mPerformContentCapture) { performContentCaptureInitialReport(); } + return true; } /** @@ -8477,6 +8484,7 @@ public final class ViewRootImpl implements ViewParent, mInsetsController.onControlsChanged(null); mAdded = false; + AnimationHandler.removeRequestor(this); } WindowManagerGlobal.getInstance().doRemoveView(this); } |