package Ġid . kotlin . shop . login Ċ Ċ import Ġid . kotlin . shop . data . Database Ċ import Ġid . kotlin . shop . data . user . User Ċ import Ġid . kotlin . shop . ext . safe Disposable Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjava . util . concurrent . TimeUnit . MILLISECONDS Ċ Ċ class ĠLogin Presenter ( private Ġval Ġview : ĠLogin View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġdatabase : ĠDatabase ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdis pos ables Ġby Ġlazy Ġ{ ĠComposite Disposable () Ġ} ĊĊĠĠĠ Ġfun Ġlogin ( user : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdao Ġ= Ġdatabase . user Dao () ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġdao . findById ( user . username Ġ?: Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġview . on Login Success () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġ_ Ġ-> Ġview . on User Created ( user ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( dis posable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate ( user : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdao Ġ= Ġdatabase . user Dao () ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= ĠFlow able . timer ( 1 0 0 0 L , ĠMIL LI SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdao . create ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( dis posable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . safe Disposable () ĊĠĠĠ Ġ} Ċ }