package Ġru . job 4 j . tod olist . store Ċ Ċ import Ġandroid . content . Context Ċ import Ġru . job 4 j . tod olist . Task Ċ import Ġjava . util .* Ċ import Ġjava . util . stream . Collectors Ċ Ċ class ĠMem Store Ġ: ĠI Store Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġtasks : ĠMutable List < Task > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġcounter Ġ= Ġ 0 ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINST Ġ= ĠMem Store () ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( context : ĠContext ?): ĠMem Store Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠINST ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Tasks (): ĠList < Task > Ġ= Ġtasks ĊĊĠĠĠ Ġoverride Ġfun Ġget Filtered Tasks ( filter : ĠString ): ĠList < Task > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtasks . stream (). filter Ġ{ Ġ(_, Ġname , Ġdesc , Ġcreated ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . toLowerCase (). contains ( filter . toLowerCase ()) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdesc . toLowerCase (). contains ( filter . toLowerCase ()) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreated . toLowerCase (). contains ( filter . toLowerCase ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Task ( name : ĠString , Ġdescription : ĠString , Ġcreated : ĠString , Ġphoto : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtasks . add ( Task ( counter ++, Ġname , Ġdescription , Ġcreated , Ġnull , Ġphoto )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġedit Task ( id : ĠInt , Ġname : ĠString , Ġdescription : ĠString , Ġclosed : ĠString , Ġphoto : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= Ġfind Task ByID ( id ) ĊĠĠĠĠĠĠĠ Ġtask !!. name Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġtask . desc Ġ= Ġdescription ĊĠĠĠĠĠĠĠ Ġtask . closed Ġ= Ġclosed ĊĠĠĠĠĠĠĠ Ġtask . photo Ġ= Ġphoto ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose Or Re open Task ( id : ĠInt , Ġclosed : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Task ByID ( id )?. closed Ġ= Ġclosed ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Task ( id : ĠInt ): ĠInt Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . indexOf ( find Task ByID ( id )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . remove At ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġdelete All Tasks () Ġ= Ġtasks . clear () ĊĊĠĠĠ Ġoverride Ġfun Ġfind Task ByID ( id : ĠInt ): ĠTask ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . first OrNull Ġ{ Ġtask Ġ-> Ġtask . id Ġ== Ġid Ġ} Ċ }