Ensure that participated activities are not omitted by ancestor
... when preparing transition targets. Previously, the first step of the calculation finds the top participant if possible, and once there is one, only the level above task will be added. Because it assumes that the parent of participant can represent it. But there are more than one participants belong to an ancestor, the descendants may have individual changes, so they should be still in the transition targets. Otherwise the animation may have nothing to do. Now all valid participants are added into the target lists, and then combine the targets from bottom to up based on depth. So it can be done in 1 pass (originally it requires 3 passes when launching a new task from home, 4 passes when starting recents). The population of ChangeInfo#mParent is moved after tryPromo so it can skip the targets which were removed, and the parent info can be updated in a single place. Bug: 213867980 Test: TransitionTests#testOpenActivityInTheSameTaskWithDisplayChange Test: adb shell setprop persist.debug.shell_transit 1; reboot Start a landscape activity from a portrait activity in the same task. The animation should not jump cut. Change-Id: I23a3326611dcb5664b204748280ae15b2377f318
Loading
Please register or sign in to comment