Priority ordering for keyguard ConstraintSet transitions
To prevent transitions from fighting with each other, we assign each a
priority and only execute the highest priority transition when several
are triggered on the same frame.
Due to the ordering of animator updates and layout calls, we use a
ViewTreeObserver to assign the animation values. This prevents single
frame hiccups when layouts are unexpectedly triggered during a
transition (such as those from Smartspace).
There are still some odd animation hiccups possible here, particularly
from simultaneous smartspace transitions. It mostly looks okay, but due
to the inconsisntent timing of when smartspace decides to hide, the
interaction between these transitions is somewhat unpredictictable. We
may need a way to update SmartspaceMoveTransition while it's running.
Bug: 322196219
Test: atest com.android.systemui.keyguard
Test: manual; spotify playing splitshade LS <-> AOD
Flag: ACONFIG com.android.systemui.migrate_clocks_to_blueprint DEVELOPMENT
Change-Id: I31968ed495cba85464f422defaf197267478bf3b
19 files changed