From 53854a8a67f9ae101e0df2cd8ef438d07fbe2d68 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Sun, 23 Apr 2023 17:37:33 +0530 Subject: [PATCH] Bump gplayapi to 3.1.0 Also, override required responseCode StateFlow for HttpClient Signed-off-by: Aayush Gupta --- app/build.gradle | 2 +- .../com/aurora/store/data/network/FuelClient.kt | 13 ++++++++++++- .../com/aurora/store/data/network/OkHttpClient.kt | 13 ++++++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 87593c5f3..ad9579f17 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -168,7 +168,7 @@ dependencies { implementation "com.github.topjohnwu.libsu:core:${versions.libsu}" //Love <3 - implementation "com.gitlab.AuroraOSS:gplayapi:3.0.1" + implementation "com.gitlab.AuroraOSS:gplayapi:3.1.0" //Test testImplementation 'junit:junit:4.13.2' diff --git a/app/src/main/java/com/aurora/store/data/network/FuelClient.kt b/app/src/main/java/com/aurora/store/data/network/FuelClient.kt index 2b449a621..54e81924b 100644 --- a/app/src/main/java/com/aurora/store/data/network/FuelClient.kt +++ b/app/src/main/java/com/aurora/store/data/network/FuelClient.kt @@ -26,9 +26,16 @@ import com.aurora.store.util.Log import com.github.kittinunf.fuel.Fuel import com.github.kittinunf.fuel.core.* import java.nio.charset.Charset +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow object FuelClient : IHttpClient { + private val _responseCode = MutableStateFlow(0) + override val responseCode: StateFlow + get() = _responseCode.asStateFlow() + override fun get(url: String, headers: Map): PlayResponse { return get(url, headers, hashMapOf()) } @@ -104,6 +111,9 @@ object FuelClient : IHttpClient { @JvmStatic private fun buildPlayResponse(response: Response, request: Request): PlayResponse { + // Reset response code as flow doesn't sends the same value twice + _responseCode.value = 0 + return PlayResponse().apply { isSuccessful = response.isSuccessful code = response.statusCode @@ -117,7 +127,8 @@ object FuelClient : IHttpClient { errorString = String(errorBytes) } }.also { + _responseCode.value = response.statusCode Log.i("FUEL [${request.method}:${response.statusCode}] ${response.url}") } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/aurora/store/data/network/OkHttpClient.kt b/app/src/main/java/com/aurora/store/data/network/OkHttpClient.kt index b4c909c13..35ead89ed 100644 --- a/app/src/main/java/com/aurora/store/data/network/OkHttpClient.kt +++ b/app/src/main/java/com/aurora/store/data/network/OkHttpClient.kt @@ -31,12 +31,19 @@ import okhttp3.OkHttpClient import okhttp3.RequestBody.Companion.toRequestBody import java.io.IOException import java.util.concurrent.TimeUnit +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow object OkHttpClient : IHttpClient { private const val POST = "POST" private const val GET = "GET" + private val _responseCode = MutableStateFlow(100) + override val responseCode: StateFlow + get() = _responseCode.asStateFlow() + private val okHttpClient = OkHttpClient().newBuilder() .connectTimeout(25, TimeUnit.SECONDS) .readTimeout(25, TimeUnit.SECONDS) @@ -140,6 +147,9 @@ object OkHttpClient : IHttpClient { } private fun processRequest(request: Request): PlayResponse { + // Reset response code as flow doesn't sends the same value twice + _responseCode.value = 0 + val call = okHttpClient.newCall(request) return buildPlayResponse(call.execute()) } @@ -165,7 +175,8 @@ object OkHttpClient : IHttpClient { errorString = response.message } }.also { + _responseCode.value = response.code Log.i("OKHTTP [${response.code}] ${response.request.url}") } } -} \ No newline at end of file +}