Loading packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainer.kt +1 −18 Original line number Diff line number Diff line Loading @@ -30,9 +30,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.PointerEventPass import androidx.compose.ui.input.pointer.motionEventSpy import androidx.compose.ui.input.pointer.pointerInput import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.compose.animation.scene.MutableSceneTransitionLayoutState import com.android.compose.animation.scene.SceneKey Loading Loading @@ -94,21 +91,7 @@ fun SceneContainer( Box( modifier = Modifier.fillMaxSize(), ) { SceneTransitionLayout( state = state, modifier = modifier .fillMaxSize() .motionEventSpy { event -> viewModel.onMotionEvent(event) } .pointerInput(Unit) { awaitPointerEventScope { while (true) { awaitPointerEvent(PointerEventPass.Final) viewModel.onMotionEventComplete() } } } ) { SceneTransitionLayout(state = state, modifier = modifier.fillMaxSize()) { sceneByKey.forEach { (sceneKey, composableScene) -> scene( key = sceneKey, Loading packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootView.kt +14 −0 Original line number Diff line number Diff line Loading @@ -2,12 +2,14 @@ package com.android.systemui.scene.ui.view import android.content.Context import android.util.AttributeSet import android.view.MotionEvent import android.view.View import android.view.WindowInsets import com.android.systemui.scene.shared.model.Scene import com.android.systemui.scene.shared.model.SceneContainerConfig import com.android.systemui.scene.shared.model.SceneDataSourceDelegator import com.android.systemui.scene.ui.viewmodel.SceneContainerViewModel import com.android.systemui.shade.TouchLogger import com.android.systemui.statusbar.notification.stack.ui.view.SharedNotificationContainer import kotlinx.coroutines.flow.MutableStateFlow Loading Loading @@ -60,4 +62,16 @@ class SceneWindowRootView( this.windowInsets.value = windowInsets return windowInsets } override fun dispatchTouchEvent(ev: MotionEvent): Boolean { viewModel.onMotionEvent(ev) return super.dispatchTouchEvent(ev).also { TouchLogger.logDispatchTouch(TAG, ev, it) viewModel.onMotionEventComplete() } } companion object { private const val TAG = "SceneWindowRootView" } } Loading
packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/SceneContainer.kt +1 −18 Original line number Diff line number Diff line Loading @@ -30,9 +30,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.PointerEventPass import androidx.compose.ui.input.pointer.motionEventSpy import androidx.compose.ui.input.pointer.pointerInput import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.compose.animation.scene.MutableSceneTransitionLayoutState import com.android.compose.animation.scene.SceneKey Loading Loading @@ -94,21 +91,7 @@ fun SceneContainer( Box( modifier = Modifier.fillMaxSize(), ) { SceneTransitionLayout( state = state, modifier = modifier .fillMaxSize() .motionEventSpy { event -> viewModel.onMotionEvent(event) } .pointerInput(Unit) { awaitPointerEventScope { while (true) { awaitPointerEvent(PointerEventPass.Final) viewModel.onMotionEventComplete() } } } ) { SceneTransitionLayout(state = state, modifier = modifier.fillMaxSize()) { sceneByKey.forEach { (sceneKey, composableScene) -> scene( key = sceneKey, Loading
packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootView.kt +14 −0 Original line number Diff line number Diff line Loading @@ -2,12 +2,14 @@ package com.android.systemui.scene.ui.view import android.content.Context import android.util.AttributeSet import android.view.MotionEvent import android.view.View import android.view.WindowInsets import com.android.systemui.scene.shared.model.Scene import com.android.systemui.scene.shared.model.SceneContainerConfig import com.android.systemui.scene.shared.model.SceneDataSourceDelegator import com.android.systemui.scene.ui.viewmodel.SceneContainerViewModel import com.android.systemui.shade.TouchLogger import com.android.systemui.statusbar.notification.stack.ui.view.SharedNotificationContainer import kotlinx.coroutines.flow.MutableStateFlow Loading Loading @@ -60,4 +62,16 @@ class SceneWindowRootView( this.windowInsets.value = windowInsets return windowInsets } override fun dispatchTouchEvent(ev: MotionEvent): Boolean { viewModel.onMotionEvent(ev) return super.dispatchTouchEvent(ev).also { TouchLogger.logDispatchTouch(TAG, ev, it) viewModel.onMotionEventComplete() } } companion object { private const val TAG = "SceneWindowRootView" } }