package Ġcom . ix idev . simp len ot ep ad . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . widget . AppCompat CheckBox Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ix idev . simp len ot ep ad . R Ċ import Ġcom . ix idev . simp len ot ep ad . adapters . Notes Adapter . Note Holder Ċ import Ġcom . ix idev . simp len ot ep ad . callbacks . Note EventListener Ċ import Ġcom . ix idev . simp len ot ep ad . entity . Note Ċ import Ġcom . ix idev . simp len ot ep ad . utils . Note Utils Ċ import Ġkotlinx . android . synt hetic . main . note _ layout . view .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġi xi . Dv Ġon Ġ 1 3 / 0 5 / 2 0 1 8 . Ċ Ġ*/ Ċ class ĠNotes Adapter ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġvar Ġnotes : ĠList < Note > Ċ ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Note Holder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠNote EventListener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmulti Check Mode Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠNote Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . note _ layout , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠNote Holder ( v ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠNote Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnote : ĠNote ? Ġ= Ġget Note ( position ) ĊĠĠĠĠĠĠĠ Ġnote ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . note Text . text Ġ= Ġit . note Text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . note Date . text Ġ= ĠNote Utils . date From Long ( it . note Date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġinit Ġnote Ġclick Ġevent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ Ġlistener !!. on Note Click ( note ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġinit Ġnote Ġlong Ġclick ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener !!. on Note Long Click ( note ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcheck ĠcheckBox Ġif Ġnote Ġselected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( multi Check Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . checkBox . visibility Ġ= ĠView . VISIBLE Ġ// Ġshow ĠcheckBox Ġif Ġmulti Mode Ġon ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . checkBox . isChecked Ġ= Ġnote . checked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġholder . checkBox . visibility Ġ= ĠView . GONE Ġ// Ġhide ĠcheckBox Ġif Ġmulti Mode Ġoff ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnotes . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Note ( position : ĠInt ): ĠNote ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnotes [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġget ĠAll Ġchecked Ġnotes ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠArray ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Checked Notes (): ĠList < Note > Ġ= Ġnotes . filter Ġ{ Ġnote Ġ-> ĊĠĠĠĠĠĠĠ Ġnote . checked ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinner Ġclass ĠNote Holder ( item View : ĠView ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnote Text : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġnote Date : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar ĠcheckBox : ĠAppCompat CheckBox ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnote Text Ġ= Ġnote _ text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnote Date Ġ= Ġnote _ date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Ġ= Ġcheck _ Box ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ/* Ġvar Ġnote Text : ĠTextView Ġ= ĠitemView . findViewById ( R . id . note _ text ) ĊĠĠĠĠĠĠĠĠ Ġvar Ġnote Date : ĠTextView Ġ= ĠitemView . findViewById ( R . id . note _ date ) ĊĠĠĠĠĠĠĠĠ Ġvar ĠcheckBox : ĠCheckBox Ġ= ĠitemView . findViewById ( R . id . checkBox ) */ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Listener ( listener : ĠNote EventListener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Multi Check Mode ( multi Check Mode : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . multi Check Mode Ġ= Ġmulti Check Mode ĊĠĠĠĠĠĠĠ Ġif Ġ(! multi Check Mode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotes . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . checked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ Ċ }