package Ġme . tex y . tree view demo . ui . screen . hone . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġme . tex y . tree view demo . R Ċ import Ġme . tex y . tree view demo . data . model . Comp etition Ċ import Ġme . tex y . tree view demo . data . model . Comp etition Entity Ċ import Ġme . tex y . tree view demo . databinding . Item Comp etition Binding Ċ Ċ class ĠComp etition Adapter Ġ: ĠList Adapter < Comp etition , ĠComp etition Adapter . Com ViewHolder >( object Ġ: ĊĠĠĠ ĠDiff Util . Item Callback < Comp etition >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠComp etition , Ġnew Item : ĠComp etition ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( ĊĠĠĠĠĠĠĠ Ġold Item : ĠComp etition , ĊĠĠĠĠĠĠĠ Ġnew Item : ĠComp etition ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ }) Ġ{ ĊĠĠĠ Ġopen Ġclass ĠCom ViewHolder ( binding : ĠItem Comp etition Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Binding Ġ= Ġbinding ĊĠĠĠĠĠĠĠ Ġfun Ġon Bind ( item : ĠComp etition ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Binding . comp etition Name . text Ġ= Ġitem . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Binding . comp etition Country . text Ġ= Ġitem . area . name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġview Type : ĠInt ĊĠĠĠ Ġ): ĠCom ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinf late Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn ĠCom ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinf late , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ comp etition , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠCom ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . on Bind ( getItem ( position )) ĊĠĠĠ Ġ} Ċ Ċ }