TP-58121 | Added custom serializer for ApUiTronActionType (#9894)

This commit is contained in:
Aparna Vadlamani
2024-02-23 15:52:02 +05:30
committed by GitHub
parent 34022ba8f1
commit da19ed631e
5 changed files with 39 additions and 13 deletions

View File

@@ -2,11 +2,9 @@ package com.navi.ap.common.deserializer
import com.google.gson.JsonDeserializationContext
import com.google.gson.JsonElement
import com.navi.common.uitron.model.action.DownloadAction
import com.navi.ap.common.models.actions.UpdateDataViaHandleAction
import com.navi.ap.screens.vkyc.models.action.InitiateVKYCAgentPollingAction
import com.navi.common.uitron.deserializer.UiTronActionDeserializer
import com.navi.common.uitron.model.action.SystemUiAction
import com.navi.common.uitron.util.ApActionType
import com.navi.uitron.model.data.UiTronAction
import java.lang.reflect.Type
@@ -25,12 +23,6 @@ class ApUiTronActionDeserializer : UiTronActionDeserializer() {
ApActionType.UpdateDataViaHandleAction.name ->
context?.deserialize(jsonObject, UpdateDataViaHandleAction::class.java)
ApActionType.DownloadAction.name ->
context?.deserialize(jsonObject, DownloadAction::class.java)
ApActionType.SystemUiAction.name ->
context?.deserialize(jsonObject, SystemUiAction::class.java)
ApActionType.InitiateVKYCAgentPollingAction.name ->
context?.deserialize(jsonObject, InitiateVKYCAgentPollingAction::class.java)

View File

@@ -0,0 +1,28 @@
package com.navi.ap.common.serializer
import com.google.gson.JsonElement
import com.google.gson.JsonSerializationContext
import com.navi.ap.common.models.actions.UpdateDataViaHandleAction
import com.navi.ap.screens.vkyc.models.action.InitiateVKYCAgentPollingAction
import com.navi.common.uitron.serializer.UiTronActionSerializer
import com.navi.common.uitron.util.ApActionType
import com.navi.uitron.model.data.UiTronAction
import java.lang.reflect.Type
class ApUiTronActionSerializer : UiTronActionSerializer() {
override fun serialize(
src: UiTronAction?,
typeOfSrc: Type?,
context: JsonSerializationContext?
): JsonElement? {
return when (src?.type) {
ApActionType.UpdateDataViaHandleAction.name ->
context?.serialize(src as UpdateDataViaHandleAction, UpdateDataViaHandleAction::class.java)
ApActionType.InitiateVKYCAgentPollingAction.name ->
context?.serialize(src as InitiateVKYCAgentPollingAction, InitiateVKYCAgentPollingAction::class.java)
else -> super.serialize(src, typeOfSrc, context)
}
}
}

View File

@@ -9,6 +9,7 @@ package com.navi.ap.network.di
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.navi.ap.common.serializer.ApUiTronActionSerializer
import com.navi.ap.common.serializer.CustomUiTronDataSerializer
import com.navi.ap.di.APGsonDeserializer
import com.navi.ap.di.APGsonSerializer
@@ -20,7 +21,6 @@ import com.navi.common.CommonLibManager
import com.navi.common.uitron.model.action.ThirdPartySdkAction
import com.navi.common.uitron.model.action.UploadDataConfig
import com.navi.common.uitron.serializer.AnySerializer
import com.navi.common.uitron.serializer.UiTronActionSerializer
import com.navi.common.uitron.serializer.UiTronSDKActionSerializer
import com.navi.common.uitron.serializer.UiTronTriggerApiActionSerializer
import com.navi.common.uitron.serializer.UiTronUploadDataSerializer
@@ -66,7 +66,7 @@ object APNetworkModule {
fun providesSerializer(): Gson = GsonBuilder()
.registerTypeAdapter(BaseProperty::class.java, ComposePropertySerializer())
.registerTypeAdapter(UiTronData::class.java, CustomUiTronDataSerializer())
.registerTypeAdapter(UiTronAction::class.java, UiTronActionSerializer())
.registerTypeAdapter(UiTronAction::class.java, ApUiTronActionSerializer())
.registerTypeAdapter(UploadDataConfig::class.java, UiTronUploadDataSerializer())
.registerTypeAdapter(BaseInputValidation::class.java, UiTronValidationSerializer())
.registerTypeAdapter(TriggerApiAction::class.java, UiTronTriggerApiActionSerializer())

View File

@@ -12,10 +12,12 @@ import com.google.gson.JsonElement
import com.navi.common.uitron.model.action.AnalyticsActionV2
import com.navi.common.uitron.model.action.BottomSheetStateAction
import com.navi.common.uitron.model.action.CtaAction
import com.navi.common.uitron.model.action.DownloadAction
import com.navi.common.uitron.model.action.ExecuteActionsCorrespondingToKey
import com.navi.common.uitron.model.action.LaunchIntentAction
import com.navi.common.uitron.model.action.PostLocationAction
import com.navi.common.uitron.model.action.PaymentStatusAction
import com.navi.common.uitron.model.action.PostLocationAction
import com.navi.common.uitron.model.action.SystemUiAction
import com.navi.common.uitron.model.action.ThirdPartySdkAction
import com.navi.common.uitron.model.action.UpdateStateHandleActionV2
import com.navi.common.uitron.model.action.UpdateViewStateActionV2
@@ -68,6 +70,10 @@ open class UiTronActionDeserializer : BaseUiTronActionDeserializer() {
context?.deserialize(jsonObject, BottomSheetStateAction::class.java)
ApActionType.PaymentStatusAction.name ->
context?.deserialize(jsonObject, PaymentStatusAction::class.java)
ApActionType.DownloadAction.name ->
context?.deserialize(jsonObject, DownloadAction::class.java)
ApActionType.SystemUiAction.name ->
context?.deserialize(jsonObject, SystemUiAction::class.java)
else -> super.deserialize(json, typeOfT, context)
}
}

View File

@@ -16,8 +16,8 @@ import com.navi.common.uitron.model.action.DownloadAction
import com.navi.common.uitron.model.action.ExecuteActionsCorrespondingToKey
import com.navi.common.uitron.model.action.LaunchIntentAction
import com.navi.common.uitron.model.action.PaymentStatusAction
import com.navi.common.uitron.model.action.SystemUiAction
import com.navi.common.uitron.model.action.PostLocationAction
import com.navi.common.uitron.model.action.SystemUiAction
import com.navi.common.uitron.model.action.ThirdPartySdkAction
import com.navi.common.uitron.model.action.UpdateStateHandleActionV2
import com.navi.common.uitron.model.action.UpdateViewStateActionV2
@@ -31,7 +31,7 @@ import com.navi.uitron.model.data.UiTronActionType
import com.navi.uitron.serializer.BaseUiTronActionSerializer
import java.lang.reflect.Type
class UiTronActionSerializer : BaseUiTronActionSerializer() {
open class UiTronActionSerializer : BaseUiTronActionSerializer() {
override fun serialize(
src: UiTronAction?,