package Ġcom . github . wind se kir un . n ara es ftp . intro Ċ Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġcom . github . wind se kir un . base app . base . Base ViewModel Ċ import Ġcom . github . wind se kir un . d agger auto inject . Inject ViewModel Ċ import Ġcom . github . wind se kir un . n ara es ftp . Main Application Ċ import Ġcom . github . wind se kir un . n ara es ftp . R Ċ import Ġcom . github . wind se kir un . n ara es ftp . connection . Connection Activity Ċ import Ġcom . github . wind se kir un . n ara es ftp . controller . Connection Info Controller Ċ import Ġcom . github . wind se kir un . n ara es ftp . controller . Session Controller Ċ import Ġcom . github . wind se kir un . n ara es ftp . data . Connection Info Item Ċ import Ġcom . github . wind se kir un . n ara es ftp . event . Close Progress Indicator Dialog Ċ import Ġcom . github . wind se kir un . n ara es ftp . event . Open Progress Indicator Dialog Ċ import Ġcom . github . wind se kir un . n ara es ftp . file . FileList Activity Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . rx kotlin . addTo Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġpy x is . uz uki . live . rich util sk t . impl . F 1 Ċ import Ġpy x is . uz uki . live . rich util sk t . utils . run Delayed On Ui Thread Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠN ar ae SF TP Client Ċ Ġ* ĠClass : ĠIntro ViewModel Ċ Ġ* ĠCreated Ġby ĠPy x is Ġon Ġ 2 0 1 8 - 1 2 - 2 7 . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠDescription : Ċ Ġ*/ Ċ Ċ @ Inject ViewModel Ċ class ĠIntro ViewModel Ġ@ Inject Ċ constructor ( application : ĠMain Application ) Ġ: ĠBase ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġconnection Info Controller : ĠConnection Info Controller ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġsession Controller : ĠSession Controller ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( owner : ĠLifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Delayed On Ui Thread ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Connection Available () ĊĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Connection Available () Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection Info Controller . find Last Connection Item () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġdata , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Connection ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ subscribe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmove Connection Activity ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. addTo ( composite Disposable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtry Connection ( item : ĠConnection Info Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠOpen Progress Indicator Dialog ( getString ( R . string . connection _ connecting )) ĊĠĠĠĠĠĠĠ Ġpost Event ( event ) ĊĊĠĠĠĠĠĠĠ Ġsession Controller . connection Info Ġ= Ġitem ĊĠĠĠĠĠĠĠ Ġsession Controller . callback Ġ= ĠF 1 Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Event ( Close Progress Indicator Dialog ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmove FileList Activity ( true , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsession Controller . callback Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmove Connection Activity ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsession Controller . callback Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsession Controller . connect () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove FileList Activity ( auto Connect : ĠBoolean , Ġitem : ĠConnection Info Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection Info Controller . set Last Connection Info ( item . id , Ġauto Connect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġdata , Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ!= Ġnull Ġ|| Ġdata Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ subscribe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsession Controller . connection Info Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( FileList Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish All Activities () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. addTo ( composite Disposable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove Connection Activity ( item : ĠConnection Info Item ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Connection Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish All Activities () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconnection Info Controller . setAuto Connection Flag ( item . id , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġdata , Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ!= Ġnull Ġ|| Ġdata Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ subscribe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Connection Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish All Activities () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. addTo ( composite Disposable ) ĊĠĠĠ Ġ} Ċ }