package Ġcom . gmail . h ame dv ak hide . popular movies . ui . movie details Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . gmail . h ame dv ak hide . popular movies . R Ċ import Ġcom . gmail . h ame dv ak hide . popular movies . glide . G lide App Ċ import Ġcom . gmail . h ame dv ak hide . popular movies . model . Cast Ċ import Ġkotlinx . android . synt hetic . main . item _ cast . view .* Ċ Ċ class ĠCast Adapter Ġ: ĠList Adapter < Cast , ĠCast Adapter . Cast ViewHolder >( COMP AR ATOR ) Ġ{ ĊĊĠĠĠ Ġclass ĠCast ViewHolder Ġprivate Ġconstructor ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( cast : ĠCast ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirection Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMovie Details Fragment Directions . action Movie Details Fragment To Cast Fragment ( cast ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . find Nav Controller (). navigate ( direction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide App . with ( item View . image _ view _ cast _ photo _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load (" https :// image . t mdb . org / t / p / w 5 0 0 ${ cast . profile Path }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( item View . image _ view _ cast _ photo _ item ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . text _ view _ cast _ name _ item . text Ġ= Ġcast . name ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠCast ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= Ġinflater . inflate ( R . layout . item _ cast , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCast ViewHolder ( item View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠCast ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCast ViewHolder . from ( parent ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠCast ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcast Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġcast ?. let Ġ{ Ġholder . bind ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠCOMP AR ATOR Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Cast >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠCast , Ġnew Item : ĠCast ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠCast , Ġnew Item : ĠCast ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }