Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 746b3fbf authored by Hasib Prince's avatar Hasib Prince
Browse files

App Lounge: ApiClient exception handled

parent a8324052
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
package foundation.e.apps.api.cleanapk

import android.os.Build
import android.util.Log
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
@@ -26,9 +27,14 @@ import dagger.hilt.components.SingletonComponent
import foundation.e.apps.api.exodus.ExodusTrackerApi
import okhttp3.Cache
import okhttp3.Interceptor
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.OkHttpClient
import okhttp3.Protocol
import okhttp3.Response
import okhttp3.ResponseBody.Companion.toResponseBody
import retrofit2.Retrofit
import retrofit2.converter.moshi.MoshiConverterFactory
import java.net.ConnectException
import javax.inject.Singleton

@Module
@@ -70,9 +76,29 @@ object RetrofitModule {
                "User-Agent",
                "Dalvik/2.1.0 (Linux; U; Android ${Build.VERSION.RELEASE}; ${Build.FINGERPRINT})"
            )
            try {
                return@Interceptor chain.proceed(builder.build())
            } catch (e: ConnectException) {
                return@Interceptor buildErrorResponse(e, chain)
            } catch (e: Exception) {
                return@Interceptor buildErrorResponse(e, chain)
            }
        }
    }

    private fun buildErrorResponse(
        e: Exception,
        chain: Interceptor.Chain
    ): Response {
        Log.e("Retrofit", "buildErrorResponse: ${e.localizedMessage}")
        return Response.Builder()
            .code(999)
            .message(e.localizedMessage ?: "Unknown error")
            .request(chain.request())
            .protocol(Protocol.HTTP_1_1)
            .body("{}".toResponseBody("application/json; charset=utf-8".toMediaTypeOrNull()))
            .build()
    }

    @Singleton
    @Provides
+12 −2
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import okhttp3.RequestBody
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import java.io.IOException
import java.net.UnknownHostException
import java.util.concurrent.TimeUnit
import javax.inject.Inject

@@ -44,6 +45,10 @@ class GPlayHttpClient @Inject constructor(
    private val POST = "POST"
    private val GET = "GET"

    companion object {
        private const val TAG = "GPlayHttpClient"
    }

    private val okHttpClient = OkHttpClient().newBuilder()
        .connectTimeout(25, TimeUnit.SECONDS)
        .readTimeout(25, TimeUnit.SECONDS)
@@ -148,8 +153,13 @@ class GPlayHttpClient @Inject constructor(
    }

    private fun processRequest(request: Request): PlayResponse {
        return try {
            val call = okHttpClient.newCall(request)
        return buildPlayResponse(call.execute())
            buildPlayResponse(call.execute())
        } catch (e: UnknownHostException) {
            Log.e(TAG, "processRequest: ${e.localizedMessage}")
            PlayResponse()
        }
    }

    private fun buildUrl(url: String, params: Map<String, String>): HttpUrl {