package Ġio . github . vl ad im irm i . intern e tr adi op layer . presentation . favorite . stations Ċ Ċ import Ġio . github . vl ad im irm i . intern e tr adi op layer . data . db . entity . Group Ċ import Ġio . github . vl ad im irm i . intern e tr adi op layer . data . db . entity . Station Ċ import Ġio . github . vl ad im irm i . intern e tr adi op layer . domain . inter actor . Favorite List Interactor Ċ import Ġio . github . vl ad im irm i . intern e tr adi op layer . domain . inter actor . Media Interactor Ċ import Ġio . github . vl ad im irm i . intern e tr adi op layer . domain . inter actor . Station Interactor Ċ import Ġio . github . vl ad im irm i . intern e tr adi op layer . domain . model . Flat St ations List Ċ import Ġio . github . vl ad im irm i . intern e tr adi op layer . extensions . subscribe X Ċ import Ġio . github . vl ad im irm i . intern e tr adi op layer . presentation . base . Base Presenter Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . rx kotlin . addTo Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠV lad im ir ĠM ik h ale v Ġ 1 3 . 0 2 . 2 0 1 9 . Ċ Ġ*/ Ċ Ċ class ĠF avorite St ations Presenter Ċ @ Inject Ġconstructor ( private Ġval Ġfavorite List Interactor : ĠF avorite List Interactor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmedia Interactor : ĠMedia Interactor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġstation Interactor : ĠStation Interactor ) ĊĠĠĠ Ġ: ĠBase Presenter < Favorite St ations View >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( view : ĠF avorite St ations View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite List Interactor . stations List Obs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe X ( onNext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . set St ations ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Placeholder ( it . size Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( view Sub s ) ĊĊĠĠĠĠĠĠĠ Ġmedia Interactor . current Media Obs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe X ( onNext Ġ= Ġ{ Ġview . select Station ( it . uri ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( view Sub s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġselect Station ( station : ĠStation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Interactor . current Media Ġ= Ġstation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġselect Group ( group : ĠGroup ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite List Interactor . expand Or Collapse Group ( group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe X () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( data Sub s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Group ( groupName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite List Interactor . create Group ( groupName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe X () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( view Sub s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Group ( group : ĠGroup ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite List Interactor . delete Group ( group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe X () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( data Sub s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġedit Group ( group : ĠGroup , ĠnewName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite List Interactor . update Group ( group . copy ( name Ġ= ĠnewName )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe X () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( data Sub s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmove Group Elements ( stations : ĠFlat St ations List ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite List Interactor . move Group Elements ( stations ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe X () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( data Sub s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Station ( station : ĠStation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstation Interactor . switch Favorite ( station ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe X () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( data Sub s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġedit Station ( station : ĠStation , ĠnewName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstation Interactor . update Station ( station . copy ( name Ġ= ĠnewName )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe X () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( data Sub s ) ĊĠĠĠ Ġ} Ċ }