package Ġcom . m bob ios io . weather app android . 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 Ġcom . m bob ios io . weather app android . databinding . Item C ities Binding Ċ import Ġcom . m bob ios io . weather app android . listener . City ClickListener Ċ import Ġcom . m bob ios io . weather app android . model . City Ċ Ċ /* Ċ * ĠCreated Ġby ĠM bu od ile ĠOb ios io Ġon ĠOct Ġ 1 0 , Ġ 2 0 2 1 . Ċ * ĠTwitter : Ġ@ ca z ew onder Ċ * ĠN iger ia Ċ */ Ċ class ĠC ities Adapter ( ĊĠĠĠ Ġprivate Ġval Ġlistener : ĠCity ClickListener Ċ ) Ġ: ĠList Adapter < City , ĠC ities Adapter . C ities ViewHolder >( Item Callback ()) Ġ{ ĊĊĠĠĠ Ġprivate Ġclass ĠItem Callback Ġ: ĠDiff Util . Item Callback < City >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠCity , Ġnew Item : ĠCity ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item . id Ġ== Ġnew Item . id ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠCity , Ġnew Item : ĠCity ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠC ities ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠItem C ities Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), Ġparent , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠC ities ViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠC ities ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠgetItem ( position )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( it , Ġlistener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠC ities ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠItem C ities Binding ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity : ĠCity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener : ĠCity ClickListener ĊĠĠĠĠĠĠĠ Ġ) Ġ= Ġwith ( item View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . city Ġ= Ġcity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . click Listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }