package Ġcom . g im ang i . single line _ note . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . g im ang i . single line _ note . data . model . Memo Preview Data Ċ import Ġcom . g im ang i . single line _ note . databinding . Item Memo List Binding Ċ Ċ class ĠM emo ListAdapter () Ġ: ĠRecyclerView . Adapter < Memo ListAdapter . Memo Holder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġdata List Ġ= Ġmutable ListOf < Memo Preview Data >() ĊĊĠĠĠ Ġclass ĠM emo Holder ( private Ġval Ġbinding : ĠItem Memo List Binding , Ġprivate Ġval Ġcontext : ĠContext ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Bind ( data : ĠM emo Preview Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . prev Data Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠM emo Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠItem Memo List Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠM emo Holder ( binding , Ġparent . context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠM emo Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . on Bind ( data List [ position ]) ĊĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener . onClick ( it , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġdata List . size ĊĊĠĠĠ Ġinterface ĠItem ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠonClick ( view : ĠView , Ġposition : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġitem ClickListener : ĠItem ClickListener ĊĊĠĠĠ Ġfun Ġset ItemClickListener ( item ClickListener : ĠItem ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . item ClickListener Ġ= Ġitem ClickListener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset DataList ( data List : ĠMutable List < Memo Preview Data >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . data List Ġ= Ġdata List ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Select All ( value : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( d Ġin Ġdata List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . selected . set ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetNum Selected (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata List . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . selected . get () Ġ== Ġtrue ĊĠĠĠĠĠĠĠ Ġ}. size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Data Collection ( list : ĠCollection < Memo Preview Data >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . data List . removeAll ( list ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetData List () Ġ= Ġthis . data List Ċ Ċ }