package Ġng . cloud music . sdk . service Ċ Ċ import Ġio . reactivex . Maybe Ċ import Ġng . cloud music . api . Song Api Ċ import Ġng . cloud music . sdk . data . Song File Ċ import Ġng . cloud music . sdk . data . Song Quality Ċ import Ġng . cloud music . util . getAs Ċ Ċ class ĠSong Service Ġinternal Ġconstructor ( private Ġval Ġsong Api : ĠSong Api ) Ġ{ ĊĠĠĠ Ġfun Ġsong File ( id : ĠInt , Ġquality : ĠSong Quality ): ĠMaybe < Song File > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsong Api . song File ( Song Api . Song File Request ( listOf ( id ), Ġquality . bit Rate )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Maybe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [" data "]. as JsonArray ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull Ġ{ Ġit . as JsonObject [" code "]. as Int Ġ== Ġ 2 0 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . getAs < Song File >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠMaybe . just ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠMaybe . empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ