[flexiglass] Compose version of KeyguardRootView.
1. In order to be able to take advantage of shared element transition
animations when switching between Flexiglass scenes, we need to have
an unbroken chain of @Composable functions from the root at
SceneContainer all the way down to the immediate parent of each of
those shared elements.
2. In order to enable that ability for media (UMO) on the
LockscreenScene, we must replace KeyguardRootView with an @Composable
equivalent, this CL does that.
3. Because Jetpack Compose doesn't come with built-in support for
ConstraintLayout (unless we take on a resource-heavy dependency on
Compose's ConstraintLayout) and because the performance and
readability benefits that ConstraintLayout brings to View-based code
are not applicable to Compose-based code, this CL also replaces the
existing blueprint/section ConstraintSet-dependent framework with a
new blueprint/section framework that's pure Compose.
4. As a demonstration, the CL includes the default blueprint
implementation and two real sections: status bar and bottom area. The
rest are rendered as placeholder color boxes but should be
relatively easy to add.
5. Finally, to switch between the KeyguardRootView implementation and
the new Compose-based implementation, set the UseLockscreenContent
constant in LockscreenScene.kt
Bug: 316211368
Test: manually verified that the default blueprint loosk more or less
correct (see https://screenshot.googleplex.com/64Y8NaTAHiFddYs for what
it looks like on a foldable).
Test: used the blueprint switching command adb shell cmd statusbar
blueprint to manually verify that switching between blueprints works and
goes to the other, placeholder/TODO blueprints as intended
Flag: ACONFIG com.android.systemui.scene_container DEVELOPMENT
Change-Id: Ife687d6f2a5fcb6680cc769d9d8e3aad05e63956
21 files changed