PIP: Fix potential stuck state

Fixes an issue where the leave-PIP-animation could be erroneously
canceled and replaced with one that does not leave PIP. This happens
for example when launching a notification that restarts the PIP task
and maximizes it, if that notification is launched from the lockscreen
with a password set.

The task is animating out of PIP, but concurrently, a move animation
is scheduled because the IME that was up for the password is being
dismissed. If the order is such that the leave-PIP-animation is scheduled
first, the task will never be reparented out of PIP.

To fix that, we maintain the to/fromFullscreen flags when recreating the
animation.

Change-Id: I79d6d1907fcb25561d87b746cfb054f230d9d7b9
Fixes: 77334925
Test: Set lockscreen password (not PIN/Pattern). Open PIP app that has a notification from which it can be relaunched. Enter PIP. Lock screen. Relaunch PIP app from lockscreen notification. Verify things look appropriate after unlocking.
Test: atest BoundsAnimationControllerTests
2 files changed