TP-38663 | HPC | add loader optimization (#7595)
Co-authored-by: Shivam Goyal <shivam.goyal@navi.com>
This commit is contained in:
@@ -19,6 +19,7 @@ import com.navi.common.network.ApiConstants.API_CODE_SOCKET_TIMEOUT
|
||||
import com.navi.common.network.ApiConstants.API_ERROR_NO_USER_FOUND
|
||||
import com.navi.common.network.ApiConstants.NO_INTERNET
|
||||
import com.navi.common.network.fetchNewKeyFromFirebaseAndRestart
|
||||
import com.navi.common.network.getCfRayFromResponse
|
||||
import com.navi.common.network.getRequestIdFromResponse
|
||||
import com.navi.common.network.getVerticalFromResponse
|
||||
import com.navi.common.network.models.ErrorMessage
|
||||
@@ -85,7 +86,8 @@ abstract class ResponseCallback {
|
||||
it.message,
|
||||
apiUrl = response.raw().request.url.toString(),
|
||||
appRequestId = getRequestIdFromResponse(response),
|
||||
vertical = getVerticalFromResponse(response)
|
||||
vertical = getVerticalFromResponse(response),
|
||||
cfRay = getCfRayFromResponse(response)
|
||||
),
|
||||
it.errors,
|
||||
it.warning,
|
||||
@@ -107,7 +109,8 @@ abstract class ResponseCallback {
|
||||
response.message(),
|
||||
apiUrl = response.raw().request.url.toString(),
|
||||
appRequestId = getRequestIdFromResponse(response),
|
||||
vertical = getVerticalFromResponse(response)
|
||||
vertical = getVerticalFromResponse(response),
|
||||
cfRay = getCfRayFromResponse(response)
|
||||
)
|
||||
)
|
||||
} else if (response.code() == API_SUCCESS_CODE_204) {
|
||||
@@ -134,7 +137,8 @@ abstract class ResponseCallback {
|
||||
response.message(),
|
||||
apiUrl = response.raw().request.url.toString(),
|
||||
appRequestId = getRequestIdFromResponse(response),
|
||||
vertical = getVerticalFromResponse(response)
|
||||
vertical = getVerticalFromResponse(response),
|
||||
cfRay = getCfRayFromResponse(response)
|
||||
),
|
||||
errorResponse?.errors,
|
||||
null,
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.navi.analytics.model.UserLocation
|
||||
import com.navi.base.model.ActionData
|
||||
import com.navi.base.model.CtaData
|
||||
import com.navi.base.model.DropOffInfo
|
||||
import com.navi.base.utils.SKIP_LOADER
|
||||
import com.navi.base.utils.USER_DEVICE_DATA_APP_API
|
||||
import com.navi.base.utils.USER_DEVICE_DATA_LOCATION_API
|
||||
import com.navi.common.model.*
|
||||
@@ -1305,6 +1306,7 @@ interface RetrofitService {
|
||||
@Url url: String,
|
||||
@QueryMap queryMap: Map<String, String>,
|
||||
@Body body: RequestBody,
|
||||
@Header(SKIP_LOADER) skipLoader: Boolean? = true
|
||||
): Response<Unit>
|
||||
|
||||
@GET("/repeat-loan/summary/offer/{offerId}")
|
||||
|
||||
@@ -28,3 +28,4 @@ const val UPI_VALIDATION = "UPI_VALIDATION"
|
||||
const val THOUSAND = 1000L
|
||||
const val INT_ZERO = 0
|
||||
const val PAN_VERIFY_POLLING = "PAN_VERIFY_POLLING"
|
||||
const val SKIP_LOADER = "skipLoader"
|
||||
@@ -12,9 +12,11 @@ import android.widget.TextView
|
||||
import com.google.gson.Gson
|
||||
import com.navi.base.model.AnalyticsEvent
|
||||
import com.navi.base.model.CtaData
|
||||
import com.navi.base.utils.AppLaunchUtils.TRUE
|
||||
import okhttp3.Headers
|
||||
import org.json.JSONObject
|
||||
import kotlin.math.ceil
|
||||
import kotlin.math.floor
|
||||
import org.json.JSONObject
|
||||
|
||||
fun String?.isNotNullAndNotEmpty(): Boolean = !this.isNullOrEmpty()
|
||||
|
||||
@@ -102,6 +104,7 @@ val doNotShowLoaderWhenPostSet =
|
||||
mutableSetOf(
|
||||
USER_DEVICE_DATA_LOCATION_API,
|
||||
USER_DEVICE_DATA_APP_API,
|
||||
"/customer-device/customer/me/async/data-ingestion-status",
|
||||
"/v1/cards/",
|
||||
"/customer-device/customer/me/data-ingestion-status",
|
||||
"/navipay/customer",
|
||||
@@ -148,8 +151,13 @@ val doNotShowLoaderWhenPostSet =
|
||||
"/navipay/phone-number/vpa"
|
||||
)
|
||||
|
||||
fun isDataNeedsToUpdate(method: String, url: String, moduleName: String = ""): Boolean {
|
||||
if (method == "GET") {
|
||||
fun isDataNeedsToUpdate(
|
||||
method: String,
|
||||
url: String,
|
||||
moduleName: String = "",
|
||||
headers: Headers? = null
|
||||
): Boolean {
|
||||
if (method == "GET" || headers?.get(SKIP_LOADER) == TRUE) {
|
||||
return isContains(showLoaderWhenGetSet, url)
|
||||
}
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@ abstract class BaseHttpClient(
|
||||
const val HEADER_SESSION_TOKEN = "X-Session-Token"
|
||||
const val X_TARGET = "X-Target"
|
||||
const val APPREQUESTID = "appRequestId"
|
||||
const val CF_RAY = "CF_RAY"
|
||||
}
|
||||
val baseHttpClientBuilder: OkHttpClient.Builder
|
||||
get() {
|
||||
@@ -106,7 +107,13 @@ abstract class BaseHttpClient(
|
||||
}
|
||||
}
|
||||
request = request.newBuilder().headers(builder.build()).build()
|
||||
if (isDataNeedsToUpdate(request.method, request.url.toString(), networkInfo.moduleName?.name.orEmpty())) {
|
||||
if (isDataNeedsToUpdate(
|
||||
request.method,
|
||||
request.url.toString(),
|
||||
networkInfo.moduleName?.name.orEmpty(),
|
||||
request.headers
|
||||
)
|
||||
) {
|
||||
TemporaryStorageHelper.updateScreenDataStatus()
|
||||
}
|
||||
val response: Response = try {
|
||||
|
||||
@@ -79,3 +79,12 @@ fun <T> getVerticalFromResponse(response: Response<GenericResponse<T>>): String?
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
fun <T> getCfRayFromResponse(response: Response<GenericResponse<T>>): String? {
|
||||
try {
|
||||
return response.raw().headers[BaseHttpClient.CF_RAY]
|
||||
} catch (e: Exception) {
|
||||
e.log()
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -20,4 +20,5 @@ data class ErrorMessage(
|
||||
var apiUrl: String? = null,
|
||||
var appRequestId : String? = null,
|
||||
var vertical : String? = null,
|
||||
var cfRay: String? = null,
|
||||
)
|
||||
|
||||
@@ -10,6 +10,7 @@ package com.navi.insurance.network.retrofit
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import com.navi.common.network.ApiConstants.API_BAD_REQUEST
|
||||
import com.navi.common.network.getCfRayFromResponse
|
||||
import com.navi.common.network.getRequestIdFromResponse
|
||||
import com.navi.common.network.getVerticalFromResponse
|
||||
import com.navi.common.network.models.ErrorMessage
|
||||
@@ -34,7 +35,8 @@ abstract class FormResponseCallback : ResponseCallback() {
|
||||
errorResponse?.message,
|
||||
errorResponse?.message,
|
||||
appRequestId = getRequestIdFromResponse(response),
|
||||
vertical = getVerticalFromResponse(response)
|
||||
vertical = getVerticalFromResponse(response),
|
||||
cfRay = getCfRayFromResponse(response)
|
||||
),
|
||||
errors = errorResponse?.errors
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user