package Ġmat tec arra . acc app . adapters Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcelable Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġkotlinx . android . parcel . Parcel ize Ċ import Ġmat tec arra . acc app . R Ċ import Ġjava . util . ArrayList Ċ Ċ @ Parcel ize Ċ data Ġclass ĠSchedule ( val Ġname : ĠString , Ġval Ġexecute Once : ĠBoolean , Ġval Ġhour : ĠInt , Ġval Ġminute : ĠInt , Ġvar Ġcommand : ĠString ): ĠParcel able Ċ Ċ class ĠSchedule RecyclerView Adapter ( val Ġs chedules : ĠArrayList < Schedule >, Ġprivate Ġval Ġlistener : Ġ( Schedule , ĠBoolean ) Ġ-> ĠUnit ) Ġ: ĠRecyclerView . Adapter < Schedule RecyclerView Adapter . Schedule ViewHolder >() Ġ{ ĊĠĠĠ Ġfun Ġadd ( schedule : ĠSchedule ) Ġ{ ĊĠĠĠĠĠĠĠ Ġs chedules . add ( schedule ) ĊĠĠĠĠĠĠĠ Ġnotify Item Inserted ( schedules . size Ġ- Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset List ( schedules : ĠList < Schedule >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . schedules . clear () ĊĠĠĠĠĠĠĠ Ġthis . schedules . addAll ( schedules ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove ( schedule : ĠSchedule ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġs chedules . indexOf ( schedule ) ĊĠĠĠĠĠĠĠ Ġif ( index Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs chedules . remove At ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Removed ( index ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetItem ( index : ĠInt ): ĠSchedule Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġs chedules [ index ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsize (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġs chedules . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSchedule RecyclerView Adapter . Schedule ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . schedule _ row , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSchedule ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSchedule RecyclerView Adapter . Schedule ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position ), Ġlistener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġs chedules . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠSchedule ViewHolder ( internal Ġvar Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( schedule : ĠSchedule , Ġlistener : Ġ( Schedule , ĠBoolean ) Ġ-> ĠUnit ) Ġ= Ġwith ( item View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . title ). text Ġ= Ġresources . getString ( R . string . schedule _ row _ text , Ġif (! schedule . execute Once ) Ġ" Re current Ġ" Ġelse Ġ"", Ġschedule . hour , Ġschedule . minute ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < Image Button >( R . id . img _ delete ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ( schedule , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ Ġlistener ( schedule , Ġfalse ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }