aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/ca/allanwang/kau/swipe/RelativeSlider.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-07-05 12:51:21 -0700
committerAllan Wang <me@allanwang.ca>2017-07-05 12:51:21 -0700
commit10e2ee9d4f105d9737b98b1caacf5e6ccb1c3c7d (patch)
tree81f2976a43b65a28c428b1ae60a62888e573a756 /core/src/main/kotlin/ca/allanwang/kau/swipe/RelativeSlider.kt
parent4e254b4b983b8531193c02852d2866a876d8cfcf (diff)
downloadkau-10e2ee9d4f105d9737b98b1caacf5e6ccb1c3c7d.tar.gz
kau-10e2ee9d4f105d9737b98b1caacf5e6ccb1c3c7d.tar.bz2
kau-10e2ee9d4f105d9737b98b1caacf5e6ccb1c3c7d.zip
Remap color dark and fix up swipe
Diffstat (limited to 'core/src/main/kotlin/ca/allanwang/kau/swipe/RelativeSlider.kt')
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/swipe/RelativeSlider.kt36
1 files changed, 36 insertions, 0 deletions
diff --git a/core/src/main/kotlin/ca/allanwang/kau/swipe/RelativeSlider.kt b/core/src/main/kotlin/ca/allanwang/kau/swipe/RelativeSlider.kt
new file mode 100644
index 0000000..ee86ff2
--- /dev/null
+++ b/core/src/main/kotlin/ca/allanwang/kau/swipe/RelativeSlider.kt
@@ -0,0 +1,36 @@
+package ca.allanwang.kau.swipe
+
+import ca.allanwang.kau.kotlin.nonReadable
+
+/**
+ * Created by Mr.Jude on 2015/8/26.
+ */
+class RelativeSlider(var curPage: SwipeBackPage) : SwipeListener {
+
+ var offset = 0f
+
+ var enabled: Boolean
+ @Deprecated(level = DeprecationLevel.ERROR, message = "Cannot use enabled as getter")
+ get() = nonReadable()
+ set(value) {
+ if (value) curPage.addListener(this)
+ else curPage.removeListener(this)
+ }
+
+ override fun onScroll(percent: Float, px: Int) {
+ if (offset == 0f) return //relative slider is not enabled
+ val page = SwipeBackHelper.getPrePage(curPage) ?: return
+ page.swipeBackLayout.x = Math.min(-offset * Math.max(1 - percent, 0f) + DEFAULT_OFFSET, 0f)
+ if (percent == 0f) page.swipeBackLayout.x = 0f
+ }
+
+ override fun onEdgeTouch() {}
+
+ override fun onScrollToClose() {
+ SwipeBackHelper.getPrePage(curPage)?.swipeBackLayout?.x = 0f
+ }
+
+ companion object {
+ private const val DEFAULT_OFFSET = 40
+ }
+}