Fix image not retrying

This commit is contained in:
tom5079
2022-07-19 20:29:39 -07:00
parent b146ed684d
commit c9519ec681
7 changed files with 19 additions and 11 deletions

View File

@@ -100,7 +100,7 @@ class Pupil : Application() {
val proxyInfo = getProxyInfo()
clientBuilder = OkHttpClient.Builder()
.connectTimeout(0, TimeUnit.SECONDS)
// .connectTimeout(0, TimeUnit.SECONDS)
.readTimeout(0, TimeUnit.SECONDS)
.proxyInfo(proxyInfo)
.addInterceptor { chain ->

View File

@@ -168,18 +168,24 @@ class DownloadService : Service() {
private val interceptor: PupilInterceptor = { chain ->
val request = chain.request()
var response = chain.proceed(request)
var response = kotlin.runCatching {
chain.proceed(request)
}.getOrNull()
var limit = 5
while (!response.isSuccessful) {
if (response.code() == 503) {
while (response?.isSuccessful != true) {
if (response?.code() == 503) {
Thread.sleep(200)
} else if (--limit > 0)
} else if (--limit < 0)
break
response = chain.proceed(request)
response = kotlin.runCatching {
chain.proceed(request)
}.getOrNull()
}
checkNotNull(response)
response.newBuilder()
.body(response.body()?.let {
ProgressResponseBody(request.tag(), it, progressListener)
@@ -207,6 +213,7 @@ class DownloadService : Service() {
private val callback = object: Callback {
override fun onFailure(call: Call, e: IOException) {
Log.d("PUPILD", "ONFAILURE ${call.request().tag()}, ${e}")
FirebaseCrashlytics.getInstance().recordException(e)
if (e.message?.contains("cancel", true) == false) {
@@ -215,6 +222,7 @@ class DownloadService : Service() {
}
override fun onResponse(call: Call, response: Response) {
Log.d("PUPILD", "ONRESPONSE ${call.request().tag()}")
val (galleryID, index, startId) = call.request().tag() as Tag
val ext = call.request().url().encodedPath().split('.').last()