package Ġcom . example . aac . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . aac . databinding . Search Item Binding Ċ import Ġcom . example . aac . lib . Point Info Ċ import Ġcom . example . aac . ui . main . Search Detail Fragment Ċ import Ġcom . example . aac . ui . main . Search Fragment Directions Ċ import Ġcom . example . aac . ui . main . Super Rt Fragment Ċ import Ġcom . example . aac . ui . main . Super Rt Fragment Directions Ċ Ċ class ĠSearch ListAdapter Ġ: ĠList Adapter < Point Info , ĠSearch ListView Holder >( Search List Diff ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSearch ListView Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSearch ListView Holder ( Search Item Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSearch ListView Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠgetItem ( position ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSearch ListView Holder ( ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠSearch Item Binding Ċ ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . click Listener Ġ= ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . point ?. let Ġ{ Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . find Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Fragment Directions . action Search Fragment To Search Detail Fragment ( id . point Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ( item : ĠPoint Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpoint Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ private Ġclass ĠSearch List Diff Ġ: ĠDiff Util . Item Callback < Point Info >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠPoint Info , Ġnew Item : ĠPoint Info ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . point Id Ġ== Ġnew Item . point Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠPoint Info , Ġnew Item : ĠPoint Info ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ } Ċ