aboutsummaryrefslogtreecommitdiff
path: root/core-ui/src/main/kotlin/ca/allanwang/kau/ui/widgets/ElasticDragDismissFrameLayout.kt
diff options
context:
space:
mode:
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.kt9
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
)
}