package Ġio . horizontal systems . bank wallet . modules . e vm network Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġio . horizontal systems . bank wallet . core . managers . url Ċ import Ġio . horizontal systems . bank wallet . core . subscribe IO Ċ import Ġio . horizontal systems . core . Single Live Event Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ Ċ class ĠE vm Network ViewModel ( private Ġval Ġservice : ĠE vm Network Service ): ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġval Ġsection View Items LiveData Ġ= ĠMutable LiveData < List < Section View Item >>() ĊĠĠĠ Ġval Ġfinish Live Event Ġ= ĠSingle Live Event < Unit >() ĊĠĠĠ Ġval Ġconfirm Live Event Ġ= ĠSingle Live Event < Unit >() ĊĊĠĠĠ Ġprivate Ġvar Ġtmp View Item : ĠView Item ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġservice . items Observable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe IO Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsync ( items : ĠList < E vm Network Service . Item >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( main Net Items , Ġtest Net Items ) Ġ= Ġitems . partition Ġ{ Ġit . is Main Net Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsection View Items : ĠList < Section View Item > Ġ= ĠlistOf NotNull ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection View Item (" Main Net ", Ġmain Net Items . map Ġ{ Ġview Item ( it ) Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection View Item (" Test Net ", Ġtest Net Items . map Ġ{ Ġview Item ( it ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġsection View Items LiveData . post Value ( section View Items ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsection View Item ( title : ĠString , Ġview Items : ĠList < View Item >): ĠSection View Item ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Items . isEmpty ()) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠSection View Item ( title , Ġview Items ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġview Item ( item : ĠE vm Network Service . Item ): ĠView Item Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠView Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . network . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . network . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . network . sync Source . url . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . selected ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtitle : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( service . blockchain ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE vm Network Module . Blockchain . E thereum Ġ-> Ġ" E thereum " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE vm Network Module . Blockchain . Bin ance Smart Chain Ġ-> Ġ" Bin ance ĠSmart ĠChain " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonSelect View Item ( view Item : ĠView Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( service . is Confirmation Required ( view Item . id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtmp View Item Ġ= Ġview Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Live Event . post Value ( Unit ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Network ( view Item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconfirm Selection () Ġ{ ĊĠĠĠĠĠĠĠ Ġtmp View Item ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Network ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtmp View Item Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Network ( view Item : ĠView Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġservice . setCurrent Network ( view Item . id ) ĊĠĠĠĠĠĠĠ Ġfinish Live Event . post Value ( Unit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġservice . clear () ĊĠĠĠĠĠĠĠ Ġdis pos ables . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠSection View Item ( ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġview Items : ĠList < View Item > ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġdata Ġclass ĠView Item ( ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġurl : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġselected : ĠBoolean , ĊĠĠĠ Ġ) Ċ } Ċ