package Ġfr . ad bon nin . rick and mort y . view . details Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġfr . ad bon nin . rick and mort y . App Ċ import Ġfr . ad bon nin . rick and mort y . R Ċ import Ġfr . ad bon nin . rick and mort y . data . Character Repository Ċ import Ġfr . ad bon nin . rick and mort y . view . details . Details Fragment . On Character Error Listener Ċ import Ġkotlinx . coroutines .* Ċ Ċ class ĠDetails Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġvar Ġcharacter Error Listener Ġ= ĠOn Character Error Listener Ġ{ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdetails Layout : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġname Text : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstatus Text : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġspecies Text : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgender Text : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġimage : ĠImageView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcoroutine Job : ĠJob ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠDetails Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinterface ĠOn Character Error Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Character Error ( message : ĠString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ details , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġdetails Layout Ġ= Ġview . findViewById ( R . id . details _ layout ) ĊĠĠĠĠĠĠĠ Ġname Text Ġ= Ġview . findViewById ( R . id . name _ text ) ĊĠĠĠĠĠĠĠ Ġstatus Text Ġ= Ġview . findViewById ( R . id . status _ text ) ĊĠĠĠĠĠĠĠ Ġspecies Text Ġ= Ġview . findViewById ( R . id . species _ text ) ĊĠĠĠĠĠĠĠ Ġgender Text Ġ= Ġview . findViewById ( R . id . gender _ text ) ĊĠĠĠĠĠĠĠ Ġimage Ġ= Ġview . findViewById ( R . id . image ) ĊĊĠĠĠĠĠĠĠ Ġdetails Layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġactivity ?. intent ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Id Ġ= Ġif Ġ( intent ?. has Extra ( App . EXTRA _ CHARACTER _ ID ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . getString Extra ( App . EXTRA _ CHARACTER _ ID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġupdate Detail ( character Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Detail ( character Id : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( character Id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter Error Listener . on Character Error ( getString ( R . string . error _ require _ character _ id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcoroutine Job Ġ= ĠCor outine Scope ( Dispatch ers . IO ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcharacter Ġ= ĠCharacter Repository (). get Character Details ( character Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( character Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetails Layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter Error Listener . on Character Error ( getString ( R . string . error _ character _ not _ found )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetails Layout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( character . image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( image ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Text . text Ġ= Ġcharacter . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Text . text Ġ= Ġcharacter . status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspecies Text . text Ġ= Ġcharacter . species ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender Text . text Ġ= Ġcharacter . gender ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }