TP-70441 | Naman Khurmi | Added Deserializers and serializers for ani… (#11363)

This commit is contained in:
Naman Khurmi
2024-06-14 18:56:52 +05:30
committed by GitHub
parent bdc76b017e
commit c3fe5e3e3e
4 changed files with 24 additions and 37 deletions

View File

@@ -22,6 +22,10 @@ import com.navi.naviwidgets.validations.BaseInputValidation
import com.navi.naviwidgets.validations.ValidationJsonDeserializer
import com.navi.naviwidgets.widgets.NaviWidgetJsonDeserializer
import com.navi.naviwidgets.widgets.ParameterValueJsonDeserializer
import com.navi.uitron.deserializer.animationsDeserializers.AnimationSpecDeserializer
import com.navi.uitron.deserializer.animationsDeserializers.PropertyAnimatorDeserializer
import com.navi.uitron.model.animations.AnimationSpec
import com.navi.uitron.model.animations.PropertyAnimator
import com.navi.uitron.model.data.UiTronData
import com.navi.uitron.model.ui.BaseProperty
import com.naviapp.BuildConfig
@@ -89,6 +93,8 @@ object NetworkModule {
.registerApUiTronDeSerializers()
.registerTypeAdapter(UiTronData::class.java, CustomHomeWidgetDataDeSerializer())
.registerTypeAdapter(BaseProperty::class.java, HomeUitronPropertyDeserializer())
.registerTypeAdapter(AnimationSpec::class.java, AnimationSpecDeserializer())
.registerTypeAdapter(PropertyAnimator::class.java, PropertyAnimatorDeserializer())
.create()
@Singleton

View File

@@ -23,6 +23,10 @@ import com.navi.naviwidgets.validations.ValidationJsonDeserializer
import com.navi.naviwidgets.widgets.NaviWidgetJsonDeserializer
import com.navi.naviwidgets.widgets.ParameterValueJsonDeserializer
import com.navi.pay.common.utils.DateTimeConverterAdapter
import com.navi.uitron.deserializer.animationsDeserializers.AnimationSpecDeserializer
import com.navi.uitron.deserializer.animationsDeserializers.PropertyAnimatorDeserializer
import com.navi.uitron.model.animations.AnimationSpec
import com.navi.uitron.model.animations.PropertyAnimator
import com.navi.uitron.model.ui.BaseProperty
import com.naviapp.BuildConfig
import com.naviapp.home.compose.uiTron.model.deserializer.HomeUitronPropertyDeserializer
@@ -63,6 +67,8 @@ fun getGsonBuilderForWidgetizedResponse(): Gson {
.registerTypeAdapter(BaseInputValidation::class.java, ValidationJsonDeserializer())
.registerTypeAdapter(ParameterValue::class.java, ParameterValueJsonDeserializer())
.registerTypeAdapter(DateTime::class.java, DateTimeConverterAdapter())
.registerTypeAdapter(AnimationSpec::class.java, AnimationSpecDeserializer())
.registerTypeAdapter(PropertyAnimator::class.java, PropertyAnimatorDeserializer())
.registerApUiTronDeSerializers()
.registerTypeAdapter(BaseProperty::class.java, HomeUitronPropertyDeserializer())
.create()

View File

@@ -13,7 +13,6 @@ import com.google.gson.JsonObject
import com.google.gson.JsonParser
import com.navi.ap.utils.registerApUiTronDeSerializers
import com.navi.common.network.models.RepoResult
import com.navi.common.uitron.deserializer.UiTronActionDeserializer
import com.navi.naviwidgets.WidgetDataDeserializer
import com.navi.naviwidgets.models.GenericWidgetDataInfo
import com.navi.naviwidgets.models.NaviWidget
@@ -22,18 +21,12 @@ import com.navi.naviwidgets.validations.BaseInputValidation
import com.navi.naviwidgets.validations.ValidationJsonDeserializer
import com.navi.naviwidgets.widgets.NaviWidgetJsonDeserializer
import com.navi.naviwidgets.widgets.ParameterValueJsonDeserializer
import com.navi.uitron.deserializer.BaseUiTronTriggerApiActionDeserializer
import com.navi.uitron.deserializer.ComposePropertyDeserializer
import com.navi.uitron.deserializer.UiTronDataDeserializer
import com.navi.uitron.deserializer.UiTronValidationDeserializer
import com.navi.uitron.deserializer.VisualTransformationDataDeserializer
import com.navi.uitron.model.UiTronResponse
import com.navi.uitron.model.action.TriggerApiAction
import com.navi.uitron.model.data.UiTronAction
import com.navi.uitron.deserializer.animationsDeserializers.AnimationSpecDeserializer
import com.navi.uitron.deserializer.animationsDeserializers.PropertyAnimatorDeserializer
import com.navi.uitron.model.animations.AnimationSpec
import com.navi.uitron.model.animations.PropertyAnimator
import com.navi.uitron.model.data.UiTronData
import com.navi.uitron.model.ui.BaseProperty
import com.navi.uitron.model.visualtransformation.VisualTransformationData
import com.navi.uitron.validation.UiTronBaseValidation
import com.naviapp.R
import com.naviapp.app.NaviApplication
import com.naviapp.common.deserializer.CustomHomeWidgetDataDeSerializer
@@ -60,32 +53,8 @@ fun <T> mockApiResponse(
.registerApUiTronDeSerializers()
.registerTypeAdapter(UiTronData::class.java, CustomHomeWidgetDataDeSerializer())
.registerTypeAdapter(BaseProperty::class.java, HomeUitronPropertyDeserializer())
.create()
return RepoResult(customGson.fromJson(jsonElement, type))
}
fun <T> mockApiResponse2(
type: Type,
jsonKey: String,
source: Int = R.raw.mock
): RepoResult<UiTronResponse> {
val inputStream = NaviApplication.instance.resources.openRawResource(source)
val dataString = String(inputStream.readBytes(), StandardCharsets.UTF_8)
val jsonElement = (JsonParser.parseString(dataString) as? JsonObject)?.get(jsonKey)
val customGson =
GsonBuilder()
.registerTypeAdapter(UiTronData::class.java, UiTronDataDeserializer())
.registerTypeAdapter(UiTronBaseValidation::class.java, UiTronValidationDeserializer())
.registerTypeAdapter(BaseProperty::class.java, ComposePropertyDeserializer())
.registerTypeAdapter(UiTronAction::class.java, UiTronActionDeserializer())
.registerTypeAdapter(
TriggerApiAction::class.java,
BaseUiTronTriggerApiActionDeserializer()
)
.registerTypeAdapter(
VisualTransformationData::class.java,
VisualTransformationDataDeserializer()
)
.registerTypeAdapter(AnimationSpec::class.java, AnimationSpecDeserializer())
.registerTypeAdapter(PropertyAnimator::class.java, PropertyAnimatorDeserializer())
.create()
return RepoResult(customGson.fromJson(jsonElement, type))
}

View File

@@ -98,12 +98,16 @@ import com.navi.naviwidgets.widgets.ParameterValueJsonDeserializer
import com.navi.pay.common.utils.getExcludeSecureSharedPrefKeys
import com.navi.pay.common.utils.getExcludeSharedPrefKeys
import com.navi.uitron.model.action.TriggerApiAction
import com.navi.uitron.model.animations.AnimationSpec
import com.navi.uitron.model.animations.PropertyAnimator
import com.navi.uitron.model.data.UiTronAction
import com.navi.uitron.model.data.UiTronData
import com.navi.uitron.model.ui.BaseProperty
import com.navi.uitron.model.visualtransformation.VisualTransformationData
import com.navi.uitron.serializer.UiTronValidationSerializer
import com.navi.uitron.serializer.VisualTransformationDataSerializer
import com.navi.uitron.serializer.animationsSerializers.AnimationSpecSerializer
import com.navi.uitron.serializer.animationsSerializers.PropertyAnimatorSerializer
import com.naviapp.BuildConfig
import com.naviapp.R
import com.naviapp.analytics.utils.NaviAnalytics
@@ -1003,6 +1007,8 @@ fun naviAppSerializerGsonBuilder(): Gson =
.registerTypeAdapter(UploadDataConfig::class.java, UiTronUploadDataSerializer())
.registerTypeAdapter(BaseInputValidation::class.java, UiTronValidationSerializer())
.registerTypeAdapter(TriggerApiAction::class.java, UiTronTriggerApiActionSerializer())
.registerTypeAdapter(AnimationSpec::class.java, AnimationSpecSerializer())
.registerTypeAdapter(PropertyAnimator::class.java, PropertyAnimatorSerializer())
.registerTypeAdapter(
VisualTransformationData::class.java,
VisualTransformationDataSerializer()