Merge "Apply root task for launch activity animation." into udc-dev

This commit is contained in:
Wei Sheng Shih
2023-05-11 08:52:24 +00:00
committed by Android (Google) Code Review

View File

@@ -508,6 +508,26 @@ class ActivityLaunchAnimator(
startAnimation(apps, nonApps, callback) startAnimation(apps, nonApps, callback)
} }
private fun findRootTaskIfPossible(
apps: Array<out RemoteAnimationTarget>?
): RemoteAnimationTarget? {
if (apps == null) {
return null
}
var candidate: RemoteAnimationTarget? = null
for (it in apps) {
if (it.mode == RemoteAnimationTarget.MODE_OPENING) {
if (it.taskInfo != null && !it.hasAnimatingParent) {
return it
}
if (candidate == null) {
candidate = it
}
}
}
return candidate
}
private fun startAnimation( private fun startAnimation(
apps: Array<out RemoteAnimationTarget>?, apps: Array<out RemoteAnimationTarget>?,
nonApps: Array<out RemoteAnimationTarget>?, nonApps: Array<out RemoteAnimationTarget>?,
@@ -517,8 +537,7 @@ class ActivityLaunchAnimator(
Log.d(TAG, "Remote animation started") Log.d(TAG, "Remote animation started")
} }
val window = apps?.firstOrNull { it.mode == RemoteAnimationTarget.MODE_OPENING } val window = findRootTaskIfPossible(apps)
if (window == null) { if (window == null) {
Log.i(TAG, "Aborting the animation as no window is opening") Log.i(TAG, "Aborting the animation as no window is opening")
removeTimeout() removeTimeout()