Horis 2 ani în urmă
părinte
comite
165afac079
1 a modificat fișierele cu 22 adăugiri și 19 ștergeri
  1. 22 19
      app/src/main/java/io/legado/app/help/http/BackstageWebView.kt

+ 22 - 19
app/src/main/java/io/legado/app/help/http/BackstageWebView.kt

@@ -18,6 +18,7 @@ import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.utils.runOnUI
 import kotlinx.coroutines.Runnable
 import kotlinx.coroutines.suspendCancellableCoroutine
+import kotlinx.coroutines.withTimeout
 import org.apache.commons.text.StringEscapeUtils
 import splitties.init.appCtx
 import java.lang.ref.WeakReference
@@ -42,28 +43,30 @@ class BackstageWebView(
     private var callback: Callback? = null
     private var mWebView: WebView? = null
 
-    suspend fun getStrResponse(): StrResponse = suspendCancellableCoroutine { block ->
-        block.invokeOnCancellation {
-            runOnUI {
-                destroy()
-            }
-        }
-        callback = object : Callback() {
-            override fun onResult(response: StrResponse) {
-                if (!block.isCompleted)
-                    block.resume(response)
+    suspend fun getStrResponse(): StrResponse = withTimeout(60000L) {
+        suspendCancellableCoroutine { block ->
+            block.invokeOnCancellation {
+                runOnUI {
+                    destroy()
+                }
             }
+            callback = object : Callback() {
+                override fun onResult(response: StrResponse) {
+                    if (!block.isCompleted)
+                        block.resume(response)
+                }
 
-            override fun onError(error: Throwable) {
-                if (!block.isCompleted)
-                    block.resumeWithException(error)
+                override fun onError(error: Throwable) {
+                    if (!block.isCompleted)
+                        block.resumeWithException(error)
+                }
             }
-        }
-        runOnUI {
-            try {
-                load()
-            } catch (error: Throwable) {
-                block.resumeWithException(error)
+            runOnUI {
+                try {
+                    load()
+                } catch (error: Throwable) {
+                    block.resumeWithException(error)
+                }
             }
         }
     }