Merge "Don't schedule SurfaceControl transaction if it is not valid" into tm-d1-dev am: e0c7fee38b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19340858

Change-Id: If3075cee2fee1e48311ac4b239cf566fd659cce5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jordan Demeulenaere
2022-07-25 15:27:30 +00:00
committed by Automerger Merge Worker

View File

@@ -494,9 +494,10 @@ class ActivityLaunchAnimator(
} }
private fun applyStateToWindow(window: RemoteAnimationTarget, state: LaunchAnimator.State) { private fun applyStateToWindow(window: RemoteAnimationTarget, state: LaunchAnimator.State) {
if (transactionApplierView.viewRootImpl == null) { if (transactionApplierView.viewRootImpl == null || !window.leash.isValid) {
// If the view root we synchronize with was detached, don't apply any transaction // Don't apply any transaction if the view root we synchronize with was detached or
// (as [SyncRtSurfaceTransactionApplier.scheduleApply] would otherwise throw). // if the SurfaceControl associated with [window] is not valid, as
// [SyncRtSurfaceTransactionApplier.scheduleApply] would otherwise throw.
return return
} }
@@ -557,9 +558,10 @@ class ActivityLaunchAnimator(
state: LaunchAnimator.State, state: LaunchAnimator.State,
linearProgress: Float linearProgress: Float
) { ) {
if (transactionApplierView.viewRootImpl == null) { if (transactionApplierView.viewRootImpl == null || !navigationBar.leash.isValid) {
// If the view root we synchronize with was detached, don't apply any transaction // Don't apply any transaction if the view root we synchronize with was detached or
// (as [SyncRtSurfaceTransactionApplier.scheduleApply] would otherwise throw). // if the SurfaceControl associated with [navigationBar] is not valid, as
// [SyncRtSurfaceTransactionApplier.scheduleApply] would otherwise throw.
return return
} }