package Ġcom . al ok . d ail yn ews . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . ViewGroup . LayoutParams . MATCH _ PARENT Ċ import Ġandroid . view . ViewGroup . LayoutParams . WRAP _ CONTENT Ċ import Ġandroid . widget . Frame Layout Ċ 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 . al ok . d ail yn ews . R Ċ import Ġcom . al ok . d ail yn ews . databinding . Item News Binding Ċ import Ġcom . al ok . d ail yn ews . interfaces . On Custom ClickListener Ċ import Ġcom . al ok . d ail yn ews . models . Lik ed News Item Ċ import Ġcom . bump tech . glide . G lide Ċ Ċ class ĠNews Adapter ( var Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġon Custom ClickListener : ĠOn Custom ClickListener < Lik ed News Item >) ĊĠĠĠ Ġ: ĠList Adapter < Lik ed News Item , ĠNews Adapter . ViewHolder >( Lik ed News Item Diff Callback ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem News Binding : ĠItem News Binding Ġ= ĠItem News Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( item News Binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnews Item : ĠL ik ed News Item Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġholder . news Title . text Ġ= Ġnews Item . title ĊĠĠĠĠĠĠĠ Ġholder . news Desc . text Ġ= Ġnews Item . description ĊĠĠĠĠĠĠĠ ĠG lide . with ( this . context !! ). load ( news Item . imageUrl ). placeholder ( R . drawable . d ail yn ews ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . news Image ) ĊĠĠĠĠĠĠĠ Ġholder . news Source Name . text Ġ= ĠString . format (" click Ġon Ġthe Ġcard Ġfor Ġmore Ġat Ġ% s ", Ġnews Item . news Source Name ) ĊĊĠĠĠĠĠĠĠ Ġholder . news Frame Layout . layout Params Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams ( MATCH _ PARENT , ĠWR AP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġholder . news Frame Layout . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbrowser Intent Ġ= ĠIntent ( Intent . ACTION _ VIEW , ĠUri . parse ( news Item . news Url )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !!. startActivity ( browser Intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . like Btn . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġholder . like Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnews Item . is Book marked Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Custom ClickListener . onClick ( news Item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( item News Binding : ĠItem News Binding ) Ġ: ĠRecyclerView . ViewHolder ( item News Binding . root ){ ĊĠĠĠĠĠĠĠ Ġval Ġnews Title : ĠTextView Ġ= Ġitem News Binding . news Title Tv ĊĠĠĠĠĠĠĠ Ġval Ġnews Desc : ĠTextView Ġ= Ġitem News Binding . news Desc Tv ĊĠĠĠĠĠĠĠ Ġval Ġnews Image : ĠImageView Ġ= Ġitem News Binding . news Image Iv ĊĠĠĠĠĠĠĠ Ġval Ġnews Source Name : ĠTextView Ġ= Ġitem News Binding . source Tv ĊĠĠĠĠĠĠĠ Ġval Ġnews Frame Layout Ġ= Ġitem News Binding . news Item Fl ĊĠĠĠĠĠĠĠ Ġval Ġlike Btn Ġ= Ġitem News Binding . like Ib ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠL ik ed News Item Diff Callback Ġ: ĠDiff Util . Item Callback < Lik ed News Item > (){ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠL ik ed News Item , Ġnew Item : ĠL ik ed News Item ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . news Id Ġ== Ġnew Item . news Id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠL ik ed News Item , Ġnew Item : ĠL ik ed News Item ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }