[debug] Show toast when network error occurred
This commit is contained in:
parent
e0126519e0
commit
e63102712b
|
@ -25,6 +25,7 @@ import com.google.gson.GsonBuilder
|
|||
import com.keylesspalace.tusky.BuildConfig
|
||||
import com.keylesspalace.tusky.db.AccountManager
|
||||
import com.keylesspalace.tusky.json.Rfc3339DateJsonAdapter
|
||||
import com.keylesspalace.tusky.network.HttpToastInterceptor
|
||||
import com.keylesspalace.tusky.network.InstanceSwitchAuthInterceptor
|
||||
import com.keylesspalace.tusky.network.MastodonApi
|
||||
import com.keylesspalace.tusky.network.MediaUploadApi
|
||||
|
@ -105,6 +106,7 @@ class NetworkModule {
|
|||
addInterceptor(InstanceSwitchAuthInterceptor(accountManager))
|
||||
if (BuildConfig.DEBUG) {
|
||||
addInterceptor(HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BASIC })
|
||||
addInterceptor(HttpToastInterceptor(context))
|
||||
}
|
||||
}
|
||||
.build()
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
package com.keylesspalace.tusky.network
|
||||
|
||||
import android.content.Context
|
||||
import android.widget.Toast
|
||||
import androidx.core.content.ContextCompat
|
||||
import okhttp3.Interceptor
|
||||
import okhttp3.Response
|
||||
|
||||
class HttpToastInterceptor(
|
||||
private val context: Context,
|
||||
) : Interceptor {
|
||||
|
||||
override fun intercept(chain: Interceptor.Chain): Response {
|
||||
val request = chain.request()
|
||||
|
||||
return runCatching { chain.proceed(request) }
|
||||
.onSuccess {
|
||||
if (!it.isSuccessful) {
|
||||
showToast("${request.method} ${request.url}\n${it.code} ${it.message}")
|
||||
}
|
||||
}
|
||||
.onFailure { showToast("${request.method} ${request.url}\n${it}") }
|
||||
.getOrThrow()
|
||||
}
|
||||
|
||||
private fun showToast(message: String) {
|
||||
ContextCompat.getMainExecutor(context).execute {
|
||||
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue