Extensive handling of fixed rotation launching app
This fixes a case that display does not rotate after multiple
activities in a different rotation than display are launched.
- Link the transform state from the existing one to the new
launching activity. So the heavy duplicated calculation is
omitted and they can be recognized as a group to continue
to update display rotation.
- Add a dedicated transition listener so it will not miss to
handle display rotation if the reported token is different.
That avoids leakage if somehow the transition is not notified
then the listener is not unregistered. The path to finish
fixed rotation is also simplified because there is always a
transition listener to handle the incoming record.
Fixes: 154911677
Test: atest DisplayContentTests#testApplyTopFixedRotationTransform
Change-Id: Id370d7980d11553905b6a051482e3765ed61dc39
5 files changed