diff options
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/web')
3 files changed, 12 insertions, 4 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 045c180f..66f638af 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt @@ -3,15 +3,21 @@ package com.pitchedapps.frost.web import android.content.Context import android.webkit.JavascriptInterface import com.pitchedapps.frost.LoginActivity +import com.pitchedapps.frost.MainActivity import com.pitchedapps.frost.SelectorActivity import com.pitchedapps.frost.dbflow.CookieModel +import com.pitchedapps.frost.utils.cookies import com.pitchedapps.frost.utils.launchNewTask import com.pitchedapps.frost.utils.launchWebOverlay /** * Created by Allan Wang on 2017-06-01. */ -class FrostJSI(val context: Context, val cookies: ArrayList<CookieModel>) { +class FrostJSI(val context: Context) { + + val cookies: ArrayList<CookieModel> + get() = (context as? MainActivity)?.cookies() ?: arrayListOf() + @JavascriptInterface fun loadUrl(url: String) = context.launchWebOverlay(url) @@ -20,7 +26,7 @@ class FrostJSI(val context: Context, val cookies: ArrayList<CookieModel>) { if (cookies.isNotEmpty()) context.launchNewTask(SelectorActivity::class.java, cookies) else - context.launchNewTask(LoginActivity::class.java, clearStack = false) + context.launchNewTask(LoginActivity::class.java) } }
\ No newline at end of file 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 37d10015..922d527b 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClient.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClient.kt @@ -48,7 +48,7 @@ class FrostWebViewClient(val refreshObservable: Subject<Boolean>) : WebViewClien if (c is MainActivity && c.cookies().isNotEmpty()) c.launchNewTask(SelectorActivity::class.java, c.cookies()) else - c.launchNewTask(LoginActivity::class.java, clearStack = false) + c.launchNewTask(LoginActivity::class.java) } override fun onPageFinished(view: WebView, url: String) { 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 6477deda..146f5a33 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt @@ -11,9 +11,10 @@ import android.util.AttributeSet import android.view.MotionEvent import android.view.View import android.view.animation.DecelerateInterpolator -import android.webkit.CookieManager import android.webkit.WebView +import com.pitchedapps.frost.MainActivity import com.pitchedapps.frost.utils.L +import com.pitchedapps.frost.utils.cookies import io.reactivex.Scheduler import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -56,6 +57,7 @@ class FrostWebViewCore @JvmOverloads constructor( setLayerType(View.LAYER_TYPE_HARDWARE, null) setWebViewClient(FrostWebViewClient(refreshObservable)) setWebChromeClient(FrostChromeClient(progressObservable, titleObservable)) + addJavascriptInterface(FrostJSI(context), "Frost") } override fun loadUrl(url: String?) { |