package com.fireworksdk.bridge.models import com.fireworksdk.bridge.models.enums.FWGradientDrawableOrientation import org.json.JSONArray import org.json.JSONObject object FWGradientDrawableModelDeserializer { private const val ORIENTATION_KEY = "orientation" private const val COLORS_KEY = "colors" fun deserialize(responseJson: JSONObject?): FWGradientDrawableModel? { responseJson ?: return null val orientation = if (responseJson.has(ORIENTATION_KEY)) responseJson.optString(ORIENTATION_KEY) else null val colorsJsonArray = if (responseJson.has(COLORS_KEY)) responseJson.optJSONArray(COLORS_KEY) else null val colors = deserializeColors(colorsJsonArray) return FWGradientDrawableModel( orientation = if (!orientation.isNullOrBlank()) FWGradientDrawableOrientation.deserialize(orientation) else null, colors = colors, ) } private fun deserializeColors(colorsJsonArray: JSONArray?): List? { colorsJsonArray ?: return null val list = mutableListOf() (0 until colorsJsonArray.length()).forEach { val value = colorsJsonArray.getString(it) list.add(value) } return list } }