diff options
| author | 2022-12-02 18:21:59 +0000 | |
|---|---|---|
| committer | 2022-12-02 18:21:59 +0000 | |
| commit | e418cf34da35c2031e7668ec8c9f2fba25be0ee1 (patch) | |
| tree | 2a8530bcfa1d8e1e6e70e420cf6737ac689385a1 | |
| parent | 2b337565477708457376b7d1b296a676f41b1509 (diff) | |
| parent | ed1949c97189ccfc52df5bade39a0d57e500e21b (diff) | |
Merge "Handle ActivityEmbedding container in remote transition adapter" into tm-qpr-dev am: ed1949c971
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20546830
Change-Id: I3696bcede29fbc12e77c1e438310b495be600cd4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | packages/SystemUI/animation/src/com/android/systemui/animation/RemoteTransitionAdapter.kt | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/RemoteTransitionAdapter.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/RemoteTransitionAdapter.kt index 43bfa74119b3..0e2d23b04a4f 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/animation/RemoteTransitionAdapter.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/RemoteTransitionAdapter.kt @@ -195,8 +195,16 @@ class RemoteTransitionAdapter { val out = ArrayList<RemoteAnimationTarget>() for (i in info.changes.indices) { val change = info.changes[i] - val changeIsWallpaper = change.flags and TransitionInfo.FLAG_IS_WALLPAPER != 0 - if (wallpapers != changeIsWallpaper) continue + if (change.hasFlags(TransitionInfo.FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY)) { + // For embedded container, when the parent Task is also in the transition, we + // should only animate the parent Task. + if (change.parent != null) continue + // For embedded container without parent, we should only animate if it fills + // the Task. Otherwise we may animate only partial of the Task. + if (!change.hasFlags(TransitionInfo.FLAG_FILLS_TASK)) continue + } + // Check if it is wallpaper + if (wallpapers != change.hasFlags(TransitionInfo.FLAG_IS_WALLPAPER)) continue out.add(createTarget(change, info.changes.size - i, info, t)) if (leashMap != null) { leashMap[change.leash] = out[out.size - 1].leash |