package com.fireworksdk.bridge.models import org.json.JSONObject object FWPlayerButtonConfigurationDeserializer { private const val VIDEO_DETAIL_BUTTON_KEY = "videoDetailButton" private const val CLOSE_BUTTON_KEY = "closeButton" private const val SHOULD_SHOW_CLOSE_BUTTON_WHEN_PIP_ENABLED_KEY = "shouldShowCloseButtonWhenPiPEnabled" private const val PIP_BUTTON_KEY = "pipButton" private const val MUTE_BUTTON_KEY = "muteButton" private const val UNMUTE_BUTTON_KEY = "unmuteButton" private const val PLAY_BUTTON_KEY = "playButton" private const val PAUSE_BUTTON_KEY = "pauseButton" fun deserialize(responseJson: JSONObject?): FWPlayerButtonConfigurationModel? { responseJson ?: return null val videoDetailButtonJsonObject = responseJson.optJSONObject(VIDEO_DETAIL_BUTTON_KEY) val closeButtonJsonObject = responseJson.optJSONObject(CLOSE_BUTTON_KEY) val shouldShowCloseButtonWhenPiPEnabled = responseJson.optBoolean(SHOULD_SHOW_CLOSE_BUTTON_WHEN_PIP_ENABLED_KEY, false) val pipButtonJsonObject = responseJson.optJSONObject(PIP_BUTTON_KEY) val muteButtonJsonObject = responseJson.optJSONObject(MUTE_BUTTON_KEY) val unmuteButtonJsonObject = responseJson.optJSONObject(UNMUTE_BUTTON_KEY) val playButtonJsonObject = responseJson.optJSONObject(PLAY_BUTTON_KEY) val pauseButtonJsonObject = responseJson.optJSONObject(PAUSE_BUTTON_KEY) return FWPlayerButtonConfigurationModel( videoDetailButton = FWButtonInfoDeserializer.deserialize(videoDetailButtonJsonObject), closeButton = FWButtonInfoDeserializer.deserialize(closeButtonJsonObject), shouldShowCloseButtonWhenPiPEnabled = shouldShowCloseButtonWhenPiPEnabled, pipButton = FWButtonInfoDeserializer.deserialize(pipButtonJsonObject), muteButton = FWButtonInfoDeserializer.deserialize(muteButtonJsonObject), unmuteButton = FWButtonInfoDeserializer.deserialize(unmuteButtonJsonObject), playButton = FWButtonInfoDeserializer.deserialize(playButtonJsonObject), pauseButton = FWButtonInfoDeserializer.deserialize(pauseButtonJsonObject), ) } }