From bd96905dbfa6c1d4bde4257d61f381d4ee8e1fd0 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Fri, 22 Dec 2017 01:51:43 -0500 Subject: Update webview components (#571) * Add volume binding * Remove key override * Add pause timers to webview --- .../com/pitchedapps/frost/views/FrostWebView.kt | 26 +++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'app/src/main/kotlin/com/pitchedapps/frost/views') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/views/FrostWebView.kt b/app/src/main/kotlin/com/pitchedapps/frost/views/FrostWebView.kt index e6e1f0e2..0d04fcd9 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/views/FrostWebView.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/views/FrostWebView.kt @@ -6,7 +6,7 @@ import android.content.Context import android.graphics.Color import android.util.AttributeSet import android.view.View -import android.view.animation.DecelerateInterpolator +import ca.allanwang.kau.utils.AnimHolder import com.pitchedapps.frost.contracts.FrostContentContainer import com.pitchedapps.frost.contracts.FrostContentCore import com.pitchedapps.frost.contracts.FrostContentParent @@ -106,23 +106,29 @@ class FrostWebView @JvmOverloads constructor( private fun scrollToTop() { flingScroll(0, 0) // stop fling - if (scrollY > 10000) { + if (scrollY > 10000) scrollTo(0, 0) - } else { - ValueAnimator.ofInt(scrollY, 0).apply { - duration = Math.min(scrollY, 500).toLong() - interpolator = DecelerateInterpolator() - addUpdateListener { scrollY = it.animatedValue as Int } - start() - } + else + smoothScrollTo(0) + } + + private fun smoothScrollTo(y: Int) { + ValueAnimator.ofInt(scrollY, y).apply { + duration = Math.min(Math.abs(scrollY - y), 500).toLong() + interpolator = AnimHolder.fastOutSlowInInterpolator(context) + addUpdateListener { scrollY = it.animatedValue as Int } + start() } } + private fun smoothScrollBy(y: Int) = smoothScrollTo(Math.max(0, scrollY + y)) + override var active: Boolean = true set(value) { if (field == value) return field = value - // todo + if (field) onResume() + else onPause() } override fun reloadTheme() { -- cgit v1.2.3