package com.applicaster.oasisplayer.config.oasis import android.content.Context import com.applicaster.oasisplayer.BuildConfig import com.applicaster.oasisplayer.config.plugin.PluginConfig import de.prosiebensat1digital.oasisplayer.player_api.OasisEnvironment import de.prosiebensat1digital.oasisplayer.player_api.PlayerConfiguration object OasisEnvironmentInitializer { private val oasisEnvironments = mutableMapOf() private var defaultConfig: PluginConfig? = PluginConfig() fun getEnvironment(context: Context, playerConfigId: String): OasisEnvironment? { return if (oasisEnvironments.containsKey(playerConfigId)) { oasisEnvironments[playerConfigId] } else { createEnvironment(context, playerConfigId) } } private fun createEnvironment(context: Context, playerConfigId: String): OasisEnvironment { defaultConfig?.configId = playerConfigId val newEnvironment = OasisEnvironment(context.applicationContext, createPlayerConfiguration( defaultConfig ) ) oasisEnvironments[playerConfigId] = newEnvironment OasisEnvironment.isLoggingEnabled = BuildConfig.DEBUG return newEnvironment } private fun createPlayerConfiguration(pluginConfig: PluginConfig?) = PlayerConfiguration( configId = pluginConfig?.configId.orEmpty(), isOpenMeasurementTrackingEnabled = true // optional, default: true ) }