Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class FlingGestureHandler : GestureHandler() {

private val maxDurationMs = DEFAULT_MAX_DURATION_MS
private val minVelocity = DEFAULT_MIN_VELOCITY
private var handler: Handler? = null
private val handler = Handler(Looper.getMainLooper())
private var maxNumberOfPointersSimultaneously = 0
private val failDelayed = Runnable { fail() }
private var velocityTracker: VelocityTracker? = null
Expand All @@ -29,12 +29,8 @@ class FlingGestureHandler : GestureHandler() {
velocityTracker = VelocityTracker.obtain()
begin()
maxNumberOfPointersSimultaneously = 1
if (handler == null) {
handler = Handler(Looper.getMainLooper()) // lazy delegate?
} else {
handler!!.removeCallbacksAndMessages(null)
}
handler!!.postDelayed(failDelayed, maxDurationMs)
handler.removeCallbacksAndMessages(null)
handler.postDelayed(failDelayed, maxDurationMs)
}

private fun tryEndFling(event: MotionEvent): Boolean {
Expand Down Expand Up @@ -69,7 +65,7 @@ class FlingGestureHandler : GestureHandler() {
isAligned &&
isFast
) {
handler!!.removeCallbacksAndMessages(null)
handler.removeCallbacksAndMessages(null)
activate()
true
} else {
Expand Down Expand Up @@ -109,13 +105,13 @@ class FlingGestureHandler : GestureHandler() {
}

override fun onCancel() {
handler?.removeCallbacksAndMessages(null)
handler.removeCallbacksAndMessages(null)
}

override fun onReset() {
velocityTracker?.recycle()
velocityTracker = null
handler?.removeCallbacksAndMessages(null)
handler.removeCallbacksAndMessages(null)
}

private fun addVelocityMovement(tracker: VelocityTracker?, event: MotionEvent) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import com.swmansion.gesturehandler.react.events.eventbuilders.HoverGestureHandl
class HoverGestureHandler : GestureHandler() {
override val isContinuous = true

private var handler: Handler? = null
private val handler = Handler(Looper.getMainLooper())
private var finishRunnable = Runnable { finish() }
var stylusData: StylusData = StylusData()
private set
Expand Down Expand Up @@ -85,8 +85,7 @@ class HoverGestureHandler : GestureHandler() {

override fun onHandle(event: MotionEvent, sourceEvent: MotionEvent) {
if (event.action == MotionEvent.ACTION_DOWN) {
handler?.removeCallbacksAndMessages(null)
handler = null
handler.removeCallbacksAndMessages(null)
} else if (event.action == MotionEvent.ACTION_UP) {
if (!isWithinBounds) {
finish()
Expand All @@ -97,11 +96,9 @@ class HoverGestureHandler : GestureHandler() {
override fun onHandleHover(event: MotionEvent, sourceEvent: MotionEvent) {
when {
event.action == MotionEvent.ACTION_HOVER_EXIT -> {
if (handler == null) {
handler = Handler(Looper.getMainLooper())
}

handler!!.postDelayed(finishRunnable, 4)
// Touching down synthesizes HOVER_EXIT right before ACTION_DOWN, so finish
// with a slight delay - the DOWN cancels it and hover survives the press.
handler.postDelayed(finishRunnable, 4)
}

!isWithinBounds -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class LongPressGestureHandler(context: Context) : GestureHandler() {
private var startY = 0f
private var startTime: Long = 0
private var previousTime: Long = 0
private var handler: Handler? = null
private val handler = Handler(Looper.getMainLooper())
private var currentPointers = 0

init {
Expand Down Expand Up @@ -112,9 +112,9 @@ class LongPressGestureHandler(context: Context) : GestureHandler() {
sourceEvent.actionMasked == MotionEvent.ACTION_BUTTON_PRESS
)
) {
handler = Handler(Looper.getMainLooper())
handler.removeCallbacksAndMessages(null)
if (minDurationMs > 0) {
handler!!.postDelayed({ activate() }, minDurationMs)
handler.postDelayed({ activate() }, minDurationMs)
} else if (minDurationMs == 0L) {
activate()
}
Expand All @@ -124,10 +124,7 @@ class LongPressGestureHandler(context: Context) : GestureHandler() {
) {
currentPointers--

handler?.let {
it.removeCallbacksAndMessages(null)
handler = null
}
handler.removeCallbacksAndMessages(null)

if (state == STATE_ACTIVE) {
end()
Expand Down Expand Up @@ -164,10 +161,7 @@ class LongPressGestureHandler(context: Context) : GestureHandler() {
}

override fun onStateChange(newState: Int, previousState: Int) {
handler?.let {
it.removeCallbacksAndMessages(null)
handler = null
}
handler.removeCallbacksAndMessages(null)
}

override fun dispatchStateChange(newState: Int, prevState: Int) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class PanGestureHandler(context: Context?) : GestureHandler() {
private var averageTouches = false
private var activateAfterLongPress = DEFAULT_ACTIVATE_AFTER_LONG_PRESS
private val activateDelayed = Runnable { activate() }
private var handler: Handler? = null
private val handler = Handler(Looper.getMainLooper())
var stylusData: StylusData = StylusData()
private set

Expand Down Expand Up @@ -140,7 +140,7 @@ class PanGestureHandler(context: Context?) : GestureHandler() {
val dy = lastY - startY + offsetY

if (activateAfterLongPress > 0 && dx * dx + dy * dy > defaultMinDist * defaultMinDist) {
handler?.removeCallbacksAndMessages(null)
handler.removeCallbacksAndMessages(null)
return true
}
if (failOffsetXStart != MAX_VALUE_IGNORE && dx < failOffsetXStart) {
Expand Down Expand Up @@ -200,10 +200,7 @@ class PanGestureHandler(context: Context?) : GestureHandler() {
begin()

if (activateAfterLongPress > 0) {
if (handler == null) {
handler = Handler(Looper.getMainLooper())
}
handler!!.postDelayed(activateDelayed, activateAfterLongPress)
handler.postDelayed(activateDelayed, activateAfterLongPress)
}
} else if (velocityTracker != null) {
addVelocityMovement(velocityTracker, sourceEvent)
Expand Down Expand Up @@ -252,11 +249,11 @@ class PanGestureHandler(context: Context?) : GestureHandler() {
}

override fun onCancel() {
handler?.removeCallbacksAndMessages(null)
handler.removeCallbacksAndMessages(null)
}

override fun onReset() {
handler?.removeCallbacksAndMessages(null)
handler.removeCallbacksAndMessages(null)
velocityTracker?.let {
it.recycle()
velocityTracker = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class TapGestureHandler : GestureHandler() {
private var offsetY = 0f
private var lastX = 0f
private var lastY = 0f
private var handler: Handler? = null
private val handler = Handler(Looper.getMainLooper())
private var tapsSoFar = 0
private val failDelayed = Runnable { fail() }

Expand All @@ -47,24 +47,16 @@ class TapGestureHandler : GestureHandler() {
}

private fun startTap() {
if (handler == null) {
handler = Handler(Looper.getMainLooper()) // TODO: lazy init (handle else branch correctly)
} else {
handler!!.removeCallbacksAndMessages(null)
}
handler!!.postDelayed(failDelayed, maxDurationMs)
handler.removeCallbacksAndMessages(null)
handler.postDelayed(failDelayed, maxDurationMs)
}

private fun endTap() {
if (handler == null) {
handler = Handler(Looper.getMainLooper())
} else {
handler!!.removeCallbacksAndMessages(null)
}
handler.removeCallbacksAndMessages(null)
if (++tapsSoFar == numberOfTaps && currentMaxNumberOfPointers >= minNumberOfPointers) {
activate()
} else {
handler!!.postDelayed(failDelayed, maxDelayMs)
handler.postDelayed(failDelayed, maxDelayMs)
}
}

Expand Down Expand Up @@ -139,13 +131,13 @@ class TapGestureHandler : GestureHandler() {
}

override fun onCancel() {
handler?.removeCallbacksAndMessages(null)
handler.removeCallbacksAndMessages(null)
}

override fun onReset() {
tapsSoFar = 0
currentMaxNumberOfPointers = 0
handler?.removeCallbacksAndMessages(null)
handler.removeCallbacksAndMessages(null)
}

class Factory : GestureHandler.Factory<TapGestureHandler>() {
Expand Down
Loading