From 5d97f5c4d82dd501b574fc7c987bb991f7cd0d1e Mon Sep 17 00:00:00 2001 From: Girish Suragani Date: Thu, 27 Jun 2024 18:26:06 +0530 Subject: [PATCH] TP-65917 | Girish Suragani | Cta handling (#11573) --- .../naviapp/analytics/utils/NaviSDKHelper.kt | 11 +++++++ .../java/com/naviapp/app/NaviApplication.kt | 11 ------- android/gradle/libs.versions.toml | 2 +- .../adverse/AdverseDependencyProvider.kt | 31 +++++++++++++++++++ 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/android/app/src/main/java/com/naviapp/analytics/utils/NaviSDKHelper.kt b/android/app/src/main/java/com/naviapp/analytics/utils/NaviSDKHelper.kt index bf032b86bd..bfa6f07a44 100644 --- a/android/app/src/main/java/com/naviapp/analytics/utils/NaviSDKHelper.kt +++ b/android/app/src/main/java/com/naviapp/analytics/utils/NaviSDKHelper.kt @@ -15,6 +15,8 @@ import android.os.Build import android.os.Process import android.webkit.WebView import com.moengage.push.amp.plus.MiPushHelper +import com.navi.adverse.data.network.model.AdverseConfig +import com.navi.adverse.sdk.sdkManager.AdverseSdkManager import com.navi.alfred.AlfredManager import com.navi.alfred.utils.AlfredConstants import com.navi.analytics.model.AnalyticsConfiguration @@ -26,6 +28,7 @@ import com.navi.base.sharedpref.CommonPrefConstants.USER_EXTERNAL_ID import com.navi.base.sharedpref.PreferenceManager import com.navi.base.utils.BaseUtils import com.navi.common.CommonLibManager +import com.navi.common.adverse.AdverseDependencyProvider import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.DISABLE_ALFRED import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.PULSE_EVENT_BATCH_SIZE @@ -125,6 +128,14 @@ object NaviSDKHelper { appVersionName = BuildConfig.VERSION_NAME, appVersionCode = getVersionCode(), ) + AdverseSdkManager.init( + AdverseConfig( + appVersionCode = getVersionCode(), + appVersionName = BuildConfig.VERSION_NAME, + flavor = BuildConfig.FLAVOR, + ), + AdverseDependencyProvider() + ) } } diff --git a/android/app/src/main/java/com/naviapp/app/NaviApplication.kt b/android/app/src/main/java/com/naviapp/app/NaviApplication.kt index 1c45ebf2b6..c4a768e30b 100644 --- a/android/app/src/main/java/com/naviapp/app/NaviApplication.kt +++ b/android/app/src/main/java/com/naviapp/app/NaviApplication.kt @@ -30,8 +30,6 @@ import com.facebook.soloader.SoLoader import com.github.anrwatchdog.ANRWatchDog import com.google.android.play.core.splitcompat.SplitCompat import com.microsoft.codepush.react.CodePush -import com.navi.adverse.data.network.model.AdverseConfig -import com.navi.adverse.sdk.sdkManager.AdverseSdkManager import com.navi.alfred.AlfredManager import com.navi.alfred.network.AlfredApiLogsManager import com.navi.alfred.utils.AlfredConstants @@ -44,7 +42,6 @@ import com.navi.base.utils.AppLaunchUtils import com.navi.base.utils.NetWatchManger import com.navi.chat.base.ChatBaseActivity import com.navi.common.CommonLibManager -import com.navi.common.adverse.AdverseDependencyProvider import com.navi.common.resourcemanager.manager.ResourceManager import com.navi.common.ui.activity.BaseActivity import com.navi.common.uitron.util.UiTronDependencyProvider @@ -157,14 +154,6 @@ open class NaviApplication : UiTronSdkManager.init(UiTronDependencyProvider(applicationContext)) PreferenceManager.init(this) NaviSDKHelper.init(naviApplication = this) - AdverseSdkManager.init( - AdverseConfig( - appVersionCode = CommonLibManager.appVersionCode, - appVersionName = CommonLibManager.appVersionName, - flavor = BuildConfig.FLAVOR, - ), - AdverseDependencyProvider() - ) registerActivityLifecycleCallbacks(this) // Dumping anr data to click stream ANRWatchDog(WATCHDOG_ANR_TIMEOUT) diff --git a/android/gradle/libs.versions.toml b/android/gradle/libs.versions.toml index 639bb46bd7..a18f82c51b 100644 --- a/android/gradle/libs.versions.toml +++ b/android/gradle/libs.versions.toml @@ -94,7 +94,7 @@ moengage-android-sdk = "12.6.02" moengage-inapp = "6.5.0" moengage-push-amp-plus = "6.2.1" moengage-rich-notification = "4.3.2" -navi-adverse = "1.0.0-20240626.075907-4" +navi-adverse = "1.0.0-20240627.121739-9" navi-alfred = "1.9.0" navi-guarddog = "3.1.0" navi-pulse = "1.4.0" diff --git a/android/navi-common/src/main/java/com/navi/common/adverse/AdverseDependencyProvider.kt b/android/navi-common/src/main/java/com/navi/common/adverse/AdverseDependencyProvider.kt index caae492127..23d10ccbdd 100644 --- a/android/navi-common/src/main/java/com/navi/common/adverse/AdverseDependencyProvider.kt +++ b/android/navi-common/src/main/java/com/navi/common/adverse/AdverseDependencyProvider.kt @@ -7,17 +7,26 @@ package com.navi.common.adverse +import android.app.Activity +import com.google.gson.Gson +import com.google.gson.GsonBuilder import com.navi.adverse.sdk.sdkManager.IAdverseDependencyProvider import com.navi.analytics.utils.CUSTOMER_ID import com.navi.analytics.utils.DEVICE_ID import com.navi.analytics.utils.NaviTrackEvent import com.navi.analytics.utils.SESSION_ID +import com.navi.base.deeplink.DeepLinkManager +import com.navi.base.model.CtaData import com.navi.base.sharedpref.CommonPrefConstants.USER_EXTERNAL_ID import com.navi.base.sharedpref.PreferenceManager import com.navi.base.utils.BaseUtils +import com.navi.base.utils.orFalse import com.navi.common.CommonLibManager +import com.navi.common.uitron.model.action.CtaAction import com.navi.common.utils.getSessionId +import com.navi.common.utils.registerUiTronDeSerializers import com.navi.uitron.model.action.AnalyticsAction +import com.navi.uitron.model.data.UiTronAction class AdverseDependencyProvider : IAdverseDependencyProvider { override fun sendAnalyticEvent(event: AnalyticsAction) { @@ -34,4 +43,26 @@ class AdverseDependencyProvider : IAdverseDependencyProvider { override fun fetchSessionToken(): String { return BaseUtils.getSessionToken().toString() } + + override fun getGsonDeserializer(): Gson { + return GsonBuilder().registerUiTronDeSerializers().create() + } + + override fun handleUiTronAction(activity: Activity, action: UiTronAction) { + if (action is CtaAction) { + onCtaClick(action.ctaData, activity) + } + } + + fun onCtaClick(ctaData: CtaData?, activity: Activity) { + ctaData?.let { cta -> + DeepLinkManager.getDeepLinkListener() + ?.navigateTo( + activity = activity, + ctaData = cta, + finish = cta.finish.orFalse(), + clearTask = cta.clearTask.orFalse() + ) + } + } }