I have the following data class
data class AdDetails(val adMedia: List<AdMedia>)
data class AdMedia(val adMetaInfo: AdMetaInfo, val adUri:List<AdUri>)
data class AdUri(val width:Int,val height:Int,val uri:String)
data class AdMetaInfo(var adTitle: String, var adId: String)
This is the smaple data
AdDetails(adMedia=[AdMedia(adMetaInfo=AdMetaInfo(adTitle=1, adId=1),
adUri=[AdUri(width=640, height=360, uri=adUrl1),
AdUri(width=426, height=240, uri=url3)])])
AdDetails(adMedia=[AdMedia(adMetaInfo=AdMetaInfo(adTitle=2, adId=2),
adUri=[AdUri(width=640, height=360, uri=adUrl2),
AdUri(width=426, height=240, uri=url3)])])
From this I want list of only 1st ad URI - adUrl1 , adUrl2
I am using map / flatmap for this but not getting desired output
val preRollUri=preRollAdDetails.adMedia.flatMap { it.adUri.map { it.uri } }
To filter out null values:
If it is guaranteed that there won't be any empty list in any of the AdUris in any of the AdMedias, the following will do (but would crash if there is an empty list):