package Ġcom . picture color . client . new m vi . login . binder Ċ Ċ import Ġcom . bad oo . reak t ive . dis posable . Composite Disposable Ċ import Ġcom . bad oo . reak t ive . observable . map Ċ import Ġcom . bad oo . reak t ive . observable . subscribe Ċ import Ġcom . picture color . client . new m vi . login . store . Login Store Ċ import Ġcom . picture color . client . new m vi . login . view . Login View Ċ Ċ class ĠLogin Binder ( ĊĠ Ġprivate Ġval Ġstore : ĠLogin Store Ċ ) Ġ{ ĊĊĠ Ġprivate Ġvar Ġdis pos ables Ġ= ĠComposite Disposable () ĊĠ Ġprivate Ġvar Ġview : ĠLogin View ? Ġ= Ġnull ĊĊĠ Ġfun Ġattach View ( view : ĠLogin View ) Ġ{ ĊĠĠĠ Ġthis . view Ġ= Ġview ĊĠ Ġ} ĊĊĠ Ġfun ĠonStart () Ġ{ ĊĠĠĠ Ġdis pos ables . add ( ĊĠĠĠĠĠ Ġrequire NotNull ( view ) ĊĠĠĠĠĠĠĠ Ġ. events ĊĠĠĠĠĠĠĠ Ġ. map ( Login View Event To Intent Mapper :: invoke ) ĊĠĠĠĠĠĠĠ Ġ. subscribe ( is Thread Local Ġ= Ġtrue , Ġon Next Ġ= Ġstore :: accept )) ĊĊĠĠĠ Ġdis pos ables . add ( ĊĠĠĠĠĠ Ġstore ĊĠĠĠĠĠĠĠ Ġ. states ĊĠĠĠĠĠĠĠ Ġ. map ( Login State To ViewModel Mapper :: invoke ) ĊĠĠĠĠĠĠĠ Ġ. subscribe ( is Thread Local Ġ= Ġtrue , Ġon Next Ġ= Ġ{ Ġrequire NotNull ( view ). show ( it ) Ġ})) ĊĠ Ġ} ĊĊĠ Ġfun Ġon Stop () Ġ{ ĊĠĠĠ Ġdis pos ables . clear () ĊĠ Ġ} ĊĊĠ Ġfun Ġdetach View () Ġ{ ĊĠĠĠ Ġview Ġ= Ġnull ĊĠ Ġ} ĊĊĠ Ġfun Ġon Destroy () Ġ{ ĊĠĠĠ Ġstore . dispose () ĊĠ Ġ} Ċ }