package Ġtop . ce clin . ps lock . ui . main Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġkotlinx . android . synt hetic . main . history _ list _ item . view .* Ċ import Ġtop . ce clin . ps lock . R Ċ import Ġtop . ce clin . ps lock . model . Device Ċ Ċ class ĠDevice ListAdapter Ġ: ĠList Adapter < Device , ĠViewHolder >( Diff CallBack ) Ġ{ ĊĊĠĠĠ Ġvar Ġon Item Click : Ġ( View ) Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġvar Ġon Item Long Click : Ġ( View ) Ġ-> ĠBoolean Ġ= Ġ{ Ġfalse Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( View . inflate ( parent . context , ĠR . layout . history _ list _ item , Ġparent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener ( on Item Click ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset On Long ClickListener ( on Item Long Click ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠ Ġfun Ġbind ( item : ĠDevice ) Ġ{ ĊĠĠĠĠĠĠĠ ĠitemView . device _ name . text Ġ= Ġitem . name ĊĠĠĠĠĠĠĠ ĠitemView . device _ mac . text Ġ= Ġitem . mac ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġobject ĠDiff CallBack Ġ: ĠDiff Util . Item Callback < Device >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠDevice , Ġnew Item : ĠDevice ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . mac Ġ== Ġnew Item . mac ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠDevice , Ġnew Item : ĠDevice ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ }