package com.applicaster.oasisplayer.chromecast import com.applicaster.oasisplayer.config.playable.PlayableConfig import com.applicaster.oasisplayer.config.playable.PlayableContentType import com.applicaster.oasisplayer.player.PlayerHolder import org.json.JSONObject class CastPlayerConfigBuilder { fun build(playerHolder: PlayerHolder): MutableMap? { val playableConfig = playerHolder.getPlayableConfig() val playerConfig: MutableMap = mutableMapOf() // playerConfig[CastPlugin.IS_PLAYER] = true // playerConfig[CastPlugin.TITLE] = playableConfig?.title.orEmpty() // playerConfig[CastPlugin.DESCRIPTION] = playableConfig?.desc.orEmpty() // playerConfig[CastPlugin.CONTENT_VIDEO_URL] = "vas://${playableConfig?.playableId}" // playerConfig[CastPlugin.IS_LIVE] = playableConfig?.contentType == PlayableContentType.LIVE // playerConfig[CastPlugin.VIDEO_DURATION] = 0 // playerConfig[CastPlugin.CURRENT_POSITION] = playerHolder.getCurrentVideoPositionSec() playerConfig[KEY_CUSTOM_DATA] = getCustomData(playableConfig) return playerConfig } private fun getCustomData(playableConfig: PlayableConfig?): JSONObject { return JSONObject().apply { addIfNecessary(KEY_COUNTRY, playableConfig?.streamCountry) addIfNecessary(KEY_CLIP_ID, playableConfig?.clipId) } } private fun JSONObject.addIfNecessary(key: String, value: String?) { if (value?.isNotEmpty() == true) put(key, value) } companion object { const val KEY_CUSTOM_DATA = "customData" const val KEY_COUNTRY = "country" const val KEY_CLIP_ID = "clipId" } }