package Ġcom . lif ull . android . survey . ui . common Ċ Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġcom . lif ull . android . survey . data .* Ċ Ċ /** Ċ Ġ* ĠAbstract ĠAdapter Ċ Ġ*/ Ċ abstract Ġclass ĠAdapter Ġ: ĠList Adapter < Item , ĠViewHolder >( ĊĠĠĠ ĠDIFF _ CALLBACK Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDIFF _ CALLBACK Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Item >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠItem , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠItem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id Ġ&& Ġold Item . view Type Ġ== Ġold Item . view Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠItem , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠItem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ= Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ inheritDoc ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . on Bind ( position , ĠgetItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ inheritDoc ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ) Ġ= ĠgetItem ( position ). view Type ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġitem Ġcast Ġto Ġthe Ġspec id ied Ġclass ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġposition ĠPosition Ġof Ġitem ĊĠĠĠĠ Ġ* Ġ@ param Ġclazz ĠClass ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > ĠgetItem ( position : ĠInt , Ġclazz : ĠClass < T >): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclazz . cast ( getItem ( position )) ĊĠĠĠ Ġ} Ċ }