From 10e2ee9d4f105d9737b98b1caacf5e6ccb1c3c7d Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Wed, 5 Jul 2017 12:51:21 -0700 Subject: Remap color dark and fix up swipe --- .../ca/allanwang/kau/swipe/RelativeSlider.kt | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 core/src/main/kotlin/ca/allanwang/kau/swipe/RelativeSlider.kt (limited to 'core/src/main/kotlin/ca/allanwang/kau/swipe/RelativeSlider.kt') 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 + } +} -- cgit v1.2.3