package Ġcom . v itor 2 3 8 . covid 1 9 br as il . ui . use full inks Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . v itor 2 3 8 . covid 1 9 br as il . data . domain . Use ful Link Ċ import Ġcom . v itor 2 3 8 . covid 1 9 br as il . databinding . Item Links Binding Ċ Ċ class ĠAdapter Links ( private Ġval ĠonClick Listener : Ġ(( useful Link : ĠUseful Link ) Ġ-> ĠUnit )) Ġ: ĊĠĠĠ ĠList Adapter < Use ful Link , ĠAdapter Links . ViewHolder >( Links Diff Utils ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder . from ( parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position ), ĠonClick Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( binding : ĠItem Links Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġimage Thumbnail : ĠImageView Ġ= Ġbinding . image Thumbnail ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtext Title : ĠTextView Ġ= Ġbinding . text Title ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtext Author : ĠTextView Ġ= Ġbinding . text Author ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( link : ĠUseful Link , ĠonClick Listener : Ġ(( useful Link : ĠUseful Link ) Ġ-> ĠUnit )) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Title . text Ġ= Ġtext Title . context . getString ( link . title ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlink . author ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Author . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Author . text Ġ= Ġtext Author . context . getString ( link . author ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( image Thumbnail . context ). load ( link . thumbnail ). into ( image Thumbnail ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Listener . invoke ( link ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠItem Links Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( binding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠLinks Diff Utils Ġ: ĠDiff Util . Item Callback < Use ful Link >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠUseful Link , Ġnew Item : ĠUseful Link ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . link Ġ== Ġnew Item . link ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠUseful Link , Ġnew Item : ĠUseful Link ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }