diff options
author | Allan Wang <me@allanwang.ca> | 2017-06-16 12:21:12 -0700 |
---|---|---|
committer | Allan Wang <me@allanwang.ca> | 2017-06-16 12:21:12 -0700 |
commit | 87e7e132a060e235d434a9ef44ae0363d7ef660b (patch) | |
tree | ba78c3240c6e4c0bf4ad43692f8625bc7f964a75 /app/src/main/kotlin/com/pitchedapps/frost/web | |
parent | b9ea80d5b5a06d050ce2c7ca46ed597f4cb499ff (diff) | |
download | frost-87e7e132a060e235d434a9ef44ae0363d7ef660b.tar.gz frost-87e7e132a060e235d434a9ef44ae0363d7ef660b.tar.bz2 frost-87e7e132a060e235d434a9ef44ae0363d7ef660b.zip |
Add url formatter
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/web')
4 files changed, 13 insertions, 14 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt index f81c6a15..36193b8b 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt @@ -19,14 +19,9 @@ class FrostJSI(val context: Context, val webView: FrostWebViewCore) { val cookies: ArrayList<CookieModel> get() = (context as? MainActivity)?.cookies() ?: arrayListOf() - var lastUrl: String = "" - @JavascriptInterface fun loadUrl(url: String) { - if (url != lastUrl) { - lastUrl = url - context.launchWebOverlay(url) - } + context.launchWebOverlay(url) } @JavascriptInterface diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClient.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClient.kt index 8cd36b86..ac2af3cb 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClient.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClient.kt @@ -45,11 +45,11 @@ open class FrostWebViewClient(val webCore: FrostWebViewCore) : WebViewClient() { override fun onPageFinished(view: WebView, url: String) { super.onPageFinished(view, url) + L.i("Page finished $url") if (!url.contains(FACEBOOK_COM)) { refreshObservable.onNext(false) return } - L.i("Page finished $url") JsActions.LOGIN_CHECK.inject(view) onPageFinishedActions(url) } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClientMenu.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClientMenu.kt index 2a1a5b74..af13c459 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClientMenu.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClientMenu.kt @@ -15,7 +15,7 @@ class FrostWebViewClientMenu(webCore: FrostWebViewCore) : FrostWebViewClient(web var content: String? = null val progressObservable: Subject<Int> = webCore.progressObservable - private val contentBaseUrl = "https://touch.facebook.com/notifications" + private val contentBaseUrl = "${FB_URL_BASE}notifications" override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) { super.onPageStarted(view, url, favicon) @@ -38,7 +38,10 @@ class FrostWebViewClientMenu(webCore: FrostWebViewCore) : FrostWebViewClient(web jsInject(JsAssets.MENU, callback = { jsInject(JsAssets.MENU_CLICK) //menu injection must be after or we will have a loop from the click listener }) - } else if (url == contentBaseUrl) jsInject(JsAssets.MENU_CLICK) + } else if (url == contentBaseUrl) { + L.i("Inject content") + jsInject(JsAssets.MENU_CLICK) + } } override fun emit(flag: Int) { 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 5ba312f4..b6353252 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt @@ -22,6 +22,7 @@ import io.reactivex.Scheduler import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.subjects.BehaviorSubject +import io.reactivex.subjects.PublishSubject /** * Created by Allan Wang on 2017-05-29. @@ -36,8 +37,8 @@ class FrostWebViewCore @JvmOverloads constructor( private val scrollOffset = IntArray(2) private val scrollConsumed = IntArray(2) private var nestedOffsetY: Int = 0 - val progressObservable: BehaviorSubject<Int> // Keeps track of every progress change - val refreshObservable: BehaviorSubject<Boolean> // Only emits on page loads + val progressObservable: PublishSubject<Int> // Keeps track of every progress change + val refreshObservable: PublishSubject<Boolean> // Only emits on page loads val titleObservable: BehaviorSubject<String> // Only emits on different non http titles var baseUrl: String? = null @@ -46,8 +47,8 @@ class FrostWebViewCore @JvmOverloads constructor( init { isNestedScrollingEnabled = true - progressObservable = BehaviorSubject.create<Int>() - refreshObservable = BehaviorSubject.create<Boolean>() + progressObservable = PublishSubject.create<Int>() + refreshObservable = PublishSubject.create<Boolean>() titleObservable = BehaviorSubject.create<String>() } @@ -79,8 +80,8 @@ class FrostWebViewCore @JvmOverloads constructor( /** * Hook onto the refresh observable for one cycle - * Note that this is a behaviour subject so the first 'false' emission should be ignored * Animate toggles between the fancy ripple and the basic fade + * The cycle only starts on the first load since there may have been another process when this is registered */ fun registerTransition(animate: Boolean) { var dispose: Disposable? = null |