package Ġco . nik av tech . an ote . screens . adapters . note Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġco . nik av tech . an ote . R Ċ import Ġco . nik av tech . an ote . database . entities . Note With Category Entity Ċ Ċ class ĠNote With Category Adapter ( var Ġdiff Callback : ĠDiff Util . Item Callback < Note With Category Entity ?> ) Ġ: ĊĠĠĠ ĠList Adapter < Note With Category Entity ?, ĠNote With Category Adapter . Note Adapter ViewHolder ? >( diff Callback ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠOn ItemClickListener ? Ġ= Ġnull ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠNote Adapter ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNote Adapter ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . view _ note _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠNote Adapter ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . Bind ( getItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Note At ( position : ĠInt ): ĠNote With Category Entity ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetItem ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On ItemClickListener ( listener : ĠOn ItemClickListener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( note With Category : ĠNote With Category Entity ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠNote Adapter ViewHolder ( item View : ĠView ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun ĠBind ( note With Category : ĠNote With Category Entity ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( note With Category Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . findViewById < TextView >( R . id . tv _ note _ item _ title ). text Ġ= Ġnote With Category . note Entity ._ title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . findViewById < TextView >( R . id . tv _ note _ item _ text ). text Ġ= Ġnote With Category . note Entity ._ text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . findViewById < TextView >( R . id . tv _ category _ title ). text Ġ= Ġnote With Category . category Entity ?. title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( listener Ġ!= Ġnull Ġ&& Ġadapter Position Ġ!= ĠRecyclerView . NO _ POSITION ) Ġlistener !!. on Item Click ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetItem ( adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠDIFF _ CALLBACK : ĠDiff Util . Item Callback < Note With Category Entity ?> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDiff Util . Item Callback < Note With Category Entity ?> () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠNote With Category Entity , Ġnew Item : ĠNote With Category Entity ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . note Entity ._ id Ġ=== Ġnew Item . note Entity ._ id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠNote With Category Entity , Ġnew Item : ĠNote With Category Entity ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . note Entity ._ title Ġ== Ġnew Item . note Entity ._ title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }