package Ġcom . yo ha q . login m vi . presentation . login Ċ Ċ import Ġcom . blue lin el abs . cond uctor . Router Ċ import Ġcom . yo ha q . login m vi . common . di . Data Component Ċ import Ġcom . yo ha q . login m vi . common . di . scopes . Controller Scope Ċ import Ġcom . yo ha q . login m vi . data . Authentication Repository Ċ import Ġcom . yo ha q . login m vi . data . DateTime Repository Ċ import Ġdagger . Component Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġio . reactivex . Observable Ċ Ċ @ Component ( ĊĠĠĠ Ġdependencies Ġ= Ġ[ Data Component :: class ], ĊĠĠĠ Ġmodules Ġ= Ġ[ Login Module :: class ] Ċ ) Ċ @ Controller Scope Ċ interface ĠLogin Component Ġ{ ĊĠ Ġval Ġview State Stream : ĠObservable < Login ViewState > Ċ } Ċ Ċ @ Module Ċ class ĠLogin Module ( ĊĠ Ġprivate Ġval Ġintent Stream : ĠObservable < Login Intent >, ĊĠ Ġprivate Ġval Ġrouter : ĠRouter Ċ ) Ġ{ ĊĊĠ Ġ@ Provides ĊĠ Ġfun Ġprovide State Stream ( ĊĠĠĠ Ġauthentication Repository : ĠAuthentication Repository , ĊĠĠĠ ĠdateTime Repository : ĠDateTime Repository ĊĠ Ġ): ĠObservable < Login State > Ġ{ ĊĠĠĠ Ġreturn Ġbuild Login State Stream ( ĊĠĠĠĠĠĠĠ Ġintent Stream , ĊĠĠĠĠĠĠĠ Ġauthentication Repository :: build Login Request , ĊĠĠĠĠĠĠĠ ĠdateTime Repository . currentTime Stream , ĊĠĠĠĠĠĠĠ Ġrouter :: build Go To LoggedIn Screen Comp letable ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Provides ĊĠ Ġfun Ġprovide ViewState Stream ( state Stream : ĠObservable < Login State >): ĠObservable < Login ViewState > Ġ{ ĊĠĠĠ Ġreturn Ġstate Stream . map ( Login State :: render ) ĊĠ Ġ} Ċ Ċ } ĊĊ