package com.applicaster.oasisplayer.som import com.applicaster.oasisplayer.som.adrules.AdExcludeRule import com.applicaster.oasisplayer.som.adrules.AdRule class SomAdOffsetBuilder { fun build(somConfig: SomConfig): List { val finalConfig = mutableListOf() somConfig.apply { when (adExcludeRule) { AdExcludeRule.PRE_ROLL -> { finalConfig.addAll(midrollOffsetsSec) finalConfig.addIfNecessary(adRules, AdRule.POST_ROLL) } AdExcludeRule.POST_ROLL -> { finalConfig.addIfNecessary(adRules, AdRule.PRE_ROLL) finalConfig.addAll(midrollOffsetsSec) } AdExcludeRule.MID_ROLL -> { finalConfig.addIfNecessary(adRules, AdRule.PRE_ROLL) finalConfig.addIfNecessary(adRules, AdRule.POST_ROLL) } AdExcludeRule.NOTHING -> { finalConfig.addIfNecessary(adRules, AdRule.PRE_ROLL) finalConfig.addAll(midrollOffsetsSec) finalConfig.addIfNecessary(adRules, AdRule.POST_ROLL) } } } return finalConfig } private fun MutableList.addIfNecessary(adRules: List, adRule: AdRule) { if (adRules.contains(adRule)) add(adRule.somKey) } }