Consider last parent when compose transition.
First, the transition root was select based on lastest hierarchy, so if
any leaf task has reparent to display area when transition start, the
original root task would be ignored when calculate transition root.
In the result the original root task and other non-involved transition
windows can be occlude during animation, and put in wrong position.
Consider the last parent when calculate transition root can correct
this symptom.
Second, the WindowState will update it's surface position during
configuration change, but that should be uncessary since the position
is depends on WindowFrame, so the correct position should only valid
after relayout happen.
Third, when a leaf task reparent to display area, the root task can
become invisible before previous task become visible, which causing a
flicker. Fix this by don't change the visible status if the task is
created by organizer during collecting.
Bug: 282883902
Test: follow issue description, verify the close target won't become
black, and the enter/exit app animation played as expected.
Test: enter/exit mulit layer strcutre like split and pip.
Change-Id: Ib5ab9b3c8bf78e3ae60c053552adb277d1ad6455
3 files changed