package Ġeu . ye ger . k offee . ui . user . details Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġeu . ye ger . k offee . databinding . Fragment UserDetails Binding Ċ import Ġeu . ye ger . k offee . repository . Item Repository Ċ import Ġeu . ye ger . k offee . repository . Transaction Repository Ċ import Ġeu . ye ger . k offee . repository . UserRepository Ċ import Ġeu . ye ger . k offee . ui . Refund ViewModel Ċ import Ġeu . ye ger . k offee . utility . observe Action Ċ import Ġeu . ye ger . k offee . utility . viewModel Factories Ċ Ċ /** Ċ Ġ* ĠAbstract Ġ[ Fragment ]( https :// developer . android . com / jet pack / android x / releases / fragment ) Ġfor Ġthe Ġuser Ġdetails Ġscreen . Ċ Ġ* ĠSupports Ġrefund s . Ċ Ġ* Ċ Ġ* Ġ@ property ĠuserId ĠThe Ġid Ġof Ġthe Ġuser Ġthis Ġ[ Fragment ]( https :// developer . android . com / jet pack / android x / releases / fragment ) Ġis Ġfor . Ċ Ġ* Ġ@ property Ġuser Details ViewModel ĠThe Ġ[ UserDetails ViewModel ] Ġused Ġfor Ġaccessing Ġuser Ġinformation . Ċ Ġ* Ċ Ġ* Ġ@ author ĠJan ĠM Ã¼ ller Ċ Ġ*/ Ċ abstract Ġclass ĠUser Details Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprotected Ġabstract Ġval ĠuserId : ĠString ? ĊĊĠĠĠ Ġprivate Ġval Ġrefund ViewModel : ĠRef und ViewModel Ġby ĠviewModel Factories Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġrequire Context () ĊĠĠĠĠĠĠĠ ĠRef und ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Repository Ġ= ĠItem Repository ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Repository Ġ= ĠTransaction Repository ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Repository Ġ= ĠUser Repository ( context ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġval Ġuser Details ViewModel : ĠUser Details ViewModel ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe Ġ[ UserDetails ViewModel ] Ġis Ġinitialized . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġinitialize ViewModel () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe Ġview Ġbinding Ġis Ġinitialized . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun ĠFragment UserDetails Binding . initialize Binding () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe Ġuser Ġwith Ġthe Ġgiven Ġid Ġdoes Ġno Ġlonger Ġexist . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon NotFound () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIn fl ates Ġand Ġinitializes Ġthe Ġlayout . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġinflater ĠUsed Ġfor Ġlayout Ġinfl ation . ĊĠĠĠĠ Ġ* Ġ@ param Ġcontainer ĠUn used . ĊĠĠĠĠ Ġ* Ġ@ param ĠsavedInstanceState ĠUn used . ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġuser Ġdetails Ġview . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Details ViewModel . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialize ViewModel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserve Action ( user NotFound Action ) Ġ{ Ġon NotFound () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserve Profile Image Actions () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Show Snackbar () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠFragment UserDetails Binding . inflate ( in flater ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialize Binding () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Details ViewModel Ġ= Ġthis @ UserDetails Fragment . user Details ViewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefund ViewModel Ġ= Ġthis @ UserDetails Fragment . refund ViewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠ Ġ}. root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRef res hes Ġthe Ġ[ UserDetails ViewModel ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Details ViewModel . refresh User () ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} Ċ } Ċ