NTP-38150 | add custom action handler condition (#14998)
This commit is contained in:
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user