NTP-67328 add widget cleanup event in navi widgets module (#16289)
This commit is contained in:
@@ -11,6 +11,7 @@ import com.google.gson.Gson
|
||||
import com.google.gson.JsonDeserializationContext
|
||||
import com.google.gson.JsonDeserializer
|
||||
import com.google.gson.JsonElement
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import com.navi.naviwidgets.models.response.CTATextItem
|
||||
import com.navi.naviwidgets.models.response.CustomRadioButtonListTypes
|
||||
import com.navi.naviwidgets.models.response.ImageWithTextItem
|
||||
@@ -25,6 +26,16 @@ class RadioButtonItemDeserializer : JsonDeserializer<RadioButtonBaseItem> {
|
||||
): RadioButtonBaseItem? {
|
||||
json?.let {
|
||||
val jsonObject = it.asJsonObject
|
||||
jsonObject["widgetName"].asString?.let { widgetName ->
|
||||
NaviTrackEvent.trackEvent(
|
||||
eventName = "dev_navi_widget_cleanup",
|
||||
eventValues =
|
||||
mapOf(
|
||||
"widgetName" to widgetName,
|
||||
"deserializer" to "RadioButtonItemDeserializer",
|
||||
),
|
||||
)
|
||||
}
|
||||
return when (jsonObject["widgetName"].asString) {
|
||||
CustomRadioButtonListTypes.CTA_TEXT_WIDGET.value -> {
|
||||
Gson().fromJson(jsonObject, CTATextItem::class.java)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
package com.navi.naviwidgets
|
||||
|
||||
import com.google.gson.*
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import com.navi.insurance.models.response.BenefitExplainerTabsData
|
||||
import com.navi.insurance.models.response.BenefitExplainerTabsList
|
||||
import com.navi.insurance.models.response.BenefitExplainerTabsWidgetList
|
||||
@@ -51,6 +52,16 @@ class WidgetDataDeserializer : JsonDeserializer<GenericWidgetDataInfo> {
|
||||
): GenericWidgetDataInfo? {
|
||||
json?.let {
|
||||
val jsonObject = it.asJsonObject
|
||||
jsonObject["widgetName"].asString?.let { widgetName ->
|
||||
NaviTrackEvent.trackEvent(
|
||||
eventName = "dev_navi_widget_cleanup",
|
||||
eventValues =
|
||||
mapOf(
|
||||
"widgetName" to widgetName,
|
||||
"deserializer" to "WidgetDataDeserializer",
|
||||
),
|
||||
)
|
||||
}
|
||||
return when (jsonObject["widgetName"].asString) {
|
||||
WidgetTypes.DASHBOARD_INSURANCE_DETAILS_WIDGET_V2.value -> {
|
||||
Gson().fromJson(jsonObject, DashboardInsuranceDetailsWidgetV2::class.java)
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.google.gson.Gson
|
||||
import com.google.gson.JsonDeserializationContext
|
||||
import com.google.gson.JsonDeserializer
|
||||
import com.google.gson.JsonElement
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import java.lang.reflect.Type
|
||||
|
||||
class ValidationJsonDeserializer : JsonDeserializer<BaseInputValidation> {
|
||||
@@ -21,6 +22,13 @@ class ValidationJsonDeserializer : JsonDeserializer<BaseInputValidation> {
|
||||
): BaseInputValidation? {
|
||||
if (json != null) {
|
||||
val jsonObject = json.asJsonObject
|
||||
jsonObject["name"].asString?.let { name ->
|
||||
NaviTrackEvent.trackEvent(
|
||||
eventName = "dev_navi_widget_cleanup",
|
||||
eventValues =
|
||||
mapOf("name" to name, "deserializer" to "ValidationJsonDeserializer"),
|
||||
)
|
||||
}
|
||||
val className =
|
||||
when (jsonObject["name"].asString) {
|
||||
NotEmptyValidation.VALIDATION_NAME -> NotEmptyValidation::class.java
|
||||
|
||||
@@ -172,14 +172,6 @@ class DashboardHolderFactoryImpl<T : NaviBaseAdapterModel> : ViewHolderTypeFacto
|
||||
STRIP_TITLE_SUBTITLE_WIDGET -> StripWithTItleAndSubtitleWidgetVH(parent)
|
||||
ICON_LOTTIE_ANIMATION_WIDGET -> IconLottieAnimationVH(parent)
|
||||
else -> UnknownWidgetVH(parent)
|
||||
}.also {
|
||||
NaviTrackEvent.trackEvent(
|
||||
eventName = "dev_navi_widget_cleanup",
|
||||
eventValues =
|
||||
mapOf(
|
||||
"viewHolder" to it::class.java.simpleName.toString(),
|
||||
"factory" to "DashboardHolderFactoryImpl",
|
||||
),
|
||||
)
|
||||
} as BaseViewHolder<T>
|
||||
}
|
||||
as BaseViewHolder<T>
|
||||
}
|
||||
|
||||
@@ -121,14 +121,6 @@ class NaviChatViewHolderFactoryImpl<T : NaviBaseAdapterModel>(
|
||||
NAVI_CHAT_CALL_STATUS_WIDGET -> NaviChatCallStatusWidgetVH(viewDataBinding = parent)
|
||||
UNKNOWN_WIDGET -> UnknownWidgetVH(view = parent)
|
||||
else -> UnknownWidgetVH(view = parent)
|
||||
}.also {
|
||||
NaviTrackEvent.trackEvent(
|
||||
eventName = "dev_navi_widget_cleanup",
|
||||
eventValues =
|
||||
mapOf(
|
||||
"viewHolder" to it::class.java.simpleName.toString(),
|
||||
"factory" to "NaviChatViewHolderFactoryImpl",
|
||||
),
|
||||
)
|
||||
} as BaseViewHolder<T>
|
||||
}
|
||||
as BaseViewHolder<T>
|
||||
}
|
||||
|
||||
@@ -1247,14 +1247,6 @@ class ViewHolderFactoryImpl<T : NaviBaseAdapterModel> : ViewHolderTypeFactory<T>
|
||||
FUND_DETAILS_WIDGET -> FundDetailsWidgetVH(parent)
|
||||
NOTE_WIDGET -> NoteWidgetVH(parent)
|
||||
else -> UnknownWidgetVH(parent)
|
||||
}.also {
|
||||
NaviTrackEvent.trackEvent(
|
||||
eventName = "dev_navi_widget_cleanup",
|
||||
eventValues =
|
||||
mapOf(
|
||||
"viewHolder" to it::class.java.simpleName.toString(),
|
||||
"factory" to "ViewHolderFactoryImpl",
|
||||
),
|
||||
)
|
||||
} as BaseViewHolder<T>
|
||||
}
|
||||
as BaseViewHolder<T>
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ package com.navi.naviwidgets.widgets
|
||||
import com.google.gson.JsonDeserializationContext
|
||||
import com.google.gson.JsonDeserializer
|
||||
import com.google.gson.JsonElement
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import com.navi.naviwidgets.models.*
|
||||
import com.navi.naviwidgets.models.ActionButtonWidget
|
||||
import com.navi.naviwidgets.models.NoteWidget
|
||||
@@ -36,6 +37,16 @@ class NaviWidgetJsonDeserializer : JsonDeserializer<NaviWidget> {
|
||||
): NaviWidget? {
|
||||
if (json != null) {
|
||||
val jsonObject = json.asJsonObject
|
||||
jsonObject["widgetName"].asString?.let { widgetName ->
|
||||
NaviTrackEvent.trackEvent(
|
||||
eventName = "dev_navi_widget_cleanup",
|
||||
eventValues =
|
||||
mapOf(
|
||||
"widgetName" to widgetName,
|
||||
"deserializer" to "NaviWidgetJsonDeserializer",
|
||||
),
|
||||
)
|
||||
}
|
||||
val className =
|
||||
when (jsonObject["widgetName"].asString) {
|
||||
VideoPlayerWidget.WIDGET_NAME -> VideoPlayerWidget::class.java
|
||||
|
||||
@@ -10,6 +10,7 @@ package com.navi.naviwidgets.widgets
|
||||
import com.google.gson.JsonDeserializationContext
|
||||
import com.google.gson.JsonDeserializer
|
||||
import com.google.gson.JsonElement
|
||||
import com.navi.analytics.utils.NaviTrackEvent
|
||||
import com.navi.base.model.AnalyticsEvent
|
||||
import com.navi.base.model.CtaData
|
||||
import com.navi.base.model.DropOffInfo
|
||||
@@ -45,6 +46,14 @@ class ParameterValueJsonDeserializer : JsonDeserializer<ParameterValue> {
|
||||
val type = jsonObject[KEY_TYPE]?.asString
|
||||
val data = jsonObject[KEY_DATA]
|
||||
|
||||
type?.let {
|
||||
NaviTrackEvent.trackEvent(
|
||||
eventName = "dev_navi_widget_cleanup",
|
||||
eventValues =
|
||||
mapOf("type" to type, "deserializer" to "ParameterValueJsonDeserializer"),
|
||||
)
|
||||
}
|
||||
|
||||
ParameterValue(
|
||||
type,
|
||||
when {
|
||||
|
||||
Reference in New Issue
Block a user