package Ġcom . sc ud der apps . movies up . adapter . cast and n cre w ĊĊ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Activity Options Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . sc ud der apps . movies up . Movie Detail Activity Ċ import Ġcom . sc ud der apps . movies up . R Ċ import Ġcom . sc ud der apps . movies up . api . IMAGE _ BASE _ URL Ċ import Ġcom . sc ud der apps . movies up . models . main . Movie Ċ import Ġkotlinx . android . synt hetic . main . movie _ list _ item . view .* Ċ import Ġandroid . util . Pair Ġas ĠUtil Pair Ċ Ċ class ĠMovie Adapter ( private Ġval Ġmovies : ĠList < Movie >, Ġprivate Ġval Ġcontext : ĠContext ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Movie Adapter . Movie Holder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠMovie Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView Ġ= Ġlayout Inflater . inflate ( R . layout . movie _ list _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMovie Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMovie Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Video Ġ= Ġmovies [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind Videos ( item Video , Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġmovies . size ĊĊĠĠĠ Ġclass ĠMovie Holder ( v : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( v ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġview : ĠView Ġ= Ġv ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġmovie : ĠMovie ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind Videos ( movies : ĠMovie , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . movie Ġ= Ġmovies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" movie ", Ġmovie . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . title . text Ġ= Ġmovie ?. title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . rating _ view . text Ġ= Ġ"\ uD 8 3 C \ u DF 1 F Ġ" Ġ+ Ġmovie ?. vote Average . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! movie ?. poster Path . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposter Url Ġ= ĠIMAGE _ BASE _ URL Ġ+ Ġmovie ?. poster Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( item View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( poster Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( view . movie _ image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( item View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( R . drawable . no _ image _ found ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Inside () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( view . movie _ image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠMovie Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" id ", Ġmovie ?. id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠActivity Options . make Scene Transition Animation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġas ĠActivity ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtil Pair < View , ĠString >( item View . item Card , Ġ" image Transition ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent , Ġoptions . to Bundle ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }