package Ġcom . kg develop ing . secure note Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ class ĠNote ListAdapter Ġinternal Ġconstructor ( context : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdelete Listener : Ġ( Note ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnote ClickListener : Ġ( Note ) Ġ-> ĠUnit ) ĊĠĠĠ Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder > (){ ĊĊĠĠĠ Ġ// Store ĠItem Ġtypes ĊĠĠĠ Ġcompanion Ġobject ĠTypes { ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEN CRYPT ED Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠP LA IN Ġ= Ġ 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġinfl ator : ĠLayoutInflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠ Ġprivate Ġvar Ġnotes Ġ= Ġempty List < Note >() ĊĊĠĠĠ Ġinner Ġclass ĠNote Plain ViewHolder ( item View : ĠView ): ĠRecyclerView . ViewHolder ( item View ){ ĊĠĠĠĠĠĠĠ Ġval Ġticket : ĠLinearLayout Ġ= ĠitemView . findViewById ( R . id . note Ticket ) ĊĠĠĠĠĠĠĠ Ġval Ġnote Title Plain : ĠTextView Ġ= ĠitemView . findViewById ( R . id . tv Note Title Plain ) ĊĠĠĠĠĠĠĠ Ġval Ġnote Content Plain : ĠTextView Ġ= ĠitemView . findViewById ( R . id . tv Note Content Plain ) ĊĠĠĠĠĠĠĠ Ġval Ġnote Delete Plain : ĠImage Button Ġ= ĠitemView . findViewById ( R . id . note Delete Plain ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠNote Encrypted ViewHolder ( item View : ĠView ): ĠRecyclerView . ViewHolder ( item View ){ ĊĠĠĠĠĠĠĠ Ġval Ġticket : ĠLinearLayout Ġ= ĠitemView . findViewById ( R . id . note Ticket Encrypted ) ĊĠĠĠĠĠĠĠ Ġval Ġnote Title Encrypted : ĠTextView Ġ= ĠitemView . findViewById ( R . id . tv Note Title Encrypted ) ĊĠĠĠĠĠĠĠ Ġval Ġnote Delete Encrypted : ĠImage Button Ġ= ĠitemView . findViewById ( R . id . note Delete Encrypted ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( notes [ position ]. is Encrypted ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠEN CRYPT ED ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠP LA IN ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurr Note Ġ= Ġnotes [ position ] ĊĠĠĠĠĠĠĠ Ġwhen ( holder ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNote Plain ViewHolder Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . note Title Plain . text Ġ= Ġcurr Note . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . note Content Plain . text Ġ= Ġcurr Note . plain Content ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . ticket . setOnClickListener Ġ{ Ġnote ClickListener ( curr Note ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . note Delete Plain . setOnClickListener Ġ{ delete Listener ( curr Note ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNote Encrypted ViewHolder Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . note Title Encrypted . text Ġ= Ġcurr Note . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . ticket . setOnClickListener Ġ{ Ġnote ClickListener ( curr Note ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . note Delete Encrypted . setOnClickListener Ġ{ Ġdelete Listener ( curr Note ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Invalid ĠViewHolder ĠType ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( view Type ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEN CRYPT ED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= Ġinfl ator . inflate ( R . layout . note _ encrypted _ ticket , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote Encrypted ViewHolder ( item View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP LA IN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= Ġinfl ator . inflate ( R . layout . note _ ticket , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote Plain ViewHolder ( item View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Invalid ĠNote ĠType ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnotes . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġset Notes ( notes : ĠList < Note > ){ ĊĠĠĠĠĠĠĠ Ġthis . notes Ġ= Ġnotes ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ }