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 Diff line number Diff line
@@ -73,7 +73,7 @@ internal class SceneGestureHandler(
    private val positionalThreshold
        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. */
    private var actionUpOrLeft: UserAction? = null
@@ -520,20 +520,22 @@ internal class SceneGestureHandler(
private class SceneDraggableHandler(
    private val gestureHandler: SceneGestureHandler,
) : DraggableHandler {
    private val source = this

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

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

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

        val source = this

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

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