aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-07-23 10:50:00 -0700
committerAllan Wang <me@allanwang.ca>2017-07-23 10:50:00 -0700
commit5b7c0e3e8ec2d48267329647140715798ae155c5 (patch)
treec609ce5d0d62270e4b5256e016a220167dffb303
parent07d6e50e7fba1b3793046c1f180566081bece168 (diff)
downloadfrost-5b7c0e3e8ec2d48267329647140715798ae155c5.tar.gz
frost-5b7c0e3e8ec2d48267329647140715798ae155c5.tar.bz2
frost-5b7c0e3e8ec2d48267329647140715798ae155c5.zip
Add null checks across web clients
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt1
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt15
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/LoginWebView.kt7
3 files changed, 13 insertions, 10 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt
index b21cc3ab..80d2aa48 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt
@@ -40,6 +40,7 @@ class AboutActivity : AboutActivityBase(null, {
val include = arrayOf(
"AboutLibraries",
"AndroidIconics",
+ "androidin_appbillingv3",
"androidslidinguppanel",
"Crashlytics",
"dbflow",
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt
index 89eef258..658b6591 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt
@@ -40,8 +40,9 @@ open class FrostWebViewClient(val webCore: FrostWebViewCore) : BaseWebViewClient
val refreshObservable: Subject<Boolean> = webCore.refreshObservable
- override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
+ override fun onPageStarted(view: WebView, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
+ if (url == null) return
L.i("FWV Loading $url")
// L.v("Cookies ${CookieManager.getInstance().getCookie(url)}")
refreshObservable.onNext(true)
@@ -57,8 +58,9 @@ open class FrostWebViewClient(val webCore: FrostWebViewCore) : BaseWebViewClient
c.launchNewTask(LoginActivity::class.java)
}
- override fun onPageFinished(view: WebView, url: String) {
+ override fun onPageFinished(view: WebView, url: String?) {
super.onPageFinished(view, url)
+ if (url == null) return
L.i("Page finished $url")
if (!url.contains(FACEBOOK_COM)) {
refreshObservable.onNext(false)
@@ -142,8 +144,9 @@ class FrostWebViewClientMenu(webCore: FrostWebViewCore) : FrostWebViewClient(web
else -> false
}
- override fun onPageFinished(view: WebView, url: String) {
+ override fun onPageFinished(view: WebView, url: String?) {
super.onPageFinished(view, url)
+ if (url == null) return
if (url.shouldInjectMenu) jsInject(JsAssets.MENU)
}
@@ -163,13 +166,15 @@ class FrostWebViewClientMenu(webCore: FrostWebViewCore) : FrostWebViewClient(web
*/
class HeadlessWebViewClient(val tag: String, val postInjection: InjectorContract) : BaseWebViewClient() {
- override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
+ override fun onPageStarted(view: WebView, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
+ if (url == null) return
L.d("Headless Page $tag Started", url)
}
- override fun onPageFinished(view: WebView, url: String) {
+ override fun onPageFinished(view: WebView, url: String?) {
super.onPageFinished(view, url)
+ if (url == null) return
L.d("Headless Page $tag Finished", url)
postInjection.inject(view)
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/LoginWebView.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/LoginWebView.kt
index b23d898e..b178f66c 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/web/LoginWebView.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/web/LoginWebView.kt
@@ -24,10 +24,7 @@ import io.reactivex.subjects.Subject
/**
* Created by Allan Wang on 2017-05-29.
- *
*/
-
-
class LoginWebView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : WebView(context, attrs, defStyleAttr) {
@@ -71,9 +68,9 @@ class LoginWebView @JvmOverloads constructor(
inner class LoginClient : BaseWebViewClient() {
- override fun onPageFinished(view: WebView, url: String) {
+ override fun onPageFinished(view: WebView, url: String?) {
super.onPageFinished(view, url)
- if (!url.contains(FACEBOOK_COM)) {
+ if (url == null || !url.contains(FACEBOOK_COM)) {
view.frostSnackbar(R.string.no_longer_facebook)
loadLogin()
return