package Ġcom . gu il her me hol z . where isl unch . ui . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . databinding . Data Binding Util Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . gu il her me hol z . where isl unch . R Ċ import Ġcom . gu il her me hol z . where isl unch . databinding . Search Item Binding Ċ import Ġcom . gu il her me hol z . where isl unch . domain . model . Restaurant Ċ import Ġcom . gu il her me hol z . where isl unch . ui . navigation . Restaurant Navigator Ċ import Ġcom . gu il her me hol z . where isl unch . view model . Search Item ViewModel Ċ Ċ class ĠSearch ListAdapter ( context : ĠContext ) Ġ: ĠRecyclerView . Adapter < Search ListAdapter . Search Item ViewHolder >() Ġ{ ĊĊĠĠĠ Ġval Ġinflater : ĠLayoutInflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠ Ġval Ġitems : ĠMutable List < Restaurant > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġval Ġnavigator : ĠRest aurant Navigator Ġ= ĠRest aurant Navigator ( context ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSearch Item ViewHolder ?, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder ?. bind ( items [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġitems . size ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup ?, Ġview Type : ĠInt ): ĠSearch Item ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSearch Item ViewHolder ( in flater . inflate ( R . layout . item _ search , Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Items ( rest aurants : ĠList < Restaurant >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchange Ġ= Ġrest aurants . size Ġ== Ġitems . size ĊĠĠĠĠĠĠĠ Ġitems . clear () ĊĠĠĠĠĠĠĠ Ġitems . addAll ( rest aurants ) ĊĠĠĠĠĠĠĠ Ġif Ġ( change ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Range Changed ( 0 , Ġrest aurants . size ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠSearch Item ViewHolder ( val Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel : ĠSearch Item ViewModel Ġ= ĠSearch Item ViewModel ( navigator ) ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠSearch Item Binding Ġ= ĠData Binding Util . bind ( view ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( restaurant : ĠRest aurant ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . bind ( restaurant ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }