Custom Cloudflare failure exception to avoid user-facing "java.lang.Exception" text

This commit is contained in:
arkon 2022-01-02 17:57:20 -05:00
parent dbb2c523c1
commit 938339690e

View File

@ -77,9 +77,12 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
resolveWithWebView(originalRequest, oldCookie) resolveWithWebView(originalRequest, oldCookie)
return chain.proceed(originalRequest) return chain.proceed(originalRequest)
} catch (e: Exception) { }
// Because OkHttp's enqueue only handles IOExceptions, wrap the exception so that // Because OkHttp's enqueue only handles IOExceptions, wrap the exception so that
// we don't crash the entire app // we don't crash the entire app
catch (e: CloudflareBypassException) {
throw IOException(context.getString(R.string.information_cloudflare_bypass_failure))
} catch (e: Exception) {
throw IOException(e) throw IOException(e)
} }
} }
@ -171,7 +174,7 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
context.toast(R.string.information_webview_outdated, Toast.LENGTH_LONG) context.toast(R.string.information_webview_outdated, Toast.LENGTH_LONG)
} }
throw Exception(context.getString(R.string.information_cloudflare_bypass_failure)) throw CloudflareBypassException()
} }
} }
@ -181,3 +184,5 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
private val COOKIE_NAMES = listOf("cf_clearance") private val COOKIE_NAMES = listOf("cf_clearance")
} }
} }
private class CloudflareBypassException : Exception()