diff --git a/app/src/main/java/com/bernaferrari/changedetection/addedit/WebViewFragment.kt b/app/src/main/java/com/bernaferrari/changedetection/addedit/WebViewFragment.kt
index 80a6e63..d11ad78 100644
--- a/app/src/main/java/com/bernaferrari/changedetection/addedit/WebViewFragment.kt
+++ b/app/src/main/java/com/bernaferrari/changedetection/addedit/WebViewFragment.kt
@@ -1,14 +1,18 @@
package com.bernaferrari.changedetection.addedit
import android.graphics.Bitmap
+import android.os.Build
import android.os.Bundle
import android.text.Editable
import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.webkit.WebResourceError
+import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient
+import android.widget.Toast
import androidx.core.view.isVisible
import androidx.lifecycle.ViewModelProviders
import androidx.navigation.findNavController
@@ -60,6 +64,29 @@ class WebViewFragment : ScopedFragment() {
progress?.visibility = View.GONE
super.onPageFinished(view, url)
}
+
+ override fun onReceivedError(
+ view: WebView?,
+ request: WebResourceRequest?,
+ error: WebResourceError?
+ ) {
+ super.onReceivedError(view, request, error)
+ // Only surface the main-frame failure, otherwise every blocked
+ // sub-resource would pop a toast
+ if (request?.isForMainFrame != true) return
+ progress?.visibility = View.GONE
+ val description = if (Build.VERSION.SDK_INT >= 23) {
+ error?.description?.toString().orEmpty()
+ } else {
+ ""
+ }
+ val message = if (description.isNotBlank()) {
+ getString(R.string.webview_load_failed_with_reason, description)
+ } else {
+ getString(R.string.webview_load_failed)
+ }
+ Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
+ }
}
close.setOnClickListener { goPreviousFragment() }
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9eeb210..bfdfd00 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,6 +3,8 @@
Yes
No
+ Page failed to load
+ Page failed to load: %1$s
Save
Cancel