package Ġapp . me lon . user . inter actor Ċ Ċ import Ġapp . me lon . data . entities . User Ċ import Ġapp . me lon . base . domain . Sus pending Work Interactor Ċ import Ġapp . me lon . base . framework . Observable Loading Counter Ċ import Ġapp . me lon . user . data . UserRepository Ċ import Ġapp . me lon . user . data . User Status Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjavax . inject . Inject ĊĊ Ċ internal Ġclass ĠUpdate User Detail Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠUser Repository Ċ ) Ġ: ĠS us pending Work Interactor < Update User Detail . Params , ĠUser Status < User >>() Ġ{ ĊĊĠĠĠ Ġval Ġloading State Ġ= ĠObservable Loading Counter () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdo Work ( params : ĠParams ): ĠUser Status < User > Ġ{ ĊĠĠĠĠĠĠĠ Ġloading State . add Loader () ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . getUser Detail ( params . uid ) ĊĠĠĠĠĠĠĠ Ġ}. also Ġ{ Ġloading State . remove Loader () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġdata Ġclass ĠParams ( val Ġuid : ĠString ) Ċ }