package Ġcom . example . appName . presentation . sum Ċ Ċ import Ġcom . example . appName . presentation . base . Base Presenter Ċ import Ġio . reactivex . Observable Ċ Ċ class ĠSum Presenter ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġview : ĠSum View , ĊĠĠĠĠĠĠĠ ĠinitialState : ĠSum ViewState Ċ ) Ġ: ĠBase Presenter < Sum ViewState , ĠSum ViewState . Partial State >( initialState ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġfirst Number : ĠLong Ġ= Ġ 0 L ĊĠĠĠ Ġprivate Ġvar Ġsecond Number : ĠLong Ġ= Ġ 0 L ĊĊĠĠĠ Ġoverride Ġfun Ġreduce ViewState ( previous State : ĠSum ViewState , Ġpartial State : ĠSum ViewState . Partial State ): ĠSum ViewState Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( partial State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSum ViewState . Partial State . Sum Calculated Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSum ViewState ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Number Ġ= Ġfirst Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Number Ġ= Ġsecond Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsum Ġ= Ġpartial State . sum ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprovide View Intent s (): ĠList < Observable < Sum ViewState . Partial State >> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( create Change First Number Observable (), Ġcreate Change Second Number Observable ()) ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Change First Number Observable (): ĠObservable < Sum ViewState . Partial State > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview . change First Number Intent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Number Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmake Sum () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠSum ViewState . Partial State . Sum Calculated ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Change Second Number Observable (): ĠObservable < Sum ViewState . Partial State > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview . change Second Number Intent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Number Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmake Sum () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠSum ViewState . Partial State . Sum Calculated ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmake Sum () Ġ= Ġfirst Number Ġ+ Ġsecond Number Ċ }