/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 Ġby ĠDen is ĠVer ent so v Ġ( de cs ent @ yandex . ru ) Ċ Ġ* ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ package Ġcom . dv inc . not ep ad . presentation . adapter . not ep ad Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . dv inc . not ep ad . R Ċ import Ġcom . dv inc . not ep ad . presentation . model . Note Ui Ċ Ċ class ĠNot ep ad Adapter Ġ: ĠRecyclerView . Adapter < Note ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġnotes : ĠList < Note Ui > Ġ= Ġempty List () ĊĊĠĠĠ Ġprivate Ġvar Ġitem ClickListener : ĠItem ClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠNote ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġnote Item Layout Id Ġ= ĠR . layout . item _ note ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( context ). inflate ( note Item Layout Id , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠNote ViewHolder ( view , Ġitem ClickListener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnotes . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠNote ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( notes [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On ItemClickListener ( listener : ĠItem ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem ClickListener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Notes ( new Notes : ĠList < Note Ui >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdiff Util Callback Ġ= ĠNot ep ad Diff Utils Callback ( notes , Ġnew Notes ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Util Result Ġ= ĠDiff Util . calculate Diff ( diff Util Callback , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġdiff Util Result . dispatch Updates To ( this ) ĊĠĠĠĠĠĠĠ Ġnotes Ġ= Ġnew Notes ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetItem ( position : ĠInt ): ĠNote Ui Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnotes [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠItem ClickListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( note : ĠNote Ui ) ĊĠĠĠ Ġ} Ċ } Ċ