package Ġcom . mobile dev pro . domain . userdata Ċ Ċ import Ġcom . mobile dev pro . data . repository . userdata . UserData Repository Ċ import Ġcom . mobile dev pro . data . repository . userdata . UserData Repository Impl Ċ import Ġcom . mobile dev pro . domain . mapper . to Data Ċ import Ġcom . mobile dev pro . domain . mapper . to Domain Ċ import Ġcom . mobile dev pro . domain . model . User Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ /** Ċ Ġ* ĠInter actor Ġfor ĠUser Edit Ġscreen Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠD mit ri y ĠCh ern y sh Ċ Ġ* Ċ Ġ* Ġhttp :// android dev . pro Ċ Ġ* Ċ Ġ* Ġ# Mobile Dev Pro Ċ Ġ*/ Ċ Ċ class ĠUser Data Interactor Impl Ġconstructor ( ĊĠĠĠ Ġprivate Ġval ĠuserData Repository : ĠUser Data Repository Ċ ) Ġ: ĠUser Data Interactor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġupdate UserData ( name : ĠString ?, Ġage : ĠInt ): ĠSingle < Boolean > Ġ= ĊĠĠĠĠĠĠĠ ĠuserData Repository . getUser () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . to Domain () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġuser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . age Ġ= Ġage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . to Data () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserData Repository . setUser ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĊĠĠĠ Ġoverride Ġfun Ġobserve UserData (): ĠObservable < User > Ġ= ĊĠĠĠĠĠĠĠ ĠuserData Repository . getUser Observable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . to Domain () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) Ċ Ċ }