diff options
Diffstat (limited to 'core-ui/src/main/kotlin/ca/allanwang/kau/ui/widgets/ElasticDragDismissFrameLayout.kt')
-rw-r--r-- | core-ui/src/main/kotlin/ca/allanwang/kau/ui/widgets/ElasticDragDismissFrameLayout.kt | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/core-ui/src/main/kotlin/ca/allanwang/kau/ui/widgets/ElasticDragDismissFrameLayout.kt b/core-ui/src/main/kotlin/ca/allanwang/kau/ui/widgets/ElasticDragDismissFrameLayout.kt index 6095a32..ab0e464 100644 --- a/core-ui/src/main/kotlin/ca/allanwang/kau/ui/widgets/ElasticDragDismissFrameLayout.kt +++ b/core-ui/src/main/kotlin/ca/allanwang/kau/ui/widgets/ElasticDragDismissFrameLayout.kt @@ -34,6 +34,9 @@ import ca.allanwang.kau.utils.navigationBarColor import ca.allanwang.kau.utils.scaleXY import ca.allanwang.kau.utils.statusBarColor import ca.allanwang.kau.utils.withAlpha +import kotlin.math.abs +import kotlin.math.log10 +import kotlin.math.min /** * A [FrameLayout] which responds to nested scrolls to create drag-dismissable layouts. @@ -136,7 +139,7 @@ class ElasticDragDismissFrameLayout @JvmOverloads constructor( } override fun onStopNestedScroll(child: View) { - if (Math.abs(totalDrag) >= dragDismissDistance) { + if (abs(totalDrag) >= dragDismissDistance) { dispatchDismissCallback() } else { // settle back to natural position @@ -192,7 +195,7 @@ class ElasticDragDismissFrameLayout @JvmOverloads constructor( } // how far have we dragged relative to the distance to perform a dismiss // (0–1 where 1 = dismiss distance). Decreasing logarithmically as we approach the limit - var dragFraction = Math.log10((1 + Math.abs(totalDrag) / dragDismissDistance).toDouble()).toFloat() + var dragFraction = log10((1 + abs(totalDrag) / dragDismissDistance).toDouble()).toFloat() // calculate the desired translation given the drag fraction var dragTo = dragFraction * dragDismissDistance * dragElacticity @@ -221,7 +224,7 @@ class ElasticDragDismissFrameLayout @JvmOverloads constructor( } dispatchDragCallback( dragFraction, dragTo, - Math.min(1f, Math.abs(totalDrag) / dragDismissDistance), totalDrag + min(1f, abs(totalDrag) / dragDismissDistance), totalDrag ) } |