package Ġcom . just mobile dev . mobile _ developer _ news . news _ source _ detail Ċ Ċ import Ġandroid . text . method . Link Movement Method Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . webkit . Web Chrome Client Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . just mobile dev . mobile _ developer _ news . R Ċ import Ġcom . prof . rs spar ser . Article Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . news _ article _ row . view .* Ċ import Ġjava . text . ParseException Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* ĊĊ Ċ class ĠNews Article Adapter ( val Ġarticles : ĠMutable List < Article >) Ġ: ĠRecyclerView . Adapter < News Article Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĠViewHolder ( LayoutInflater . from ( parent . context ). inflate ( ĊĠĠĠĠĠĠĠ ĠR . layout . news _ article _ row , Ġparent , Ġfalse )) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġarticles . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ= Ġholder . bind ( articles [ position ]) ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( article : ĠArticle ) Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpub DateString Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource DateString Ġ= Ġarticle . pub Date ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource S df Ġ= ĠSimpleDateFormat (" EEE , Ġd ĠM MM Ġy yyy ĠHH : mm : ss ĠZ ", ĠLocale . EN GL ISH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġsource S df . parse ( source DateString ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsdf Ġ= ĠSimpleDateFormat (" dd ĠM MMM Ġy yyy ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsdf . format ( date ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠParseException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle . pub Date ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . title . text Ġ= Ġarticle . title ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( article . image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( item View . image ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . pub Date . text Ġ= Ġpub DateString ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcategories Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġarticle . categories . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategories Ġ= Ġif Ġ( i Ġ== Ġarticle . categories . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategories Ġ+ Ġarticle . categories [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategories Ġ+ Ġarticle . categories [ i ] Ġ+ Ġ", Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . categories . text Ġ= Ġcategories ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDetermine Ġcontent Ġto Ġdisplay ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcontent Str Ġ= Ġarticle . content ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content Str Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Str Ġ= Ġarticle . description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// show Ġarticle Ġcontent Ġinside Ġa Ġdialog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarticle View Ġ= ĠWebView ( item View . context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle View . settings . load With Overview Mode Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle View . settings . java Script Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle View . is Horizontal ScrollBar Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle View . web Chrome Client Ġ= ĠWeb Chrome Client () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarticle View . load Data With Base URL ( null , Ġ"< style > img { display : Ġinline ; Ġheight : Ġauto ; Ġmax - width : Ġ 1 0 0 %; } Ġ" Ġ+ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"</ style >\ n " Ġ+ Ġ"< style > iframe { Ġheight : Ġauto ; Ġwidth : Ġauto ; }" Ġ+ Ġ"</ style >\ n " Ġ+ Ġcontent Str , Ġnull , Ġ" utf - 8 ", Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalert Dialog Ġ= Ġandroidx . appcompat . app . AlertDialog . Builder ( item View . context ). create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog . setTitle ( article . title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog . setView ( article View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog . set Button ( android x . appcompat . app . AlertDialog . BUTTON _ NE UT R AL , Ġ" OK " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġdialog , Ġ_ Ġ-> Ġdialog . dismiss () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert Dialog . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( alert Dialog . findViewById < View >( android . R . id . message ) Ġas ĠTextView ). movement Method Ġ= ĠLink Movement Method . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }