aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-06-04 10:45:23 -0700
committerAllan Wang <me@allanwang.ca>2017-06-04 10:45:23 -0700
commit4b78e433e1f55b278623c84d1223e42cab875be6 (patch)
tree5c443851d2bd181d63148474be0f7e8bf8f4ff6c /app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt
parent6fa685433e23ce56286c3fbcae9cf1ef7a1a6e68 (diff)
downloadfrost-4b78e433e1f55b278623c84d1223e42cab875be6.tar.gz
frost-4b78e433e1f55b278623c84d1223e42cab875be6.tar.bz2
frost-4b78e433e1f55b278623c84d1223e42cab875be6.zip
Create activity refresh observable
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt29
1 files changed, 27 insertions, 2 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt
index 34fd4509..ab9a6209 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt
@@ -1,5 +1,6 @@
package com.pitchedapps.frost.web
+import android.animation.ValueAnimator
import android.annotation.SuppressLint
import android.content.Context
import android.support.v4.view.MotionEventCompat
@@ -9,13 +10,14 @@ import android.support.v4.view.ViewCompat
import android.util.AttributeSet
import android.view.MotionEvent
import android.view.View
+import android.view.animation.DecelerateInterpolator
import android.webkit.WebView
import com.pitchedapps.frost.events.FbAccountEvent
+import com.pitchedapps.frost.utils.L
import io.reactivex.Scheduler
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.subjects.BehaviorSubject
-import io.reactivex.subjects.Subject
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@@ -54,7 +56,7 @@ class FrostWebViewCore @JvmOverloads constructor(
@SuppressLint("SetJavaScriptEnabled")
fun setupWebview() {
settings.javaScriptEnabled = true
- settings.domStorageEnabled = true
+// settings.domStorageEnabled = true
setLayerType(View.LAYER_TYPE_HARDWARE, null)
setWebViewClient(FrostWebViewClient(refreshObservable))
setWebChromeClient(FrostChromeClient(progressObservable, titleObservable))
@@ -120,6 +122,29 @@ class FrostWebViewCore @JvmOverloads constructor(
super.onDetachedFromWindow()
}
+ /**
+ * If webview is already at the top, refresh
+ * Otherwise scroll to top
+ */
+ fun scrollOrRefresh() {
+ L.d("Scroll or Refresh")
+ if (scrollY < 5) reload()
+ else scrollToTop()
+ }
+
+ fun scrollToTop() {
+ if (scrollY > 1000) scrollTo(0, 0)
+ else {
+ val animator = ValueAnimator.ofInt(scrollY, 0)
+ animator.duration = scrollY.toLong()
+ animator.interpolator = DecelerateInterpolator()
+ animator.addUpdateListener {
+ scrollY = it.animatedValue as Int
+ invalidate()
+ }
+ }
+ }
+
@Subscribe(threadMode = ThreadMode.MAIN)
fun webEvent(event: FbAccountEvent) = event.execute(this)