summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewRootImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
-rw-r--r--core/java/android/view/ViewRootImpl.java16
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);
}