/* Ċ Ġ* Ċ Ġ* Ġ ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġj eff ny au ke @ gmail . com Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġdev . je ff ny au ke . covid 1 9 stats . ui . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġco il . api . load Ċ import Ġdev . je ff ny au ke . covid 1 9 stats . R Ċ import Ġdev . je ff ny au ke . covid 1 9 stats . databinding . Item Country Binding Ċ import Ġdev . je ff ny au ke . covid 1 9 stats . model . Country Ċ import Ġdev . je ff ny au ke . covid 1 9 stats . utils . get Formatted Number Ċ import Ġdev . je ff ny au ke . covid 1 9 stats . utils . get Period Ċ import Ġjava . util .* Ċ Ċ class ĠCountry Adapter ( private Ġval Ġon ItemClickListener : ĠOn ItemClickListener ) Ġ: ĊĠĠĠ ĠList Adapter < Country , ĠCountry Adapter . State ViewHolder >( DIFF _ CALLBACK ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĠState ViewHolder ( ĊĠĠĠĠĠĠĠ ĠItem Country Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠState ViewHolder , Ġposition : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position ), Ġon ItemClickListener ) ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Clicked ( country : ĠCountry ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠState ViewHolder ( private Ġval Ġbinding : ĠItem Country Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( country : ĠCountry , Ġon ItemClickListener : ĠOn ItemClickListener ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text State . text Ġ= Ġ"${ binding Adapter Position Ġ+ Ġ 1 }. Ġ${ country . country }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Last Updated View . text Ġ= Ġ"| Ġ" Ġ+ ĠitemView . context . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . text _ last _ updated , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Period ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate ( country . updated ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Confirmed . text Ġ= Ġget Formatted Number ( country . cases ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Active . text Ġ= Ġget Formatted Number ( country . active ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Re covered . text Ġ= Ġget Formatted Number ( country . re covered ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Death . text Ġ= Ġget Formatted Number ( country . deaths ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Flag . load ( country . country Info ?. flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcross fade ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder ( R . color . window Background ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror ( R . color . window Background ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener ?. let Ġ{ Ġlistener Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Item Clicked ( country ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDIFF _ CALLBACK Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Country >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠCountry , Ġnew Item : ĠCountry ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item . country Ġ== Ġnew Item . country ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠCountry , Ġnew Item : ĠCountry ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }