package Ġcom . example . tv ma ze app . app . shows . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . card view . widget . Card View Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . tv ma ze app . R Ċ import Ġcom . example . tv ma ze app . data . model . Show Ċ import Ġkotlinx . android . synt hetic . main . item _ show . view .* ĊĊ Ċ class ĠShows Adapter ( private Ġval Ġcontext : ĠContext ) Ġ: ĠRecyclerView . Adapter < Shows Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġshows Data : ĠArrayList < Show > Ġ= ĠArrayList () ĊĠĠĠ Ġvar Ġon ItemClickListener : Ġ( show : ĠShow ) Ġ-> ĠUnit Ġ= Ġ{ Ġ_ Ġ-> Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . item _ show , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġshows Data . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshow Ġ= Ġshows Data [ position ] ĊĊĠĠĠĠĠĠĠ Ġholder . view Spacer . visibility Ġ= Ġif Ġ( position Ġ== Ġ 0 ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġholder . textView Title . text Ġ= Ġshow . name ĊĠĠĠĠĠĠĠ Ġholder . textView Description . text Ġ= Ġshow . summary ĊĊĠĠĠĠĠĠĠ Ġholder . card View Item . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener ( show ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate It ens ( shows Data : ĠArrayList < Show >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdiff Result Ġ= ĠDiff Util . calculate Diff ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShows Diff Callback ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshows Data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . shows Data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . shows Data . clear () ĊĠĠĠĠĠĠĠ Ġthis . shows Data . addAll ( shows Data ) ĊĠĠĠĠĠĠĠ Ġdiff Result . dispatch Updates To ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġview Spacer : ĠView Ġ= ĠitemView . view Spacer ĊĠĠĠĠĠĠĠ Ġval Ġcard View Item : ĠCard View Ġ= ĠitemView . card View Item ĊĠĠĠĠĠĠĠ Ġval ĠtextView Title : ĠTextView Ġ= ĠitemView . textView Show Title ĊĠĠĠĠĠĠĠ Ġval ĠtextView Description : ĠTextView Ġ= ĠitemView . textView Show Description ĊĊĠĠĠ Ġ} Ċ Ċ }