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

Commit fa123fd5 authored by Omar Miatello's avatar Omar Miatello Committed by Android (Google) Code Review
Browse files

Merge "SceneGestureHandler renamed gestureWithPriority to currentSource" into main

parents 313982dc efcd54b7
Loading
Loading
Loading
Loading
+12 −8
Original line number Original line Diff line number Diff line
@@ -73,7 +73,7 @@ internal class SceneGestureHandler(
    private val positionalThreshold
    private val positionalThreshold
        get() = with(layoutImpl.density) { 56.dp.toPx() }
        get() = with(layoutImpl.density) { 56.dp.toPx() }


    internal var gestureWithPriority: Any? = null
    internal var currentSource: Any? = null


    /** The [UserAction]s associated to the current swipe. */
    /** The [UserAction]s associated to the current swipe. */
    private var actionUpOrLeft: UserAction? = null
    private var actionUpOrLeft: UserAction? = null
@@ -520,20 +520,22 @@ internal class SceneGestureHandler(
private class SceneDraggableHandler(
private class SceneDraggableHandler(
    private val gestureHandler: SceneGestureHandler,
    private val gestureHandler: SceneGestureHandler,
) : DraggableHandler {
) : DraggableHandler {
    private val source = this

    override fun onDragStarted(startedPosition: Offset, overSlop: Float, pointersDown: Int) {
    override fun onDragStarted(startedPosition: Offset, overSlop: Float, pointersDown: Int) {
        gestureHandler.gestureWithPriority = this
        gestureHandler.currentSource = source
        gestureHandler.onDragStarted(pointersDown, startedPosition, overSlop)
        gestureHandler.onDragStarted(pointersDown, startedPosition, overSlop)
    }
    }


    override fun onDelta(pixels: Float) {
    override fun onDelta(pixels: Float) {
        if (gestureHandler.gestureWithPriority == this) {
        if (gestureHandler.currentSource == source) {
            gestureHandler.onDrag(delta = pixels)
            gestureHandler.onDrag(delta = pixels)
        }
        }
    }
    }


    override fun onDragStopped(velocity: Float) {
    override fun onDragStopped(velocity: Float) {
        if (gestureHandler.gestureWithPriority == this) {
        if (gestureHandler.currentSource == source) {
            gestureHandler.gestureWithPriority = null
            gestureHandler.currentSource = null
            gestureHandler.onDragStopped(velocity = velocity, canChangeScene = true)
            gestureHandler.onDragStopped(velocity = velocity, canChangeScene = true)
        }
        }
    }
    }
@@ -586,6 +588,8 @@ internal class SceneNestedScrollHandler(
            return nextScene != null
            return nextScene != null
        }
        }


        val source = this

        return PriorityNestedScrollConnection(
        return PriorityNestedScrollConnection(
            orientation = orientation,
            orientation = orientation,
            canStartPreScroll = { offsetAvailable, offsetBeforeStart ->
            canStartPreScroll = { offsetAvailable, offsetBeforeStart ->
@@ -656,7 +660,7 @@ internal class SceneNestedScrollHandler(
            canContinueScroll = { true },
            canContinueScroll = { true },
            canScrollOnFling = false,
            canScrollOnFling = false,
            onStart = { offsetAvailable ->
            onStart = { offsetAvailable ->
                gestureHandler.gestureWithPriority = this
                gestureHandler.currentSource = source
                gestureHandler.onDragStarted(
                gestureHandler.onDragStarted(
                    pointersDown = 1,
                    pointersDown = 1,
                    startedPosition = null,
                    startedPosition = null,
@@ -664,7 +668,7 @@ internal class SceneNestedScrollHandler(
                )
                )
            },
            },
            onScroll = { offsetAvailable ->
            onScroll = { offsetAvailable ->
                if (gestureHandler.gestureWithPriority != this) {
                if (gestureHandler.currentSource != source) {
                    return@PriorityNestedScrollConnection 0f
                    return@PriorityNestedScrollConnection 0f
                }
                }


@@ -675,7 +679,7 @@ internal class SceneNestedScrollHandler(
                offsetAvailable
                offsetAvailable
            },
            },
            onStop = { velocityAvailable ->
            onStop = { velocityAvailable ->
                if (gestureHandler.gestureWithPriority != this) {
                if (gestureHandler.currentSource != source) {
                    return@PriorityNestedScrollConnection 0f
                    return@PriorityNestedScrollConnection 0f
                }
                }