<lambda>null1 package com.android.systemui.scene.ui.view
2
3 import android.content.Context
4 import android.util.AttributeSet
5 import android.view.View
6 import com.android.systemui.scene.shared.model.Scene
7 import com.android.systemui.scene.shared.model.SceneContainerConfig
8 import com.android.systemui.scene.ui.viewmodel.SceneContainerViewModel
9
10 /** A root view of the main SysUI window that supports scenes. */
11 class SceneWindowRootView(
12 context: Context,
13 attrs: AttributeSet?,
14 ) :
15 WindowRootView(
16 context,
17 attrs,
18 ) {
19
20 private lateinit var viewModel: SceneContainerViewModel
21
22 fun init(
23 viewModel: SceneContainerViewModel,
24 containerConfig: SceneContainerConfig,
25 scenes: Set<Scene>,
26 layoutInsetController: LayoutInsetsController,
27 ) {
28 this.viewModel = viewModel
29 setLayoutInsetsController(layoutInsetController)
30 SceneWindowRootViewBinder.bind(
31 view = this@SceneWindowRootView,
32 viewModel = viewModel,
33 containerConfig = containerConfig,
34 scenes = scenes,
35 onVisibilityChangedInternal = { isVisible ->
36 super.setVisibility(if (isVisible) View.VISIBLE else View.INVISIBLE)
37 }
38 )
39 }
40
41 override fun setVisibility(visibility: Int) {
42 // Do nothing. We don't want external callers to invoke this. Instead, we drive our own
43 // visibility from our view-binder.
44 }
45 }
46