Move SSD review interaction state updates to typed Kotlin
ober
cccd6956a5520ec074569accc441467a8f2a8f08
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4649,6 +4649,9 @@ reviewViewSetViewportState reviewViewSetViewportOffsets reviewViewSetScale reviewViewSetRotationDegrees reviewViewTranslateViewportOffsets + reviewViewSetPointerActive reviewViewSetMoved + reviewViewSetDragStart reviewViewSetDragEnd + reviewViewClearDragPoints reviewViewClearInteractionDetails mainActivitySelectGroupId mainActivityClearSession mainActivityShowSession mainActivitySetAppendMode mainActivitySetSsdAreaMode mainActivityClearInteractionModes @@ -4789,6 +4792,18 @@ (extern (reviewViewRotationDegreesSet (view : SsdReviewView) (degrees : Int32)) : Unit (kotlin-member-set rotationDegrees)) + (extern (reviewViewPointerActiveSet (view : SsdReviewView) + (active : Bool)) : Unit + (kotlin-member-set pointerActive)) + (extern (reviewViewMovedSet (view : SsdReviewView) + (moved : Bool)) : Unit + (kotlin-member-set moved)) + (extern (reviewViewDragStartSet (view : SsdReviewView) + (point : (Nullable FloatArray))) : Unit + (kotlin-member-set dragStart)) + (extern (reviewViewDragEndSet (view : SsdReviewView) + (point : (Nullable FloatArray))) : Unit + (kotlin-member-set dragEnd)) (extern (mainActivityCurrentSessionSet (activity : MainActivity) (session : (Nullable SsdSession))) : Unit @@ -5385,6 +5400,27 @@ view (+ offsetX deltaX) (+ offsetY deltaY))) + (def (reviewViewSetPointerActive (view : SsdReviewView) + (active : Bool)) : Unit + (reviewViewPointerActiveSet view active)) + (def (reviewViewSetMoved (view : SsdReviewView) + (moved : Bool)) : Unit + (reviewViewMovedSet view moved)) + (def (reviewViewSetDragStart (view : SsdReviewView) + (point : FloatArray)) : Unit + (reviewViewDragStartSet view (nullable-some point))) + (def (reviewViewSetDragEnd (view : SsdReviewView) + (point : FloatArray)) : Unit + (reviewViewDragEndSet view (nullable-some point))) + (def (reviewViewClearDragPoints (view : SsdReviewView)) : Unit + (begin + (reviewViewDragStartSet view (nullable-none FloatArray)) + (reviewViewDragEndSet view (nullable-none FloatArray)))) + (def (reviewViewClearInteractionDetails (view : SsdReviewView)) : Unit + (begin + (reviewViewClearDragPoints view) + (reviewViewSetPointerActive view #f) + (reviewViewSetMoved view #f))) (def (mainActivitySelectGroupId (activity : MainActivity) (view : SsdReviewView) (id : (Nullable String))) : Unit @@ -8793,12 +8829,12 @@ " internal var rotationDegrees = 0" " private var lastX = 0f" " private var lastY = 0f" - " private var dragStart: FloatArray? = null" - " private var dragEnd: FloatArray? = null" + " internal var dragStart: FloatArray? = null" + " internal var dragEnd: FloatArray? = null" " private var pointerX = 0f" " private var pointerY = 0f" - " private var pointerActive = false" - " private var moved = false" + " internal var pointerActive = false" + " internal var moved = false" "" " private val scaler = ScaleGestureDetector(context, object : ScaleGestureDetector.SimpleOnScaleGestureListener() {" " override fun onScale(detector: ScaleGestureDetector): Boolean {" @@ -8844,23 +8880,24 @@ " parent.requestDisallowInterceptTouchEvent(true)" " lastX = event.x" " lastY = event.y" - " moved = false" + " reviewViewSetMoved(this, false)" " if (touchSelectionActive(selectMode)) {" " pointerX = event.x" " pointerY = event.y" - " pointerActive = true" - " dragStart = selectionPoint(event)" - " dragEnd = dragStart" + " reviewViewSetPointerActive(this, true)" + " val startPoint = selectionPoint(event)" + " reviewViewSetDragStart(this, startPoint)" + " reviewViewSetDragEnd(this, startPoint)" " }" " } else if (motionActionIsMove(event.actionMasked, MotionEvent.ACTION_MOVE)) {" " val dx = event.x - lastX" " val dy = event.y - lastY" - " if (touchMoveExceeded(dx, dy)) moved = true" + " if (touchMoveExceeded(dx, dy)) reviewViewSetMoved(this, true)" " if (touchSelectionActive(selectMode)) {" " pointerX = event.x" " pointerY = event.y" - " pointerActive = true" - " dragEnd = selectionPoint(event)" + " reviewViewSetPointerActive(this, true)" + " reviewViewSetDragEnd(this, selectionPoint(event))" " } else if (touchPanReady(selectMode, scaler.isInProgress)) {" " reviewViewTranslateViewportOffsets(this, offsetX, offsetY, dx, dy)" " clampOffsets()" @@ -8882,7 +8919,7 @@ " }" " performClick()" " }" - " pointerActive = false" + " reviewViewSetPointerActive(this, false)" " parent.requestDisallowInterceptTouchEvent(false)" " }" " return true" @@ -8936,10 +8973,7 @@ "" " fun clearInteractionState() {" " reviewViewSetSelectMode(this, false, snapSelectionToCells)" - " dragStart = null" - " dragEnd = null" - " pointerActive = false" - " moved = false" + " reviewViewClearInteractionDetails(this)" " invalidate()" " }" "" @@ -8949,8 +8983,7 @@ " val start = nullableFloatArrayOrEmpty(dragStart)" " val end = nullableFloatArrayOrEmpty(dragEnd)" " val rect = normalizeRect(floatArrayOf(start[0], start[1], end[0], end[1]))" - " dragStart = null" - " dragEnd = null" + " reviewViewClearDragPoints(this)" " invalidate()" " val sess = session" " if (sessionMissing(sess)) {"