package Ġcom . hero es . ui . application _ flow . hero _ details . fragment Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . hero es . R Ċ import Ġcom . hero es . data . view model . Hero es Details ViewModel Ċ import Ġcom . hero es . databinding . Fragment Hero Details Binding Ċ import Ġcom . hero es . model . ui _ models . hero _ details . Hero Details Model Ċ import Ġcom . hero es . ui . application _ flow . hero _ details . view holder . Hero Details Adapter Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . hero es . utils . extensions . setAdapter Ċ import Ġcom . hero es . utils . extensions . set Vis ibly As Visible Ċ import Ġorg . k oin . android . ext . android . inject Ċ Ċ class ĠHero es Details Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ// Class ĠVariables Ġ- ĠUI ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Hero Details Binding ĊĠĠĠ Ġprivate Ġval Ġnav Args : ĠHero es Details Fragment Args Ġby Ġnav Args () ĊĊĠĠĠ Ġ// Class ĠVariables Ġ- ĠDependency ĠInjection ĊĠĠĠ Ġprivate Ġval Ġhero es Details ViewModel : ĠHero es Details ViewModel Ġby Ġinject () ĊĊĠĠĠ Ġ// Class ĠVariables Ġ- ĠAdapter ĊĠĠĠ Ġprivate Ġvar Ġadapter Ġ= ĠHero Details Adapter () ĊĊĠĠĠ Ġ// Class ĠVariables Ġ- ĠStrings ĊĠĠĠ Ġprivate Ġvar Ġhero Place OfBirth Ġ: ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Hero Details Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġhandle Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġhero es Details ViewModel . actions . observe ( view Lifecycle Owner ) Ġ{ Ġaction Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHero es Details ViewModel . Hero Details ViewModel Actions . Show Additional Hero Details Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . hero Details Floating ActionButton . set Vis ibly As Visible () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Additional Hero Details ( action . hero Details Model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHero es Details ViewModel . Hero Details ViewModel Actions . Show General Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġaction . errorMessage , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Additional Hero Details ( hero Details Model : ĠHero Details Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhero Place OfBirth Ġ= Ġif Ġ( hero Details Model . place OfBirth . length Ġ< Ġ 2 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . hero es _ details _ fragment _ not _ available ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhero Details Model . place OfBirth ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . hero es List Hero Place OfBirth TextView . text Ġ= ĠgetString ( R . string . hero _ details _ fragment _ place _ of _ birth , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhero Details Model . place OfBirth ) ĊĠĠĠĠĠĠĠ Ġbinding . hero Details RecyclerView . setAdapter ( require Context (), Ġadapter , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġadapter . submit List ( hero Details Model . hero Details Card Models . toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġhero es Details ViewModel . getAdditional Hero Details ( nav Args . hero Model . id ) ĊĠĠĠĠĠĠĠ ĠG lide . with ( require Context ()). load ( nav Args . hero Model . image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . mip map . ic _ launcher ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . hero Details Hero ImageView ) ĊĠĠĠĠĠĠĠ Ġbinding . hero es List Hero Name TextView . text Ġ= Ġnav Args . hero Model . name ĊĠĠĠĠĠĠĠ Ġbinding . hero Details Floating ActionButton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare Hero Details () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshare Hero Details () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhero Details For Sharing Ġ= ĠgetString ( R . string . hero _ details _ fragment _ hero _ details _ for _ sharing , ĊĠĠĠĠĠĠĠ Ġnav Args . hero Model . name , ĊĠĠĠĠĠĠĠ Ġhero Place OfBirth , ĊĠĠĠĠĠĠĠ Ġnav Args . hero Model . image ) ĊĠĠĠĠĠĠĠ Ġval Ġsend Intent Ġ= ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= ĠIntent . ACTION _ SEND ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ TEXT , Ġhero Details For Sharing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" text / plain " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġshare Intent Ġ= ĠIntent . create Chooser ( send Intent , Ġnull ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( share Intent ) ĊĠĠĠ Ġ} Ċ }