package Ġcom . ph ic dy . my c uration . filter list Ċ Ċ import Ġcom . ph ic dy . my c uration . data . repository . Filter Repository Ċ import Ġcom . ph ic dy . my c uration . data . repository . R ss Repository Ċ import Ġcom . ph ic dy . my c uration . entity . Filter Ċ import Ġkotlinx . coroutines . coroutine Scope Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠFilter List Presenter Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġview : ĠFilter ListView , ĊĠĠĠ Ġprivate Ġval Ġr ss Repository : ĠR ss Repository , ĊĠĠĠ Ġprivate Ġval Ġfilter Repository : ĠFilter Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġon Activity Created () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnum Ġ= Ġr ss Repository . getNum Of R ss () ĊĠĠĠĠĠĠĠ Ġif Ġ( num Ġ== Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . set R ss Empty Message () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġresume () Ġ= Ġcoroutine Scope Ġ{ ĊĠĠĠĠĠĠĠ Ġfilter Repository . getAll Filters (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Filter List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Empty View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Empty View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Filter List ( ArrayList ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun ĠonDelete Menu Clicked ( position : ĠInt , Ġselected Filter : ĠFilter , Ġcurrent Size : ĠInt ) Ġ= Ġcoroutine Scope Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġ 0 ) Ġreturn @ coroutine Scope ĊĠĠĠĠĠĠĠ Ġfilter Repository . delete Filter ( selected Filter . id ) ĊĠĠĠĠĠĠĠ Ġview . remove ( position ) ĊĠĠĠĠĠĠĠ Ġview . notify List Changed () ĊĠĠĠĠĠĠĠ Ġif Ġ( current Size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Filter List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Empty View () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Edit Menu Clicked ( selected Filter : ĠFilter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġselected Filter . id ĊĠĠĠĠĠĠĠ Ġ// ĠDatabase Ġtable ĠID Ġstarts Ġwith Ġ 1 , ĠID Ġunder Ġ 1 Ġmeans Ġinvalid ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ<= Ġ 0 ) Ġreturn ĊĠĠĠĠĠĠĠ Ġview . start Edit Activity ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġon Filter Check Clicked ( clicked Filter : ĠFilter , Ġis Checked : ĠBoolean ) Ġ= Ġcoroutine Scope Ġ{ ĊĠĠĠĠĠĠĠ Ġclicked Filter . isEnabled Ġ= Ġis Checked ĊĠĠĠĠĠĠĠ Ġfilter Repository . update Enabled ( clicked Filter . id , Ġis Checked ) ĊĠĠĠ Ġ} Ċ } Ċ