package Ġvs u . cs f . pro cat . repo Ċ Ċ import Ġio . reactivex . rx java 3 . core . Comp letable Ċ import Ġio . reactivex . rx java 3 . core . Single Ċ import Ġio . reactivex . rx java 3 . schedul ers . Schedulers Ċ import Ġvs u . cs f . network . api . Auth Api Ċ import Ġvs u . cs f . network . model . auth . User Auth Model Ċ import Ġvs u . cs f . network . model . auth . User Login Model Ċ import Ġvs u . cs f . network . model . auth . User Registration Model Ċ import Ġvs u . cs f . pro cat . utils . Auth Holder Impl Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠAuth Repo Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġauth Holder : ĠAuth Holder Impl , ĊĠĠĠ Ġprivate Ġval Ġauth Api : ĠAuth Api , Ċ ) Ġ: ĠAuth Repo Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcheck Is Registered ( phoneNumber : ĠString ): ĠSingle < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġauth Api . check Is Registered ( phoneNumber ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsubmit Login ( phoneNumber : ĠString ): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġauth Api . login ( User Login Model ( phoneNumber )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Comp letable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap Comp letable Ġsave User Auth Model ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsubmit Registration ( ĊĠĠĠĠĠĠĠ ĠphoneNumber : ĠString , ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġemail : ĠString , ĊĠĠĠ Ġ): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġauth Api . register ( User Registration Model ( phoneNumber , Ġname , Ġemail )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Comp letable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ flatMap Comp letable Ġsave User Auth Model ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlogout (): ĠComp letable Ġ= ĊĠĠĠĠĠĠĠ Ġauth Holder . logout () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĊĠĠĠ Ġprivate Ġfun Ġsave User Auth Model ( user Model : ĠUser Auth Model ) Ġ= ĊĠĠĠĠĠĠĠ Ġauth Holder . login ( user Model ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) Ċ Ċ }