Introduce STLState.currentTransitions: List<TransitionState>
This CL adds the foundation for interruptions in STL: multiple transitions can now run in parallel. This means that the state is now either Idle or List<Transition>. However, for backward compatibility, the old API is preserved and this CL exposes a new currentTransitions list that can be used by consumers that want to handle interruptions. For the current callers, STLState.currentTransition still represents the last/current transition and the behavior is unchanged. This is mostly a pure refactoring that should not have any impact on current usages, but there is an important change: transitions now *have to* call STLState.finishTransition() once they are finished, even if they are not the last/current transition. This change only impacts library STL code and not consumer code given that user code is not supposed to create custom Transitions (yet). This CL introduces a flag to disable interruptions. This flag is enabled by default so that the tests cover the new code, but it is explicitly disabled in current production usages (Flexiglass, Bouncer, Lockscreen, Communal). It is enabled by default in the STL demo app. See b/290930950#comment5 for more information about the upcoming interruptions support. Bug: 290930950 Test: atest SceneTransitionLayoutStateTest Test: Ran all STL tests with both values for the interruptions flag Flag: N/A Change-Id: Ia6669cc6d305b2f17ee9a805082f0b7bda56f06e
Loading
Please register or sign in to comment