package Ġtv . lets robot . controller . android . robot Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ Ċ /** Ċ Ġ* ĠList Ġthat Ġcontains Ġstring Ġreferences Ġto Ġmedia Ġurls Ċ Ġ*/ Ċ class ĠCommand To Media List { ĊĠĠĠ Ġprivate Ġval Ġlist Ġ= ĠHashMap < String , ĠUri >() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBind Ġa Ġstring Ġcommand Ġto Ġan Ġaudio Ġfile Ġpassed Ġin Ġas Ġa ĠUri Ġto Ġthe Ġfile . ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġnot Ġbind Ġto Ġan Ġalready Ġused Ġkey ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġbind Audio File To Command ( command Ġ: ĠString , Ġmedia Uri : ĠUri ){ ĊĠĠĠĠĠĠĠ Ġif (! list . containsKey ( command )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist [ command ] Ġ= Ġmedia Uri ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBind Ġa Ġstring Ġcommand Ġto Ġan Ġaudio Ġfile Ġpassed Ġin Ġas Ġa ĠUri Ġto Ġthe Ġfile . ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġnot Ġbind Ġto Ġan Ġalready Ġused Ġkey . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġgrab Ġthe Ġaudio Ġfrom Ġthe Ġresources Ġraw Ġfolder ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġbind Raw Resources Audio File To Command ( command Ġ: ĠString , Ġcontext : ĠContext , Ġres Id Ġ: ĠString ){ ĊĠĠĠĠĠĠĠ Ġbind Audio File To Command ( command , Ġraw Name To Uri ( context , Ġres Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠParse Ġan Ġaudio Ġfile Ġin Ġthe ĠR . raw Ġdirectory ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġraw Name To Uri ( context : ĠContext , Ġid Name : ĠString ) Ġ: ĠUri { ĊĠĠĠĠĠĠĠ Ġreturn ĠUri . parse (" android . resource ://${ context . packageName }/ raw /$ id Name ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġun bind Ġthe Ġaudio Ġfrom Ġthe Ġcontrol Ġcommand ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Audio Binding ( command : ĠString ){ ĊĠĠĠĠĠĠĠ Ġlist . remove ( command ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemove Ġall Ġbound Ġcommands ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove All (){ ĊĠĠĠĠĠĠĠ Ġlist . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġa Ġnon - modifiable Ġlist Ġto Ġthe Ġreferences ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetList () Ġ: ĠMutable Map < String , ĠUri >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . to Mutable Map () ĊĠĠĠ Ġ} Ċ }