Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d14e3019 authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Automerger Merge Worker
Browse files

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

Merge "Apply root task for launch activity animation." into udc-dev am: 181bcdba am: e2cdba05 am: 9ab1e19a

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



Change-Id: Ied277490ef71863f7fcadd9fb650d5adb62a1c9e
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 60469a62 9ab1e19a
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -508,6 +508,26 @@ class ActivityLaunchAnimator(
            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(
            apps: Array<out RemoteAnimationTarget>?,
            nonApps: Array<out RemoteAnimationTarget>?,
@@ -517,8 +537,7 @@ class ActivityLaunchAnimator(
                Log.d(TAG, "Remote animation started")
            }

            val window = apps?.firstOrNull { it.mode == RemoteAnimationTarget.MODE_OPENING }

            val window = findRootTaskIfPossible(apps)
            if (window == null) {
                Log.i(TAG, "Aborting the animation as no window is opening")
                removeTimeout()