/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠGoogle ĠLLC Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 Ġcom . google . samples . apps . ios ched . ui . search Ċ Ċ 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 . google . samples . apps . ios ched . databinding . Item SearchResult Binding Ċ Ċ class ĠSearch Adapter ( ĊĠĠĠ Ġprivate Ġval Ġsearch ViewModel : ĠSearch ViewModel Ċ ) Ġ: ĠList Adapter < SearchResult , ĠSearch ViewHolder >( Search Diff ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSearch ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSearch ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem SearchResult Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch ViewModel ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSearch ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSearch ViewHolder ( ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠItem SearchResult Binding , ĊĠĠĠ Ġprivate Ġval Ġsearch ViewModel : ĠSearch ViewModel Ċ ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠ Ġfun Ġbind ( search Result : ĠSearch Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . event Listener Ġ= Ġsearch ViewModel ĊĠĠĠĠĠĠĠ Ġbinding . search Result Ġ= Ġsearch Result ĊĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠSearch Diff Ġ: ĠDiff Util . Item Callback < SearchResult >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠSearch Result , Ġnew Item : ĠSearch Result ) Ġ= ĊĠĠĠĠĠĠĠ Ġold Item . objectId Ġ== Ġnew Item . objectId ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠSearch Result , Ġnew Item : ĠSearch Result ) Ġ= ĊĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item Ċ }