package Ġcom . cam eron vw illi ams . raise . ui . intro . create . presenter Ċ Ċ import Ġcom . cam eron vw illi ams . raise . data . DataManager Ċ import Ġcom . cam eron vw illi ams . raise . data . model . Player Ċ import Ġcom . cam eron vw illi ams . raise . data . model . Poker Game Ċ import Ġcom . cam eron vw illi ams . raise . ui . Base Fragment Ċ import Ġcom . cam eron vw illi ams . raise . ui . Base Presenter Ċ import Ġcom . cam eron vw illi ams . raise . ui . Navigator Ċ import Ġcom . cam eron vw illi ams . raise . ui . intro . create . Create Pass code Fragment Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . exceptions . OnError NotImplemented Exception Ċ import Ġio . reactivex . rx kotlin . with Latest From Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠCreate Pass code Presenter Ġ@ Inject Ġconstructor ( val Ġnavigator : ĠNavigator , Ġval Ġdm : ĠData Manager ) Ġ: ĠBase Presenter () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġview : ĠCreate Pass code Fragment ĊĠĠĠ Ġlateinit Ġvar Ġp oker Game : ĠP oker Game ĊĠĠĠ Ġlateinit Ġvar Ġplayer : ĠPlayer ĊĊĠĠĠ Ġfun Ġon View Created ( v : ĠBase Fragment , Ġg : ĠP oker Game , Ġp : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( v ) ĊĠĠĠĠĠĠĠ Ġview Ġ= Ġv Ġas ĠCreate Pass code Fragment ĊĠĠĠĠĠĠĠ Ġp oker Game Ġ= Ġg ĊĠĠĠĠĠĠĠ Ġplayer Ġ= Ġp ĊĊĠĠĠĠĠĠĠ Ġval Ġpass code Changes Ġ= Ġview . pass code Changes () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. distinct Until Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotBlank () Ġ&& Ġit . length Ġ> Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . enable Submit Button () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . disable Submit Button () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġback P resses Ġ= Ġview . back P resses () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsubmit Requests Ġ= Ġview . create Requests () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Latest From ( pass code Changes ) Ġ{ Ġ_, Ġpass code Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass code . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Loading View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . disable Submit Button () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Single Ġ{ ĠonCreate Clicked ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Loading View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . enable Submit Button () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( result . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Type . SUCCESS Ġ-> ĠonCreate Success ( result . data !! , Ġp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Type . FAILURE Ġ-> ĠonCreate Failure () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠOn Error NotImplemented Exception ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġview Subscriptions . addAll ( submit Requests , Ġback P resses ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonCreate Clicked ( details : ĠString ): ĠSingle < Result >? Ġ{ ĊĠĠĠĠĠĠĠ Ġp oker Game . pass code Ġ= Ġdetails ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdm . create Game ( poker Game ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġp oker Game Ġ-> ĠResult ( Result Type . SUCCESS , Ġp oker Game ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Return Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult ( Result Type . FAILURE , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonCreate Success ( poker Game : ĠP oker Game , Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigator . goTo Pending ( poker Game , Ġplayer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonCreate Failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . hide Loading View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigator . go Back () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġdata Ġclass ĠResult ( val Ġtype : ĠResult Type , Ġval Ġdata : ĠP oker Game ?) ĊĊĠĠĠ Ġprivate Ġenum Ġclass ĠResult Type Ġ{ ĊĠĠĠĠĠĠĠ ĠSUCCESS , ĊĠĠĠĠĠĠĠ ĠFAILURE ĊĠĠĠ Ġ} Ċ }