package Ġcom . dev . cam eron c . movies . movie detail Ċ Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . dev . cam eron c . mov ied b . data . movie . detail . Cast Ċ import Ġcom . dev . cam eron c . movies . Movie Image Downloader Ċ import Ġcom . dev . cam eron c . movies . R Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMovie Actor Adapter Ġ@ Inject Ġconstructor ( private Ġval Ġimage Downloader : ĠMovie Image Downloader ) Ġ: Ġandroidx . recyclerview . widget . RecyclerView . Adapter < Movie Actor Adapter . Actor ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcast : ĠList < Cast > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġclick Listener : Ġ( actor Id : ĠLong ) Ġ-> ĠUnit ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠActor ViewHolder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActor ViewHolder ( LayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . actor _ grid _ item , Ġparent , Ġfalse )) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠActor ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactor Ġ= Ġcast [ position ] ĊĠĠĠĠĠĠĠ Ġholder . actor Name . text Ġ= Ġactor . name ĊĊĠĠĠĠĠĠĠ Ġimage Downloader . load ( actor . profile Path , Ġholder . imageView ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions (). center Crop ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions (). placeholder ( R . drawable . empty _ profile )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . imageView ) ĊĊĠĠĠĠĠĠĠ Ġholder . imageView . setOnClickListener Ġ{ Ġclick Listener . invoke ( actor . id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġcast . size ĊĊĠĠĠ Ġfun Ġset Act ors ( cast : ĠList < Cast >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . cast Ġ= Ġcast . as Sequence (). to HashSet (). as Sequence (). sorted By Ġ{ Ġit . order Ġ}. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Actor Clicked ( click Listener : Ġ( actor Id : ĠLong ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . click Listener Ġ= Ġclick Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠActor ViewHolder ( item View : ĠView ) Ġ: Ġandroidx . recyclerview . widget . RecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġval ĠimageView : ĠImageView Ġ= ĠitemView . findViewById ( R . id . actor _ item _ image ) ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġactor Name : ĠTextView Ġ= ĠitemView . findViewById ( R . id . actor _ item _ name ) ĊĠĠĠ Ġ} Ċ }