[Flexiglass] Fix QS AndroidView
This CL fixes two things: * After introducing collectAsStateWithLifecycle with a null default value for the view, this was causing the view (and a new QSImpl) to be created every time the shade was opened (because the lifecycle was started again). Instead, convert it into a StateFlow (as it should keep it's state beyond the composition) and use the collection without default. * After moving unsquishing to be a lambda, this lambda does not change when the animation change (only the returned value), this was cauing the StateFlow<State> in QSSceneAdapterImpl to conflate those values so the animation was not working. Instead, make those types of State to not be data classes so they are not conflated. Also, fix a leak where tiles were being re-added to a destroyed QSPanelControllerBase because the view was momentarily attached. After the controller is destroyed, no tiles should be added. We can't handle that in detach (as we used to before scene container) because the scene container may attach and detach the container AndroidView throughout its lifetime. Test: atest QSSceneAdapterImpl QSSceneAdapter Test: atest QSPanelControllerBaseTest Test: manual, expand shade and QS in regular and split shade Flag: com.android.systemui.scene_container Fixes: 341938306 Change-Id: Ia12f46546a7aa3dccb24e1be369895dfc9f1f67b
Loading
Please register or sign in to comment