NTP-38150 | add custom action handler condition (#14998)

This commit is contained in:
Ayushman Sharma
2025-02-24 16:39:49 +05:30
committed by GitHub
parent cd22369cfd
commit 395a9f2a31
2 changed files with 36 additions and 7 deletions

View File

@@ -21,10 +21,12 @@ import com.navi.analytics.utils.SESSION_ID
import com.navi.base.AppServiceManager
import com.navi.base.deeplink.DeepLinkManager
import com.navi.base.model.CtaData
import com.navi.base.model.LineItem
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.NetWatchManger
import com.navi.base.utils.isNotNull
import com.navi.base.utils.orFalse
import com.navi.common.uitron.model.action.CtaAction
import com.navi.common.utils.Constants.ADVERSE
@@ -62,6 +64,16 @@ class AdverseDependencyProvider : IAdverseDependencyProvider {
}
}
override fun handleUiTronAction(
activity: Activity,
action: UiTronAction,
actionHandler: ((action: UiTronAction?) -> Unit)?,
) {
if (action is CtaAction) {
onCtaClick(action.ctaData, activity, actionHandler)
}
}
override fun handleApiResponse(response: Response<*>) {
NetWatchManger.buildLogMessage(
responseData = response.body(),
@@ -73,16 +85,29 @@ class AdverseDependencyProvider : IAdverseDependencyProvider {
)
}
fun onCtaClick(ctaData: CtaData?, activity: Activity) {
private fun onCtaClick(
ctaData: CtaData?,
activity: Activity,
actionHandler: ((action: UiTronAction?) -> Unit)? = null,
) {
ctaData?.let { cta ->
cta.bundle?.putString(PAGE_LAUNCH_SOURCE, ADVERSE)
if (ctaData.type == DYNAMIC_DEEPLINK && ctaData.url?.contains("http") == true) {
val intent = Intent(activity, DeeplinkManagementActivity::class.java)
intent.data = ctaData.url?.toUri()
intent.putExtra(BRANCH_NEW_SESSION, true)
intent.putExtra(PAGE_LAUNCH_SOURCE, ADVERSE)
activity.startActivity(intent)
with(activity) {
val intent =
Intent(activity, DeeplinkManagementActivity::class.java).apply {
data = ctaData.url?.toUri()
putExtra(BRANCH_NEW_SESSION, true)
putExtra(PAGE_LAUNCH_SOURCE, ADVERSE)
}
startActivity(intent)
}
} else if (
isPresentInLineItem(cta.parameters, SHOULD_USE_CUSTOM_ACTION_HANDLER) &&
actionHandler.isNotNull()
) {
actionHandler?.invoke(CtaAction(ctaData = cta))
} else {
DeepLinkManager.getDeepLinkListener()
?.navigateTo(
@@ -96,8 +121,12 @@ class AdverseDependencyProvider : IAdverseDependencyProvider {
}
}
private fun isPresentInLineItem(list: List<LineItem>?, key: String) =
list?.any { it.key == key }.orFalse()
companion object {
const val DYNAMIC_DEEPLINK = "DYNAMIC_DEEPLINK"
const val BRANCH_NEW_SESSION = "branch_force_new_session"
const val SHOULD_USE_CUSTOM_ACTION_HANDLER = "shouldUseCustomActionHandler"
}
}

View File

@@ -90,7 +90,7 @@ masayukiSuda-easingInterpolator = "v1.3.2"
mlkit-barcodeScanning = "17.3.0"
mockk = "1.13.16"
mvel2 = "2.4.15.Final"
navi-adverse = "1.16.0"
navi-adverse = "1.17.0"
navi-alfred = "2.1.0"
navi-customerDocumentCollector = "1.0.1"
navi-elex = "1.11.1"