package Ġcom . ki y ot aka . jet pack demo . adapter Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . blank j . util code . util . Toast Utils Ċ import Ġcom . ki y ot aka . jet pack demo . R Ċ import Ġcom . ki y ot aka . jet pack demo . databinding . Item Re cycle Consult Binding Ċ import Ġcom . ki y ot aka . jet pack demo . http . Consult Response Ċ import Ġcom . ki y ot aka . jet pack demo . ui . fragment . main . Home Fragment Ċ Ċ class ĠConsult Adapter Ġconstructor ( val Ġfragment : ĠFragment ) Ġ: ĊĠĠĠ ĠList Adapter < Consult Response , ĠConsult Adapter . ViewHolder >( Consult Diff CallBack ()) Ġ{ ĊĊĠĠĠ Ġclass ĠViewHolder ( private Ġval Ġbinding : ĠItem Re cycle Consult Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( listener : ĠView . OnClickListener , Ġitem : ĠConsult Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . consult Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Pending Bindings () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Re cycle Consult Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġparent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconsult Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġholder . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( onCreate Listener ( consult . id ), Ġconsult ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . tag Ġ= Ġconsult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonCreate Listener ( id : ĠInt ): ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Int (" id ", Ġid ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠNav Host Fragment . find Nav Controller ( fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( R . id . action _ record Fragment _ to _ detail Fragment , Ġbundle ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠConsult Diff CallBack Ġ: ĠDiff Util . Item Callback < Consult Response >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠConsult Response , Ġnew Item : ĠConsult Response ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠConsult Response , Ġnew Item : ĠConsult Response ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . start _ time Ġ== Ġnew Item . start _ time Ġ&& Ġold Item . user Ġ== Ġnew Item . user ĊĠĠĠ Ġ} Ċ Ċ }