package Ġcom . ng oc dh . news . ui . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ng oc dh . news . R Ċ import Ġcom . ng oc dh . news . constant . App Constants Ċ import Ġcom . ng oc dh . news . data . remote . model . Articles Ċ import Ġcom . ng oc dh . news . ui . activity . Article Detail Activity Ċ import Ġcom . ng oc dh . news . ui . adapter . view holder . Article ViewHolder Ċ import Ġcom . ng oc dh . news . ui . adapter . view holder . On ListItem ClickListener Ċ import Ġcom . ng oc dh . news . ui . dialog . Article Menu Dialog Ċ import Ġcom . squareup . pic asso . Pic asso Ċ Ċ class ĠArticle Adapter ( val Ġarticles : ĠList < Articles >, Ġval Ġcontext : ĠContext ) Ġ: ĠRecyclerView . Adapter < Article ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTAG : ĠString Ġby Ġlazy Ġ{ ĠApp Constants . TAG _ PREFIX Ġ+ Ġjava Class . simple Name Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdialog : ĠArticle Menu Dialog ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Ġ= ĠArticle Menu Dialog ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠArticle ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠArticle ViewHolder ( LayoutInflater . from ( context ). inflate ( R . layout . news _ item , Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġarticles . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠArticle ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarticle Ġ= Ġarticles [ position ] ĊĊĠĠĠĠĠĠĠ Ġholder . tv Title . text Ġ= Ġarticle . title ĊĠĠĠĠĠĠĠ Ġholder . tv Description . text Ġ= Ġarticle . description ĊĠĠĠĠĠĠĠ Ġholder . tv Author . text Ġ= Ġwhen Ġ( article . author . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġ" Updating " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġr Ġ= Ġarticle . author ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( r . length Ġ> Ġ 1 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ= Ġr . substring ( 0 , Ġ 1 6 ) Ġ+ Ġ" ..." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . i Btn Menu . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠPic asso . get (). load ( article . url To Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ avatar _ news _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . ic _ avatar _ news _ placeholder _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . img Avatar ) ĊĊĊĊĠĠĠĠĠĠĠ Ġholder . setOn ListItem ClickListener ( object Ġ: ĠOn ListItem ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠArticle Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" content ", Ġarticle . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ