TP-78987 | Owais | deprecated Alfred network failure receiver (#12155)
This commit is contained in:
@@ -8,8 +8,17 @@
|
||||
package com.naviapp.analytics.utils
|
||||
|
||||
import com.navi.alfred.network.AlfredApiLogsProvider
|
||||
import com.navi.analytics.utils.NaviAnalyticsHelper
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import com.navi.base.utils.NetWatchManger
|
||||
import com.navi.base.utils.isNotNullAndNotEmpty
|
||||
import com.navi.common.constants.API_URL
|
||||
import com.navi.common.constants.APP_REQUEST_ID
|
||||
import com.navi.common.constants.CODE_TEXT
|
||||
import com.navi.common.constants.MESSAGE_TEXT
|
||||
import com.navi.common.constants.NETWORK_CRASH
|
||||
import com.navi.common.constants.VERTICAL
|
||||
import com.navi.common.constants.X_TARGET
|
||||
import com.navi.common.model.common.ErrorLog
|
||||
import com.navi.common.utils.log
|
||||
import com.naviapp.utils.Constants
|
||||
@@ -18,7 +27,7 @@ import okhttp3.Response
|
||||
import org.json.JSONObject
|
||||
|
||||
class AlfredApiLogsProviderImpl : AlfredApiLogsProvider {
|
||||
override fun sendApiLog(request: Request, response: Response) {
|
||||
override fun sendApiLog(request: Request, response: Response, exception: Exception?) {
|
||||
if (NetWatchManger.isQaRelease()) {
|
||||
try {
|
||||
val responseString = response.peekBody(Long.MAX_VALUE).string()
|
||||
@@ -41,5 +50,23 @@ class AlfredApiLogsProviderImpl : AlfredApiLogsProvider {
|
||||
e.log()
|
||||
}
|
||||
}
|
||||
|
||||
if (exception != null) {
|
||||
try {
|
||||
NaviAnalyticsHelper.recordException(exception)
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
NETWORK_CRASH,
|
||||
mapOf(
|
||||
Pair(MESSAGE_TEXT, exception.message.orEmpty()),
|
||||
Pair(CODE_TEXT, response.code.toString()),
|
||||
Pair(API_URL, request.url.toString()),
|
||||
Pair(VERTICAL, request.headers[X_TARGET] ?: ""),
|
||||
Pair(APP_REQUEST_ID, request.headers[APP_REQUEST_ID] ?: "")
|
||||
)
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
e.log()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,12 +10,9 @@ package com.naviapp.analytics.utils
|
||||
import android.app.ActivityManager
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.content.Context.RECEIVER_NOT_EXPORTED
|
||||
import android.content.IntentFilter
|
||||
import android.os.Build
|
||||
import android.os.Process
|
||||
import android.webkit.WebView
|
||||
import androidx.annotation.RequiresApi
|
||||
import com.moengage.push.amp.plus.MiPushHelper
|
||||
import com.navi.adverse.data.network.model.AdverseConfig
|
||||
import com.navi.adverse.sdk.sdkManager.AdverseSdkManager
|
||||
@@ -37,10 +34,8 @@ import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.DISABLE_A
|
||||
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.PULSE_EVENT_BATCH_SIZE
|
||||
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.PULSE_EVENT_INTERVAL_IN_SECS
|
||||
import com.navi.common.managers.UserManager
|
||||
import com.navi.common.receiver.AlfredNetworkFailureReceiver
|
||||
import com.navi.common.utils.CommonUtils
|
||||
import com.navi.common.utils.getSessionId
|
||||
import com.navi.common.utils.registerReceiverWithVersionCheck
|
||||
import com.navi.common.utils.updateSessionId
|
||||
import com.navi.pay.common.setup.NaviPayManager
|
||||
import com.navi.payment.razorpay.RazorpayHelper
|
||||
@@ -145,7 +140,6 @@ object NaviSDKHelper {
|
||||
setDeviceIdIfUserNotLoggedIn()
|
||||
setSessionId(naviApplication)
|
||||
if (!FirebaseRemoteConfigHelper.getBoolean(DISABLE_ALFRED)) {
|
||||
registerAlfredNetworkReceiver(naviApplication)
|
||||
AlfredManager.getAlfredCruiseInfo(cruiseApiSuccessful = {})
|
||||
}
|
||||
CommonUtils.getUserLocation()?.let { userLocation ->
|
||||
@@ -208,16 +202,4 @@ object NaviSDKHelper {
|
||||
} catch (e: Exception) {}
|
||||
return null
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
private fun registerAlfredNetworkReceiver(naviApplication: NaviApplication) {
|
||||
val appNetworkReceiver = AlfredNetworkFailureReceiver()
|
||||
val intentFilter = IntentFilter(AlfredConstants.BROADCAST_ACTION_TYPE)
|
||||
registerReceiverWithVersionCheck(
|
||||
naviApplication,
|
||||
appNetworkReceiver,
|
||||
intentFilter,
|
||||
RECEIVER_NOT_EXPORTED
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,12 +26,12 @@ class SdkInitializer @Inject constructor() : ComponentInitializer {
|
||||
NaviSDKHelper.init(naviApplication = application)
|
||||
UiTronSdkManager.init(UiTronDependencyProvider(application.applicationContext))
|
||||
initSdkDebugMode(application.applicationContext)
|
||||
AlfredApiLogsManager.init(AlfredApiLogsProviderImpl())
|
||||
}
|
||||
|
||||
private fun initSdkDebugMode(applicationContext: Context) {
|
||||
if (BuildConfig.FLAVOR == QA && !BuildConfig.DEBUG) {
|
||||
NetWatchManger.init(context = applicationContext, flavour = BuildConfig.FLAVOR)
|
||||
AlfredApiLogsManager.init(AlfredApiLogsProviderImpl())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ moengage-push-amp-plus = "6.2.1"
|
||||
moengage-rich-notification = "4.3.2"
|
||||
mvel2 = "2.4.15.Final"
|
||||
navi-adverse = "1.1.0-20240809.104922-1"
|
||||
navi-alfred = "1.12.0-20240809.112358-2"
|
||||
navi-alfred = "1.13.1"
|
||||
navi-guarddog = "3.3.0-20240809.105101-1"
|
||||
navi-pulse = "1.5.0-20240809.105001-6"
|
||||
navi-uitron = "1.20.1-20240809.104806-3"
|
||||
|
||||
@@ -57,13 +57,5 @@
|
||||
<service android:name=".pushnotification.TimerNotificationService"
|
||||
android:foregroundServiceType="specialUse" />
|
||||
|
||||
<receiver android:name=".receiver.AlfredNetworkFailureReceiver"
|
||||
android:exported="true"
|
||||
android:permission="com.navi.alfred.permission.SEND_BROADCAST">
|
||||
<intent-filter>
|
||||
<action android:name="com.navi.alfred.utils.AlfredConstants.BROADCAST_ACTION_TYPE" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2022-2023 by Navi Technologies Limited
|
||||
* * Copyright © 2022-2024 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
@@ -18,9 +18,13 @@ const val DEFAULT_LOCALE = "defaultLocale"
|
||||
const val X_SESSION_TOKEN = "X-Session-Token"
|
||||
const val X_CLICK_STREAM_DATA = "X-Click-Stream-Data"
|
||||
const val X_TARGET = "X-Target"
|
||||
const val APP_REQUEST_ID = "appRequestId"
|
||||
const val FLOWER_BRACKETS = "{}"
|
||||
const val NETWORK_CRASH = "network_crash"
|
||||
const val MESSAGE_TEXT = "message"
|
||||
const val CODE_TEXT = "code"
|
||||
const val API_URL = "apiUrl"
|
||||
const val VERTICAL = "vertical"
|
||||
const val NETWORK_CONNECTION_ALIVE_TIME = 5L
|
||||
const val NETWORK_CONNECTION_MAX_IDLE_TIME = 0
|
||||
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2024 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.common.receiver
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
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.log
|
||||
import com.navi.analytics.utils.NaviAnalyticsHelper
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import com.navi.common.constants.NETWORK_CRASH
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class AlfredNetworkFailureReceiver : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
if (intent?.action == BROADCAST_ACTION_TYPE) {
|
||||
try {
|
||||
val exception = intent.getSerializableExtra(BROADCAST_EXCEPTION)
|
||||
val request = intent.getParcelableExtra<RequestInfo>(BROADCAST_REQUEST)
|
||||
val errorMessage = intent.getParcelableExtra<ErrorMessage>(BROADCAST_ERROR_MESSAGE)
|
||||
|
||||
if (exception is Exception) {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
NaviAnalyticsHelper.recordException(exception)
|
||||
NaviTrackEvent.trackEventOnClickStream(
|
||||
NETWORK_CRASH,
|
||||
mapOf(
|
||||
Pair("message", exception.message.orEmpty()),
|
||||
Pair("code", errorMessage?.statusCode.toString()),
|
||||
Pair("apiUrl", request?.url.toString()),
|
||||
Pair("vertical", request?.xTarget ?: ""),
|
||||
Pair("appRequestId", request?.appRequestId ?: "")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.log()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user