TP-78987 | Network broadcast deprecated (#221)
This commit is contained in:
@@ -11,5 +11,5 @@ import okhttp3.Request
|
||||
import okhttp3.Response
|
||||
|
||||
interface AlfredApiLogsProvider {
|
||||
fun sendApiLog(request: Request, response: Response)
|
||||
fun sendApiLog(request: Request, response: Response, exception: Exception? = null)
|
||||
}
|
||||
|
||||
@@ -8,17 +8,13 @@
|
||||
package com.navi.alfred.network
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.Log
|
||||
import com.chuckerteam.chucker.api.ChuckerCollector
|
||||
import com.chuckerteam.chucker.api.ChuckerInterceptor
|
||||
import com.google.gson.GsonBuilder
|
||||
import com.navi.alfred.AlfredManager
|
||||
import com.navi.alfred.BuildConfig
|
||||
import com.navi.alfred.deserializer.FailureDataDeserializer
|
||||
import com.navi.alfred.model.ErrorMessage
|
||||
import com.navi.alfred.model.FailureRequest
|
||||
import com.navi.alfred.network.model.RequestInfo
|
||||
import com.navi.alfred.utils.AlfredConstants
|
||||
import com.navi.alfred.utils.ApiConstants
|
||||
import com.navi.alfred.utils.handleException
|
||||
@@ -40,13 +36,14 @@ object AlfredFailureRetrofitProvider {
|
||||
private val networkInterceptor: Interceptor
|
||||
get() = Interceptor { chain ->
|
||||
val request = chain.request()
|
||||
var exception: Exception? = null
|
||||
val response =
|
||||
if (isNetworkAvailable()) {
|
||||
try {
|
||||
chain.proceed(request).newBuilder().build()
|
||||
} catch (e: Exception) {
|
||||
exception = e
|
||||
val errorMessage = handleException(e)
|
||||
setNetworkFailureBroadcast(e, errorMessage, request)
|
||||
// A mocked response in case of n/w exception
|
||||
Response.Builder()
|
||||
.request(request)
|
||||
@@ -66,7 +63,7 @@ object AlfredFailureRetrofitProvider {
|
||||
.build()
|
||||
}
|
||||
AlfredApiLogsManager.getAlfredApiLogsProvider()
|
||||
?.sendApiLog(request = request, response = response)
|
||||
?.sendApiLog(request = request, response = response, exception = exception)
|
||||
response
|
||||
}
|
||||
|
||||
@@ -118,25 +115,6 @@ object AlfredFailureRetrofitProvider {
|
||||
.build()
|
||||
}
|
||||
|
||||
private fun setNetworkFailureBroadcast(
|
||||
e: Exception,
|
||||
errorMessage: ErrorMessage,
|
||||
request: Request
|
||||
) {
|
||||
Log.d("Alfred", "AlfredRetrofitProvider setNetworkFailureBroadcast - sending Broadcast")
|
||||
val intent = Intent(AlfredConstants.BROADCAST_ACTION_TYPE)
|
||||
val requestInfo =
|
||||
RequestInfo(
|
||||
request.url.toString(),
|
||||
request.headers[AlfredConstants.HEADER_X_TARGET],
|
||||
request.headers[AlfredConstants.HEADER_APP_REQUEST_ID]
|
||||
)
|
||||
intent.putExtra(AlfredConstants.BROADCAST_EXCEPTION, e)
|
||||
intent.putExtra(AlfredConstants.BROADCAST_ERROR_MESSAGE, errorMessage)
|
||||
intent.putExtra(AlfredConstants.BROADCAST_REQUEST, requestInfo)
|
||||
AlfredManager.applicationContext.sendBroadcast(intent)
|
||||
}
|
||||
|
||||
fun getApiService(): AlfredFailureRetrofitService {
|
||||
return apiService
|
||||
}
|
||||
|
||||
@@ -7,17 +7,7 @@
|
||||
|
||||
package com.navi.alfred.network
|
||||
|
||||
import android.content.Intent
|
||||
import android.util.Log
|
||||
import com.navi.alfred.AlfredManager
|
||||
import com.navi.alfred.model.ErrorMessage
|
||||
import com.navi.alfred.network.model.RequestInfo
|
||||
import com.navi.alfred.utils.AlfredConstants.BROADCAST_ACTION_TYPE
|
||||
import com.navi.alfred.utils.AlfredConstants.BROADCAST_ERROR_MESSAGE
|
||||
import com.navi.alfred.utils.AlfredConstants.BROADCAST_EXCEPTION
|
||||
import com.navi.alfred.utils.AlfredConstants.BROADCAST_REQUEST
|
||||
import com.navi.alfred.utils.AlfredConstants.HEADER_APP_REQUEST_ID
|
||||
import com.navi.alfred.utils.AlfredConstants.HEADER_X_TARGET
|
||||
import com.navi.alfred.utils.handleException
|
||||
import com.navi.alfred.utils.orZero
|
||||
import okhttp3.*
|
||||
@@ -34,8 +24,6 @@ internal class AlfredResourceManagerInterceptor {
|
||||
chain.proceed(request).newBuilder().build()
|
||||
} catch (e: Exception) {
|
||||
val errorMessage = handleException(e)
|
||||
// send failure broadcast if the request is critical
|
||||
setNetworkFailureBroadcast(e, errorMessage, request)
|
||||
// A mocked response in case of n/w exception
|
||||
Response.Builder()
|
||||
.request(request)
|
||||
@@ -54,27 +42,6 @@ internal class AlfredResourceManagerInterceptor {
|
||||
.message(AlfredManager.criticalJourneyResponseMessage.orEmpty())
|
||||
.build()
|
||||
}
|
||||
AlfredApiLogsManager.getAlfredApiLogsProvider()
|
||||
?.sendApiLog(request = request, response = response)
|
||||
response
|
||||
}
|
||||
|
||||
private fun setNetworkFailureBroadcast(
|
||||
e: Exception,
|
||||
errorMessage: ErrorMessage,
|
||||
request: Request
|
||||
) {
|
||||
Log.d("Alfred", "AlfredResourceManagerInterceptor: setNetworkFailureBroadcast")
|
||||
val intent = Intent(BROADCAST_ACTION_TYPE)
|
||||
val requestInfo =
|
||||
RequestInfo(
|
||||
request.url.toString(),
|
||||
request.headers[HEADER_X_TARGET],
|
||||
request.headers[HEADER_APP_REQUEST_ID]
|
||||
)
|
||||
intent.putExtra(BROADCAST_EXCEPTION, e)
|
||||
intent.putExtra(BROADCAST_ERROR_MESSAGE, errorMessage)
|
||||
intent.putExtra(BROADCAST_REQUEST, requestInfo)
|
||||
AlfredManager.applicationContext.sendBroadcast(intent)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
package com.navi.alfred.network
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.Log
|
||||
import com.chuckerteam.chucker.api.ChuckerCollector
|
||||
import com.chuckerteam.chucker.api.ChuckerInterceptor
|
||||
import com.google.gson.GsonBuilder
|
||||
@@ -18,17 +16,9 @@ import com.navi.alfred.BuildConfig
|
||||
import com.navi.alfred.deserializer.AnalyticsDataDeserializer
|
||||
import com.navi.alfred.deserializer.MetricsDataDeserializer
|
||||
import com.navi.alfred.deserializer.SessionDataDeserializer
|
||||
import com.navi.alfred.model.ErrorMessage
|
||||
import com.navi.alfred.model.EventMetricRequest
|
||||
import com.navi.alfred.model.SessionRequest
|
||||
import com.navi.alfred.network.model.RequestInfo
|
||||
import com.navi.alfred.utils.AlfredConstants
|
||||
import com.navi.alfred.utils.AlfredConstants.BROADCAST_ACTION_TYPE
|
||||
import com.navi.alfred.utils.AlfredConstants.BROADCAST_ERROR_MESSAGE
|
||||
import com.navi.alfred.utils.AlfredConstants.BROADCAST_EXCEPTION
|
||||
import com.navi.alfred.utils.AlfredConstants.BROADCAST_REQUEST
|
||||
import com.navi.alfred.utils.AlfredConstants.HEADER_APP_REQUEST_ID
|
||||
import com.navi.alfred.utils.AlfredConstants.HEADER_X_TARGET
|
||||
import com.navi.alfred.utils.ApiConstants
|
||||
import com.navi.alfred.utils.handleException
|
||||
import com.navi.alfred.utils.isNetworkAvailable
|
||||
@@ -50,13 +40,14 @@ object AlfredRetrofitProvider {
|
||||
private val networkInterceptor: Interceptor
|
||||
get() = Interceptor { chain ->
|
||||
val request = chain.request()
|
||||
var exception: Exception? = null
|
||||
val response =
|
||||
if (isNetworkAvailable()) {
|
||||
try {
|
||||
chain.proceed(request).newBuilder().build()
|
||||
} catch (e: Exception) {
|
||||
exception = e
|
||||
val errorMessage = handleException(e)
|
||||
setNetworkFailureBroadcast(e, errorMessage, request)
|
||||
// A mocked response in case of n/w exception
|
||||
Response.Builder()
|
||||
.request(request)
|
||||
@@ -76,7 +67,7 @@ object AlfredRetrofitProvider {
|
||||
.build()
|
||||
}
|
||||
AlfredApiLogsManager.getAlfredApiLogsProvider()
|
||||
?.sendApiLog(request = request, response = response)
|
||||
?.sendApiLog(request = request, response = response, exception = exception)
|
||||
response
|
||||
}
|
||||
|
||||
@@ -137,25 +128,6 @@ object AlfredRetrofitProvider {
|
||||
return apiService
|
||||
}
|
||||
|
||||
private fun setNetworkFailureBroadcast(
|
||||
e: Exception,
|
||||
errorMessage: ErrorMessage,
|
||||
request: Request
|
||||
) {
|
||||
Log.d("Alfred", "AlfredRetrofitProvider setNetworkFailureBroadcast - sending Broadcast")
|
||||
val intent = Intent(BROADCAST_ACTION_TYPE)
|
||||
val requestInfo =
|
||||
RequestInfo(
|
||||
request.url.toString(),
|
||||
request.headers[HEADER_X_TARGET],
|
||||
request.headers[HEADER_APP_REQUEST_ID]
|
||||
)
|
||||
intent.putExtra(BROADCAST_EXCEPTION, e)
|
||||
intent.putExtra(BROADCAST_ERROR_MESSAGE, errorMessage)
|
||||
intent.putExtra(BROADCAST_REQUEST, requestInfo)
|
||||
AlfredManager.applicationContext.sendBroadcast(intent)
|
||||
}
|
||||
|
||||
private fun loggingInterceptor() =
|
||||
HttpLoggingInterceptor().apply { setLevel(HttpLoggingInterceptor.Level.BODY) }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user