package Ġcom . xh hold . plugin . music _ player Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 4 . media . Media Browser Compat Ċ import Ġandroid . support . v 4 . media . Media Description Compat Ċ import Ġandroid . util . Log Ċ import Ġcom . xh hold . plugin . music _ player . entity . Music Ċ import Ġcom . xh hold . plugin . music _ player . entity . Music With Album And Artist Ċ import Ġcom . xh hold . plugin . music _ player . entity . Now Playlist Ċ import Ġcom . xh hold . plugin . music _ player . ext . to Media Item Ċ import Ġcom . xh hold . plugin . music _ player . ext . to Params Ċ import Ġcom . xh hold . plugin . music _ player . util . Common Util Ċ Ċ class ĠMusic Repository ( ĊĠĠĠ Ġprivate Ġval Ġdatabase : ĠMusic Database , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġalbum Dao Ġ= Ġdatabase . album Dao () ĊĠĠĠ Ġval Ġartist Dao Ġ= Ġdatabase . artist Dao () ĊĠĠĠ Ġval Ġmusic Dao Ġ= Ġdatabase . music Dao () ĊĠĠĠ Ġval Ġplaylist Dao Ġ= Ġdatabase . playlist Dao () ĊĠĠĠ Ġval Ġnow Playlist Dao Ġ= Ġdatabase . now Playlist Dao () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Music Repository " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Music ( music With Album And Artist : ĠMusic With Album And Artist ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmusic Ġ= Ġmusic With Album And Artist . music ĊĠĠĠĠĠĠĠ Ġval Ġalbum Ġ= Ġmusic With Album And Artist . album ĊĠĠĠĠĠĠĠ Ġval Ġartist Ġ= Ġmusic With Album And Artist . artist ĊĠĠĠĠĠĠĠ Ġdatabase . run In Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( music Dao . get Music By Source ( music . source ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ run In Transaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġalbum Id : ĠLong ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( album Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Id Ġ= Ġalbum Dao . get Album ByKey ( album . key )?. id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġalbum Dao . insert ( album ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( size Ġ> Ġ 0 ) Ġfirst () Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġartist Id : ĠLong ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( artist Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartist Id Ġ= Ġartist Dao . get Artist ByKey ( artist . key )?. id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġartist Dao . insert ( artist ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( size Ġ> Ġ 0 ) Ġfirst () Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . album Id Ġ= Ġalbum Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . artist Id Ġ= Ġartist Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic Dao . insert ( music ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Music ( music : ĠMusic ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase . run In Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic Dao . delete ( music ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( music . album Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcounts Ġ= Ġalbum Dao . get Album With Counts ById ( music . album Id !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( counts ?. counts Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Dao . delete ( counts . album ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( music . artist Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcounts Ġ= Ġartist Dao . get Artist With Counts ById ( music . artist Id !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( counts ?. counts Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartist Dao . delete ( counts . artist ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaylist Dao . delete Music By ( music . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Now Playlist ( mus ics : ĠList < Long >) Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase . run In Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnow Playlist Dao . delete All () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnow Playlist Dao . insert ( mus ics . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNow Playlist ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmusic Id Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= ĠCommon Util . getTime () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Root ( context : ĠContext ): ĠMutable List < Media Browser Compat . Media Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġarray ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Root Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ FA V OR ITE _ M US IC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . favorite _ music ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Root Item ( Music Schema . SCHEMA _ ALL _ M US IC , Ġcontext . getString ( R . string . all _ music )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Root Item ( Music Schema . SCHEMA _ PLAY LIST , Ġcontext . getString ( R . string . playlist )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Root Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ NOW _ PLAY LIST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . now _ playlist ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Root Item ( Music Schema . SCHEMA _ AL BU M , Ġcontext . getString ( R . string . album )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Root Item ( Music Schema . SCHEMA _ AR TI ST , Ġcontext . getString ( R . string . artist )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Root Item ( ĊĠĠĠĠĠĠĠ Ġschema : ĠString , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠ Ġ): ĠMedia Browser Compat . Media Item Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMedia Browser Compat . Media Item ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Description Compat . Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Media Id ("$ schema :${ Music Schema . SCHEMA _ ROOT }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Browser Compat . Media Item . FLAG _ BRO WS ABLE Ġor ĠMedia Browser Compat . Media Item . FLAG _ PLAY ABLE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Music By Schema ( schema : ĠString , Ġid : ĠLong ): ĠList < Music With Album And Artist >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( schema ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ PLAY LIST Ġ-> Ġplaylist Dao . get Playlist With Music And Album And Art ists ById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ?. playlist Maps ?. map Ġ{ Ġit . music Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ AL BU M Ġ-> Ġalbum Dao . get Album With Music And Art ists ById ( id )?. mus ics ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ AR TI ST Ġ-> Ġartist Dao . get Artist With Music And Album s ById ( id )?. mus ics ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ NOW _ PLAY LIST Ġ-> Ġnow Playlist Dao . get Playing Music With Album And Art ists () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . music Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ ALL _ M US IC Ġ-> Ġmusic Dao . getAll Music With Album And Art ists () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ FA V OR ITE _ M US IC Ġ-> Ġmusic Dao . get Favorite Music With Album And Art ists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Media Item ( parentId : ĠString ): ĠMutable List < Media Browser Compat . Media Item >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠparentId . to Params () ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġparams [ 0 ] ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġparams [ 1 ]. to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( schema ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ M US IC Ġ-> Ġget Music ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ PLAY LIST Ġ-> Ġget Play List ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ AL BU M Ġ-> Ġget Album ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ AR TI ST Ġ-> Ġget Artist ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ ALL _ M US IC Ġ-> ĠgetAll Music () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ FA V OR ITE _ M US IC Ġ-> Ġget Favorite Music () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Schema . SCHEMA _ NOW _ PLAY LIST Ġ-> Ġget Now Playlist () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" get Media Item : Ġ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Music ( id : ĠLong ): ĠMutable List < Media Browser Compat . Media Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray ListOf < Media Browser Compat . Media Item >() ĊĠĠĠĠĠĠĠ Ġval Ġmusic Ġ= Ġmusic Dao . get Music With Album And Artist ById ( id ) ĊĠĠĠĠĠĠĠ Ġmusic ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( music . to Media Item ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Play List ( id : ĠLong ): ĠMutable List < Media Browser Compat . Media Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray ListOf < Media Browser Compat . Media Item >() ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== ĠMusic Schema . SCHEMA _ ROOT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplaylist Ġ= Ġplaylist Dao . getAll Playlist With Counts (). map Ġ{ Ġit . to Media Item () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( playlist ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmus ics Ġ= Ġplaylist Dao . get Playlist With Music And Album And Art ists ById ( id )?. playlist Maps ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ Ġit . music Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ Ġit . to Media Item () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmus ics ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Album ( id : ĠLong ): ĠMutable List < Media Browser Compat . Media Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray ListOf < Media Browser Compat . Media Item >() ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== ĠMusic Schema . SCHEMA _ ROOT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum s Ġ= Ġalbum Dao . getAll Album With Counts (). map Ġ{ Ġit . to Media Item () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( albums ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmus ics Ġ= Ġalbum Dao . get Album With Music And Art ists ById ( id )?. mus ics ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ Ġit . to Media Item () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmus ics ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Artist ( id : ĠLong ): ĠMutable List < Media Browser Compat . Media Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray ListOf < Media Browser Compat . Media Item >() ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== ĠMusic Schema . SCHEMA _ ROOT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġartists Ġ= Ġartist Dao . getAll Artist With Counts (). map Ġ{ Ġit . to Media Item () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( artists ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmus ics Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartist Dao . get Artist With Music And Album s ById ( id )?. mus ics ?. map Ġ{ Ġit . to Media Item () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmus ics ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetAll Music (): ĠMutable List < Media Browser Compat . Media Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray ListOf < Media Browser Compat . Media Item >() ĊĠĠĠĠĠĠĠ Ġval Ġmus ics Ġ= Ġmusic Dao . getAll Music With Album And Art ists (). map Ġ{ Ġit . to Media Item () Ġ} ĊĠĠĠĠĠĠĠ Ġlist . addAll ( mus ics ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Favorite Music (): ĠMutable List < Media Browser Compat . Media Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray ListOf < Media Browser Compat . Media Item >() ĊĠĠĠĠĠĠĠ Ġval Ġmus ics Ġ= Ġmusic Dao . get Favorite Music With Album And Art ists (). map Ġ{ Ġit . to Media Item () Ġ} ĊĠĠĠĠĠĠĠ Ġlist . addAll ( mus ics ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Now Playlist (): ĠMutable List < Media Browser Compat . Media Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray ListOf < Media Browser Compat . Media Item >() ĊĠĠĠĠĠĠĠ Ġval Ġmus ics Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnow Playlist Dao . get Playing Music With Album And Art ists (). map Ġ{ Ġit . music . to Media Item () Ġ} ĊĠĠĠĠĠĠĠ Ġlist . addAll ( mus ics ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} Ċ }