From 349da7aa81eae77cbaa0c56a465204857086bb49 Mon Sep 17 00:00:00 2001 From: tom5079 Date: Sat, 20 Jun 2020 13:08:03 +0900 Subject: [PATCH] Pupil-78 Shorten the timout when hiyobi is down --- .../xyz/quaver/pupil/util/download/Cache.kt | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt b/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt index be055c1e..f44c7ae8 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt @@ -39,6 +39,7 @@ import java.io.File import java.io.FileOutputStream import java.io.InputStream import java.net.URL +import java.util.* import java.util.concurrent.locks.Lock import java.util.concurrent.locks.ReentrantLock @@ -166,8 +167,8 @@ class Cache(context: Context) : ContextWrapper(context) { val mirrors = preference.getString("mirrors", null)?.split('>') ?: listOf() val sources = mapOf( - Code.HITOMI to { xyz.quaver.hitomi.getReader(galleryID) }, - Code.HIYOBI to { xyz.quaver.hiyobi.getReader(galleryID) } + Code.HITOMI to { Log.i("PUPILD", "READER - HITOMI"); xyz.quaver.hitomi.getReader(galleryID) }, + Code.HIYOBI to { Log.i("PUPILD", "READER - HIYOBI"); xyz.quaver.hiyobi.getReader(galleryID) } ).let { if (mirrors.isNotEmpty()) it.toSortedMap( @@ -180,23 +181,25 @@ class Cache(context: Context) : ContextWrapper(context) { } val reader = if (metadata?.reader == null) { - CoroutineScope(Dispatchers.IO).async { - var retval: Reader? = null + var retval: Reader? = null - for (source in sources) { - retval = try { - source.value.invoke() - } catch (e: Exception) { - FirebaseCrashlytics.getInstance().recordException(e) - null + for (source in sources) { + retval = try { + withContext(Dispatchers.IO) { + withTimeoutOrNull(1000) { + source.value.invoke() + } } - - if (retval != null) - break + } catch (e: Exception) { + FirebaseCrashlytics.getInstance().recordException(e) + null } - retval - }.await() ?: return null + if (retval != null) + break + } + + retval } else metadata.reader