Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 987a983d authored by Prince's avatar Prince
Browse files

Enabling swiping multiple umo

Fixes: 341319629
Test: device tested
Flag: NONE small UI changes
Change-Id: Iccdfe224d70702fa5d23972f10e603c1b79b7b11
parent 4f76b942
Loading
Loading
Loading
Loading
+30 −9
Original line number Diff line number Diff line
@@ -19,7 +19,9 @@ package com.android.systemui.communal.ui.compose
import android.content.Context
import android.content.res.Configuration
import android.graphics.drawable.Icon
import android.os.SystemClock
import android.util.SizeF
import android.view.MotionEvent
import android.widget.FrameLayout
import android.widget.RemoteViews
import androidx.annotation.VisibleForTesting
@@ -40,6 +42,7 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.focusable
import androidx.compose.foundation.gestures.awaitFirstDown
import androidx.compose.foundation.gestures.detectHorizontalDragGestures
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -1380,17 +1383,35 @@ private fun TutorialContent(modifier: Modifier = Modifier) {
@Composable
private fun Umo(viewModel: BaseCommunalViewModel, modifier: Modifier = Modifier) {
    AndroidView(
        modifier = modifier,
        factory = {
            viewModel.mediaHost.hostView.layoutParams =
        modifier =
            modifier.pointerInput(Unit) {
                detectHorizontalDragGestures { change, _ ->
                    change.consume()
                    val upTime = SystemClock.uptimeMillis()
                    val event =
                        MotionEvent.obtain(
                            upTime,
                            upTime,
                            MotionEvent.ACTION_MOVE,
                            change.position.x,
                            change.position.y,
                            0
                        )
                    viewModel.mediaHost.hostView.dispatchTouchEvent(event)
                    event.recycle()
                }
            },
        factory = { _ ->
            viewModel.mediaHost.hostView.apply {
                layoutParams =
                    FrameLayout.LayoutParams(
                        FrameLayout.LayoutParams.MATCH_PARENT,
                        FrameLayout.LayoutParams.MATCH_PARENT
                    )
            }
            viewModel.mediaHost.hostView
        },
        // For reusing composition in lazy lists.
        onReset = {},
        onReset = {}
    )
}