fix: Swipy (#506)

This commit is contained in:
Dawn-used-yeet 2024-10-29 13:04:34 +05:30 committed by GitHub
parent 652ef219dd
commit f191502a97
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -159,22 +159,20 @@ class Swipy @JvmOverloads constructor(
} }
private fun handleDrag(pos: Float) { private fun handleDrag(pos: Float) {
val overscroll = (pos - initialMotion) * DRAG_RATE val overscroll = abs((pos - initialMotion) * DRAG_RATE)
if (overscroll > 0) { // Keep this check parent.requestDisallowInterceptTouchEvent(true)
parent.requestDisallowInterceptTouchEvent(true) if (vertical) {
if (vertical) { val totalDragDistance = Resources.getSystem().displayMetrics.heightPixels / dragDivider
val totalDragDistance = Resources.getSystem().displayMetrics.heightPixels / dragDivider if (verticalPos == VerticalPosition.Top)
if (verticalPos == VerticalPosition.Top) topBeingSwiped.invoke(overscroll * 2 / totalDragDistance)
topBeingSwiped.invoke(overscroll * 2 / totalDragDistance) else
else bottomBeingSwiped.invoke(overscroll * 2 / totalDragDistance)
bottomBeingSwiped.invoke(overscroll * 2 / totalDragDistance) } else {
} else { val totalDragDistance = Resources.getSystem().displayMetrics.widthPixels / dragDivider
val totalDragDistance = Resources.getSystem().displayMetrics.widthPixels / dragDivider if (horizontalPos == HorizontalPosition.Left)
if (horizontalPos == HorizontalPosition.Left) leftBeingSwiped.invoke(overscroll / totalDragDistance)
leftBeingSwiped.invoke(overscroll / totalDragDistance) else
else rightBeingSwiped.invoke(overscroll / totalDragDistance)
rightBeingSwiped.invoke(overscroll / totalDragDistance)
}
} }
} }
@ -183,7 +181,7 @@ class Swipy @JvmOverloads constructor(
topBeingSwiped.invoke(0f) topBeingSwiped.invoke(0f)
bottomBeingSwiped.invoke(0f) bottomBeingSwiped.invoke(0f)
} else { } else {
rightBeingSwiped.invoke( 0f) rightBeingSwiped.invoke(0f)
leftBeingSwiped.invoke(0f) leftBeingSwiped.invoke(0f)
} }
} }