diff --git a/android/app/src/main/java/com/naviapp/common/navigator/NaviDeepLinkNavigator.kt b/android/app/src/main/java/com/naviapp/common/navigator/NaviDeepLinkNavigator.kt index 460e956f72..d8d8ff1754 100644 --- a/android/app/src/main/java/com/naviapp/common/navigator/NaviDeepLinkNavigator.kt +++ b/android/app/src/main/java/com/naviapp/common/navigator/NaviDeepLinkNavigator.kt @@ -274,6 +274,7 @@ object NaviDeepLinkNavigator : DeepLinkListener { private const val WEB = "web" private const val PLATFORM_TYPE = "platformType" + private const val TARGET_PLATFORM = "targetPlatform" private const val ANDROID = "Android" private const val NAVI_CLICK_ACTION_URL = "NAVI_CLICK_ACTION_URL" @@ -544,6 +545,7 @@ object NaviDeepLinkNavigator : DeepLinkListener { var metaData: HashMap? = null var fetchHistoryByScreenName = true var idempotencyKey: String? = null + var targetPlatform: String? = null if (ctaData.parameters.isNullOrEmpty()) { bundle.getString(CHAT_BOT_SCREEN_NAME)?.let { keyValue -> shareableLink = keyValue @@ -578,6 +580,9 @@ object NaviDeepLinkNavigator : DeepLinkListener { CHAT_IDEMPOTENCY_KEY -> { idempotencyKey = keyValue.value.toString() } + TARGET_PLATFORM -> { + targetPlatform = keyValue.value.toString() + } } } val naviChatSystemLocalData = @@ -602,7 +607,12 @@ object NaviDeepLinkNavigator : DeepLinkListener { fetchHistoryByScreenName = fetchHistoryByScreenName, idempotencyKey = idempotencyKey ) - intent = getCrmWebViewIntent(activity = activity, ctaUrl = CHAT_ACTIVITY) + intent = + getCrmWebViewIntent( + activity = activity, + ctaUrl = CHAT_ACTIVITY, + platform = targetPlatform + ) bundle.putParcelable(NAVI_CHAT_SYSTEM_LOCAL_DATA, naviChatSystemLocalData) NaviTrackEvent.trackEventOnClickStream( CHAT_TOUCH_POINT_CLICKED, diff --git a/android/navi-chat/src/main/java/com/navi/chat/ui/activities/NaviHelpCenterActivity.kt b/android/navi-chat/src/main/java/com/navi/chat/ui/activities/NaviHelpCenterActivity.kt index c328c54f48..9a8191b8b5 100644 --- a/android/navi-chat/src/main/java/com/navi/chat/ui/activities/NaviHelpCenterActivity.kt +++ b/android/navi-chat/src/main/java/com/navi/chat/ui/activities/NaviHelpCenterActivity.kt @@ -15,10 +15,12 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.navi.base.deeplink.DeepLinkManager import com.navi.base.model.ActionData import com.navi.base.model.CtaData +import com.navi.base.model.LineItem import com.navi.base.model.NaviClickAction import com.navi.chat.R import com.navi.chat.databinding.ActivityHelpCenterBinding import com.navi.chat.ui.activities.SupportScreenActivity.Companion.KEY_SCREEN_NAME +import com.navi.chat.utils.ANDROID import com.navi.chat.utils.CONVERSATION_ID import com.navi.chat.utils.CONVERSATION_ID_PARAM import com.navi.chat.utils.NaviChatAnalytics @@ -33,6 +35,7 @@ import com.navi.chat.utils.NaviChatAnalytics.Companion.SCREEN_NAME import com.navi.chat.utils.NaviChatAnalytics.Companion.TIMESTAMP import com.navi.chat.utils.NaviChatAnalytics.Companion.VIEW_ACTIVE_TICKETS import com.navi.chat.utils.NaviChatAnalytics.Companion.VIEW_ALL_CHATS_CLICK +import com.navi.chat.utils.TARGET_PLATFORM import com.navi.chat.viewmodels.HelpCenterViewModel import com.navi.common.listeners.HeaderInteractionListener import com.navi.common.model.Header @@ -136,6 +139,7 @@ class NaviHelpCenterActivity : BaseActivity(), HeaderInteractionListener, Widget override fun onClick(naviClickAction: NaviClickAction, widgetId: String?) { when (naviClickAction) { is ActionData -> { + val actionDataParams = naviClickAction.parameters?.toMutableList() if (naviClickAction.url == ALL_TICKETS || naviClickAction.url == ALL_TICKETS_V2) { if (widgetId == VIEW_ACTIVE_TICKETS) { crmEventTracker.sendEvent(VIEW_ALL_CHATS_CLICK) @@ -168,16 +172,13 @@ class NaviHelpCenterActivity : BaseActivity(), HeaderInteractionListener, Widget NaviChatAnalytics.ACTIVE_CHAT_CLICK, hashMapOf(CONVERSATION_ID to conversationId) ) + actionDataParams?.add(LineItem(TARGET_PLATFORM, ANDROID)) } DeepLinkManager.getDeepLinkListener() ?.navigateTo( this@NaviHelpCenterActivity, - ctaData = - CtaData( - url = naviClickAction.url, - parameters = naviClickAction.parameters - ), + ctaData = CtaData(url = naviClickAction.url, parameters = actionDataParams), bundle = null, finish = false, needsResult = true diff --git a/android/navi-chat/src/main/java/com/navi/chat/ui/activities/NaviTicketViewActivity.kt b/android/navi-chat/src/main/java/com/navi/chat/ui/activities/NaviTicketViewActivity.kt index 7b831ff522..5b72848eff 100644 --- a/android/navi-chat/src/main/java/com/navi/chat/ui/activities/NaviTicketViewActivity.kt +++ b/android/navi-chat/src/main/java/com/navi/chat/ui/activities/NaviTicketViewActivity.kt @@ -19,6 +19,7 @@ import com.navi.base.sharedpref.PreferenceManager import com.navi.chat.db.utils.crmEventTracker import com.navi.chat.models.TicketDetailsData import com.navi.chat.ui.compose.TicketScreen +import com.navi.chat.utils.ANDROID import com.navi.chat.utils.CONVERSATION_ID import com.navi.chat.utils.CONVERSATION_ID_PARAM import com.navi.chat.utils.NaviChatAnalytics.Companion.CONVERSATION_CLICK_ACS @@ -28,6 +29,7 @@ import com.navi.chat.utils.NaviChatAnalytics.Companion.TICKET_CONTEXT import com.navi.chat.utils.NaviChatAnalytics.Companion.TICKET_ID import com.navi.chat.utils.NaviChatAnalytics.Companion.TICKET_STATE import com.navi.chat.utils.NaviChatAnalytics.Companion.TIMESTAMP +import com.navi.chat.utils.TARGET_PLATFORM import com.navi.chat.utils.TICKET_CLICKED import com.navi.chat.viewmodels.TicketListViewModel import com.navi.common.model.ModuleNameV2 @@ -86,6 +88,7 @@ class NaviTicketViewActivity : BaseActivity() { ) val actionDataParams = ticketDetailsData.actionData.parameters?.toMutableList() actionDataParams?.add(LineItem(CONVERSATION_ID_PARAM, ticketDetailsData.conversationId)) + actionDataParams?.add(LineItem(TARGET_PLATFORM, ANDROID)) DeepLinkManager.getDeepLinkListener() ?.navigateTo( this@NaviTicketViewActivity, diff --git a/android/navi-chat/src/main/java/com/navi/chat/utils/ChatNavigator.kt b/android/navi-chat/src/main/java/com/navi/chat/utils/ChatNavigator.kt index 4c5472552c..350b6ed328 100644 --- a/android/navi-chat/src/main/java/com/navi/chat/utils/ChatNavigator.kt +++ b/android/navi-chat/src/main/java/com/navi/chat/utils/ChatNavigator.kt @@ -10,7 +10,6 @@ package com.navi.chat.utils import android.app.Activity import android.content.Intent import android.os.Bundle -import androidx.core.content.ContextCompat.startActivity import com.navi.chat.ui.activities.CRMWebViewActivity import com.navi.chat.ui.activities.NaviChatActivity import com.navi.chat.ui.activities.NaviHelpCenterActivity @@ -18,7 +17,16 @@ import com.navi.chat.ui.activities.SupportScreenActivity import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.CRM_WEB_VIEW_ENABLED -fun getCrmWebViewIntent(activity: Activity?, ctaUrl: String): Intent { +fun getCrmWebViewIntent(activity: Activity?, ctaUrl: String, platform: String? = null): Intent { + + if (platform == ANDROID) { + return when (ctaUrl) { + PRODUCT_HELP_PAGE -> Intent(activity, SupportScreenActivity::class.java) + CHAT_ACTIVITY -> Intent(activity, NaviChatActivity::class.java) + else -> Intent(activity, NaviHelpCenterActivity::class.java) + } + } + val targetActivity = when { FirebaseRemoteConfigHelper.getBoolean(CRM_WEB_VIEW_ENABLED, false) -> { diff --git a/android/navi-chat/src/main/java/com/navi/chat/utils/Constants.kt b/android/navi-chat/src/main/java/com/navi/chat/utils/Constants.kt index b2ed4a01cd..7c6cc07a07 100644 --- a/android/navi-chat/src/main/java/com/navi/chat/utils/Constants.kt +++ b/android/navi-chat/src/main/java/com/navi/chat/utils/Constants.kt @@ -71,6 +71,8 @@ const val UPLOAD_FROM_GALLERY = "Upload from gallery" const val FILE_TYPE_PARAM = "fileType" const val CONVERSATION_ID_PARAM = "conversationId" +const val TARGET_PLATFORM = "targetPlatform" +const val ANDROID = "Android" const val TYPING_CUES_PATH_AGENT = "agent" const val TYPING_CUES_PATH_USER = "user" const val BOT = "BOT"