package Ġcom . rick on . x imal ay ak otlin . activities Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . rick on . x imal ay ak otlin . R Ċ import Ġcom . rick on . x imal ay ak otlin . adapter . Vertical Radio Adapter Ċ import Ġcom . x imal aya . ting . android . opens dk . constants . D Transfer Constants Ċ import Ġcom . x imal aya . ting . android . opens dk . datat ras fer . Common Request Ċ import Ġcom . x imal aya . ting . android . opens dk . datat ras fer . IData CallBack Ċ import Ġcom . x imal aya . ting . android . opens dk . model . Play able Model Ċ import Ġcom . x imal aya . ting . android . opens dk . model . live . radio . Radio Ċ import Ġcom . x imal aya . ting . android . opens dk . model . live . radio . Radio List Ċ import Ġcom . x imal aya . ting . android . opens dk . player . Xm Player Manager Ċ import Ġcom . x imal aya . ting . android . opens dk . player . service . IX m Player Status Listener Ċ import Ġcom . x imal aya . ting . android . opens dk . player . service . Xm Player Exception Ċ import Ġkotlinx . android . synt hetic . main . activity _ country _ radio .* Ċ Ċ class ĠRadio List Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Recommend Radio List : ĠMutable List < Radio > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvertical Radio Adapter : ĠVertical Radio Adapter ĊĊĠĠĠ Ġprivate Ġvar Ġm Loading Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġm Player Service Manager : ĠX m Player Manager ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġcurrent Radio Pos Ġ= ĠInteger . MAX _ VALUE ĊĊĠĠĠ Ġprivate Ġvar Ġprovince Code : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġprovince Name : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ country _ radio ) ĊĊĠĠĠĠĠĠĠ Ġprovince Code Ġ= Ġintent . getString Extra (" province _ code ") ĊĠĠĠĠĠĠĠ Ġprovince Name Ġ= Ġintent . getString Extra (" province _ name ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( province Code Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ToolBar ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Radio List ( true ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ToolBar ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Radio List ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Player Service Manager Ġ= ĠX m Player Manager . getInstance ( application Context ) ĊĠĠĠĠĠĠĠ Ġm Player Service Manager ?. add Player Status Listener ( m Player Status Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĬłè½½ åĽ½å®¶ åı° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġload Radio List ( is Country : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" åĬłè½½ åĽ½å®¶ åı° çĽ´ æĴŃ çĶµ åı° ä¸į æĴŃæĶ¾ ") ĊĠĠĠĠĠĠĠ Ġif Ġ( m Loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Loading Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġif Ġ( is Country ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [ D Transfer Constants . RAD I OT YPE ] Ġ= ĠCOUN TRY _ RADIO _ TYPE . toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [ D Transfer Constants . RAD I OT YPE ] Ġ= ĠPRO V IN CE _ RADIO _ TYPE . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovince Code ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap [ D Transfer Constants . PROV IN CE CODE ] Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠCommon Request . get Rad ios ( map , Ġobject Ġ: ĠI Data CallBack < Radio List > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( radio List : ĠRadio List ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( radio List ?. rad ios Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Recommend Radio List Ġ= Ġradio List . rad ios ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry _ radio _ recycler . layout Manager Ġ= ĠLinearLayoutManager ( application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Radio Adapter Ġ= ĠVertical Radio Adapter ( application Context , Ġm Recommend Radio List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry _ radio _ recycler . adapter Ġ= Ġvertical Radio Adapter ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Radio Adapter . setOn Kotlin ItemClickListener ( object Ġ: ĠVertical Radio Adapter . IK otlin ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemClickListener ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ!= Ġcurrent Radio Pos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġposition . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Radio Pos Ġ= Ġposition ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Ġ= Ġm Recommend Radio List [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĴŃæĶ¾ çĽ´ æĴŃ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Player Service Manager ?. play Live Radio For SDK ( radio , Ġ- 1 , Ġ- 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Radio Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Loading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( code : ĠInt , Ġmessage : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Loading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" èİ·åıĸ çĶµ åı° å¤±è´¥ , éĶĻè¯¯ çłģ $ code , éĶĻè¯¯ ä¿¡æģ¯ $ message ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( getString ( R . string . load _ failed )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ToolBar ( is Country : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( country _ radio _ toolbar ) ĊĠĠĠĠĠĠĠ Ġ// ç¦ģ æŃ¢ æĺ¾ç¤º é»ĺè®¤ Ġtitle ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Show Title Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġtoolbar _ title . text Ġ= Ġif Ġ( is Country ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . country _ radio ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovince Name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcountry _ radio _ toolbar . set Navigation OnClickListener Ġ{ Ġfinish () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm Player Status Listener Ġ= Ġobject Ġ: ĠI Xm Player Status Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sound Switch ( la Model : ĠPlay able Model ?, Ġcur Model : ĠPlay able Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Radio Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sound Prepared () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sound Play Complete () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Play Stop () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Play Start () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Play Progress ( currPos : ĠInt , Ġduration : ĠInt ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Play Pause () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( exception : ĠX m Player Exception ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Buffer ing Stop () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Buffer ing Start () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Buffer Progress ( percent : ĠInt ) Ġ{} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Radio List Activity " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCOUN TRY _ RADIO _ TYPE Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPRO V IN CE _ RADIO _ TYPE Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠNET _ RADIO _ TYPE Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLOAD _ PROV IN CE _ SUCCESS Ġ= Ġ 4 ĊĠĠĠ Ġ} Ċ Ċ } Ċ