package Ġcom . dic od ing . dummy film app . core . ui Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Rounded C orners Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . dic od ing . dummy film app . core . R Ċ import Ġcom . dic od ing . dummy film app . core . databinding . ItemList Tv show Binding Ċ import Ġcom . dic od ing . dummy film app . core . domain . model . Tv Show Ċ Ċ class ĠT v Show ListAdapter Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Tv Show ListAdapter . Tv Show ListView Holder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġlist Tv Show Ġ= ĠArrayList < Tv Show >() ĊĠĠĠ Ġvar Ġon Item Click : Ġ(( Tv Show ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġfun ĠsetData ( new List Data : ĠList < Tv Show > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( new List Data Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġlist Tv Show . clear () ĊĠĠĠĠĠĠĠ Ġlist Tv Show . addAll ( new List Data ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠT v Show ListView Holder ( private Ġval Ġbinding : ĠItem List Tv show Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( tv Show : ĠT v Show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Test Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( tv Show ) Ġ{ Ġ"$ id \ n $ title \ n $ date \ n ${ item View . context . getString ( R . string . base _ url _ image )} $ film Post er \ n $ sin opsis " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" result Test ", Ġ" Result Ġ: \ n ${ temp Test }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( item View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ("${ item View . context . getString ( R . string . base _ url _ image )} ${ tv Show . film Post er }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Rounded C orners ( 2 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions . placeholder Of ( R . drawable . ic _ refresh )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . ic _ broken _ img ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( iv Post er Tv show ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Film Title Tv show . text Ġ= Ġtv Show . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Release Date Tv show . text Ġ= Ġtv Show . date ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click ?. invoke ( list Tv Show [ absolute Adapter Position ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠT v Show ListView Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠItem List Tv show Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠT v Show ListView Holder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠT v Show ListView Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtv Show Ġ= Ġlist Tv Show [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind ( tv Show ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġlist Tv Show . size Ċ }