package Ġcom . ish ant . music ify . ex op layer . callbacks Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Result Receiver Ċ import Ġandroid . support . v 4 . media . Media Metadata Compat Ċ import Ġandroid . support . v 4 . media . session . Playback State Compat Ċ import Ġcom . google . android . ex op layer 2 . Control Dispatcher Ċ import Ġcom . google . android . ex op layer 2 . Player Ċ import Ġcom . google . android . ex op layer 2 . ext . medi ase ssion . Media Session Connector Ċ import Ġcom . ish ant . music ify . ex op layer . Firebase Music Source Ċ Ċ // ĠThis Ġclass Ġwill Ġprepare Ġor Ġload Ġex op layer Ġusing Ġthe Ġmedia Id Ġof Ġsong Ċ class ĠMusic Playback Pre par er ( ĊĠĠĠ Ġprivate Ġval Ġfirebase Music Source : ĠFirebase Music Source , ĊĠĠĠ Ġprivate Ġval Ġplayer Prepared : Ġ( Media Metadata Compat ? )-> Unit Ġ// ĠIt Ġtakes Ġa Ġlambda Ġfunction Ġas Ġparameter Ġthat Ġwe Ġcreated Ġin ĠMusic Service . kt Ċ ): ĠMedia Session Connector . Playback Pre par er Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Command ( ĊĠĠĠĠĠĠĠ Ġplayer : ĠPlayer , ĊĠĠĠĠĠĠĠ Ġcontrol Dispatcher : ĠControl Dispatcher , ĊĠĠĠĠĠĠĠ Ġcommand : ĠString , ĊĠĠĠĠĠĠĠ Ġextras : ĠBundle ?, ĊĠĠĠĠĠĠĠ Ġcb : ĠResult Receiver ? ĊĠĠĠ Ġ): ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ// ĠWe Ġwant Ġto Ġprepare Ġor Ġplay Ġusing Ġa Ġmedia Id ĊĠĠĠ Ġoverride Ġfun Ġget Supported Prepare Actions (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPlay back State Compat . ACTION _ PRE PARE _ FROM _ MEDIA _ ID Ġor ĠPlay back State Compat . ACTION _ PLAY _ FROM _ MEDIA _ ID ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Prepare ( play When Ready : ĠBoolean ) Ġ= ĠUnit ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Prepare From Media Id ( media Id : ĠString , Ġplay When Ready : ĠBoolean , Ġextras : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġfirebase Music Source . when Ready Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem To Play Ġ= Ġfirebase Music Source . songs . find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġmedia Id Ġof Ġex op layer Ġto Ġthe Ġsong Ġwe Ġwant Ġto Ġplay Ġfrom ĠMedia MetaData Compat Ġthat Ġhas Ġreceived Ġlist Ġof Ġall Ġour Ġsongs Ġfrom Ġfirebase Ġusing ĠSong . kt Ġclass ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Id Ġ== Ġit . description . media Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLambda Ġfunction Ġcalled . ĠIt Ġwill Ġjust Ġperform Ġa Ġtask Ġin ĠMusic Service . kt Ġfor Ġus Ġand Ġreturn ĠUnit Ġ( When Ġyou Ġdon 't Ġwant Ġa Ġfunction Ġto Ġreturn Ġanything , Ġyou Ġuse ĠUnit Ġkeyword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Prepared ( item To Play ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Prepare From Search ( query : ĠString , Ġplay When Ready : ĠBoolean , Ġextras : ĠBundle ?) Ġ= ĠUnit ĊĊĠĠĠ Ġoverride Ġfun Ġon Prepare From Uri ( uri : ĠUri , Ġplay When Ready : ĠBoolean , Ġextras : ĠBundle ?) Ġ= ĠUnit Ċ }