package Ġstudio . for face . covid . android . classic . ui Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . core . content . with Styled Attributes Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġkotlinx . android . synt hetic . main . item _ country . view .* Ċ import Ġstudio . for face . covid . android . classic . R Ċ import Ġstudio . for face . covid . android . classic . utils . ItemClickListener Ċ import Ġstudio . for face . covid . android . classic . utils . inflate Ċ import Ġstudio . for face . covid . android . classic . utils . onClick Ċ import Ġstudio . for face . covid . domain . entity . Country Ċ import Ġstudio . for face . covid . domain . entity . Country Id Ċ import Ġstudio . for face . the ia . dsl . image Drawable Res Ċ import Ġstudio . for face . the ia . dsl . invoke Ċ import Ġstudio . for face . the ia . dsl . the ia Ċ Ċ class ĠCount ries Adapter ( ĊĠĠĠ Ġprivate Ġval ĠonClick : ĠItem ClickListener < Country Id >, ĊĠĠĠ Ġprivate Ġval Ġon Favorite : ĠItem ClickListener < Country > Ċ ) Ġ: ĠList Adapter < Country , ĠCount ries Adapter . ViewHolder >( ĊĠĠĠ Ġobject Ġ: ĠDiff Util . Item Callback < Country >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠCountry , Ġnew Item : ĠCountry ) Ġ= Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠCountry , Ġnew Item : ĠCountry ) Ġ= Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ ĠViewHolder ( parent . inflate ( R . layout . item _ country ), ĠonClick , Ġon Favorite ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( ĊĠĠĠĠĠĠĠ Ġview : ĠView , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġclick Listener : ĠItem ClickListener < Country Id >, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġfavorite Listener : ĠItem ClickListener < Country > ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠCountry ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry _ name _ text . text Ġ= Ġitem . name . s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ Ġclick Listener ( item . id ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfavorite . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Icon ( item . favorite ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ Ġfavorite Listener ( item ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠImageView . setIcon ( favorite : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthe ia . invoke Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Drawable Res Ġ= Ġif Ġ( favorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Tint List Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ star _ 3 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . with Styled Attributes ( R . style . Theme _ App , Ġint ArrayOf ( R . attr . color On Background )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Tint List Ġ= Ġget Color State List ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ star _ bw _ 3 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ