Fix page error processing
This commit is contained in:
@@ -30,7 +30,7 @@ class PageLoader : KoinComponent, CoroutineScope, DisposableHandle {
|
|||||||
return it
|
return it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val task = tasks[url]?.takeUnless { it.isCancelled }
|
val task = tasks[url]?.takeUnless { it.isCancelled || (force && it.isCompleted) }
|
||||||
return (task ?: loadAsync(url).also { tasks[url] = it }).await()
|
return (task ?: loadAsync(url).also { tasks[url] = it }).await()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,6 +55,9 @@ class PageLoader : KoinComponent, CoroutineScope, DisposableHandle {
|
|||||||
checkNotNull(body) {
|
checkNotNull(body) {
|
||||||
"Null response"
|
"Null response"
|
||||||
}
|
}
|
||||||
|
check(response.isSuccessful) {
|
||||||
|
"Invalid response: ${response.code} ${response.message}"
|
||||||
|
}
|
||||||
cache.put(url) { out ->
|
cache.put(url) { out ->
|
||||||
body.byteStream().copyTo(out)
|
body.byteStream().copyTo(out)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import org.koitharu.kotatsu.BuildConfig
|
|||||||
import org.koitharu.kotatsu.R
|
import org.koitharu.kotatsu.R
|
||||||
import org.koitharu.kotatsu.core.exceptions.EmptyHistoryException
|
import org.koitharu.kotatsu.core.exceptions.EmptyHistoryException
|
||||||
import org.koitharu.kotatsu.core.exceptions.UnsupportedFileException
|
import org.koitharu.kotatsu.core.exceptions.UnsupportedFileException
|
||||||
import java.io.IOException
|
import java.net.SocketTimeoutException
|
||||||
|
|
||||||
inline fun <T, R> T.safe(action: T.() -> R?) = try {
|
inline fun <T, R> T.safe(action: T.() -> R?) = try {
|
||||||
this.action()
|
this.action()
|
||||||
@@ -38,12 +38,8 @@ fun Throwable.getDisplayMessage(resources: Resources) = when (this) {
|
|||||||
is UnsupportedOperationException -> resources.getString(R.string.operation_not_supported)
|
is UnsupportedOperationException -> resources.getString(R.string.operation_not_supported)
|
||||||
is UnsupportedFileException -> resources.getString(R.string.text_file_not_supported)
|
is UnsupportedFileException -> resources.getString(R.string.text_file_not_supported)
|
||||||
is EmptyHistoryException -> resources.getString(R.string.history_is_empty)
|
is EmptyHistoryException -> resources.getString(R.string.history_is_empty)
|
||||||
is IOException -> resources.getString(R.string.network_error)
|
is SocketTimeoutException -> resources.getString(R.string.network_error)
|
||||||
else -> if (BuildConfig.DEBUG) {
|
else -> message ?: resources.getString(R.string.error_occurred)
|
||||||
message ?: resources.getString(R.string.error_occurred)
|
|
||||||
} else {
|
|
||||||
resources.getString(R.string.error_occurred)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun <T> measured(tag: String, block: () -> T): T {
|
inline fun <T> measured(tag: String, block: () -> T): T {
|
||||||
|
|||||||
Reference in New Issue
Block a user