diff --git a/app/src/main/java/exh/md/network/MangaDexLoginHelper.kt b/app/src/main/java/exh/md/network/MangaDexLoginHelper.kt index 377616150..0c6a5f7c0 100644 --- a/app/src/main/java/exh/md/network/MangaDexLoginHelper.kt +++ b/app/src/main/java/exh/md/network/MangaDexLoginHelper.kt @@ -13,8 +13,8 @@ import kotlinx.coroutines.CancellationException import kotlinx.coroutines.withTimeoutOrNull import kotlin.time.Duration.Companion.seconds -class MangaDexLoginHelper(val authServiceLazy: Lazy, val preferences: PreferencesHelper, val mdList: MdList) { - val authService by authServiceLazy +class MangaDexLoginHelper(authServiceLazy: Lazy, val preferences: PreferencesHelper, val mdList: MdList) { + private val authService by authServiceLazy suspend fun isAuthenticated(): Boolean { return runCatching { authService.checkToken().isAuthenticated } .getOrElse { e -> diff --git a/app/src/main/java/exh/md/network/TokenAuthenticator.kt b/app/src/main/java/exh/md/network/TokenAuthenticator.kt index 9279d6780..69d6619c0 100644 --- a/app/src/main/java/exh/md/network/TokenAuthenticator.kt +++ b/app/src/main/java/exh/md/network/TokenAuthenticator.kt @@ -7,12 +7,17 @@ import okhttp3.Authenticator import okhttp3.Request import okhttp3.Response import okhttp3.Route +import java.io.IOException class TokenAuthenticator(private val loginHelper: MangaDexLoginHelper) : Authenticator { override fun authenticate(route: Route?, response: Response): Request? { xLogI("Detected Auth error ${response.code} on ${response.request.url}") - val token = refreshToken(loginHelper) + val token = try { + refreshToken(loginHelper) + } catch (e: Exception) { + throw IOException(e) + } return if (token != null) { response.request.newBuilder().header("Authorization", token).build() } else { diff --git a/app/src/main/java/exh/patch/NetworkPatches.kt b/app/src/main/java/exh/patch/NetworkPatches.kt index 50cce6bb2..a716b16c1 100644 --- a/app/src/main/java/exh/patch/NetworkPatches.kt +++ b/app/src/main/java/exh/patch/NetworkPatches.kt @@ -20,8 +20,8 @@ fun OkHttpClient.Builder.injectPatches(sourceIdProducer: () -> Long): OkHttpClie fun findAndApplyPatches(sourceId: Long): EHInterceptor { // TODO make it so captcha doesnt auto open in manga eden while applying universal interceptors - return if (Injekt.get().autoSolveCaptcha().get()) ((EH_INTERCEPTORS[sourceId].orEmpty()) + (EH_INTERCEPTORS[EH_UNIVERSAL_INTERCEPTOR].orEmpty())).merge() - else (EH_INTERCEPTORS[sourceId].orEmpty()).merge() + return if (Injekt.get().autoSolveCaptcha().get()) (EH_INTERCEPTORS[sourceId].orEmpty() + EH_INTERCEPTORS[EH_UNIVERSAL_INTERCEPTOR].orEmpty()).merge() + else EH_INTERCEPTORS[sourceId].orEmpty().merge() } fun List.merge(): EHInterceptor {