package Ġcom . long le . sof user . presentation . user detail Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . databinding . Observable Boolean Ċ import Ġandroidx . databinding . Observable Field Ċ import Ġcom . domain . use case . GetUser UseCase Ċ import Ġcom . domain . use case . GetUser UseCase . Result Ċ import Ġcom . long le . sof user . ext . addTo Ċ import Ġcom . long le . sof user . presentation . image detail . Image Detail Activity Ċ import Ġcom . long le . sof user . rx . Sticky Action Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠUser Detail ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠgetUser UseCase : ĠGetUser UseCase , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġuser Detail Router : ĠUser Detail Router Ċ ) Ġ{ ĊĊĠ Ġprivate Ġval Ġdis pos ables Ġ= ĠComposite Disposable () ĊĠ Ġval Ġprogress Visible Ġ= ĠObservable Boolean () ĊĠ Ġval Ġshow Error Getting UserDetails Ġ= ĠSt icky Action < Boolean >() ĊĠ Ġvar ĠuserName Ġ= ĠObservable Field < String >() ĊĠ Ġvar Ġuser Description Ġ= ĠObservable Field < String >() ĊĠ Ġvar Ġuser Status Ġ= ĠObservable Field < String >() ĊĠ Ġvar Ġuser Image Ġ= ĠObservable Field < String >() ĊĊĠ Ġ// ĠCalled ĠonCreate . ĠRetrieves Ġthe Ġuser Ġdetails ĊĠ Ġfun Ġbound ( id : ĠInt ) Ġ{ ĊĠĠĠ ĠgetUser UseCase . execute ( id ) ĊĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġhandle GetUser ListResult ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. addTo ( dis pos ables ) ĊĠ Ġ} ĊĊĠ Ġ// ĠCalled Ġon Destroy . ĠClean Ġup Ġmethod ĊĠ Ġfun Ġun bound () Ġ{ ĊĠĠĠ Ġdis pos ables . clear () ĊĠ Ġ} ĊĊĠ Ġ// ĠHandles ĠResult Ġfrom ĠgetUser UseCase ĊĠ Ġprivate Ġfun Ġhandle GetUser ListResult ( result : ĠResult ) Ġ{ ĊĠĠĠ Ġprogress Visible . set ( result Ġ== ĠResult . Loading ) ĊĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ ĠuserName . set ( result . user . name ) ĊĠĠĠĠĠĠĠ Ġuser Description . set ( result . user . description ) ĊĠĠĠĠĠĠĠ Ġuser Status . set ( result . user . status ) ĊĠĠĠĠĠĠĠ Ġuser Image . set ( result . user . cover Img Url ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis ĠResult . Failure Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Error Getting UserDetails . trigger ( true ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġon Image Clicked () Ġ{ ĊĠĠĠ Ġuser Detail Router . navigate ( User Detail Router . Route . IMAGE _ DETAIL , ĠBundle (). apply Ġ{ ĊĠĠĠĠĠ Ġput String ( Image Detail Activity . EXTRA _ URL , Ġuser Image . get ()) ĊĠĠĠ Ġ}) ĊĠ Ġ} Ċ } Ċ