/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 2 . ĠAn sh ul ĠSar af Ċ Ġ*/ Ċ Ċ package Ġcom . project delta . z oro . util . work Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . h ilt . work . H ilt Worker Ċ import Ġandroidx . work . Coroutine Worker Ċ import Ġandroidx . work . One Time Work RequestBuilder Ċ import Ġandroidx . work . Work Request Ċ import Ġandroidx . work . Worker Parameters Ċ import Ġcom . project delta . z oro . data . model . Message Ċ import Ġcom . project delta . z oro . data . repository . Message Repository Ċ import Ġcom . project delta . z oro . di . qual ifiers . IO Dispatcher Ċ import Ġdagger . ass isted . Ass isted Ċ import Ġdagger . ass isted . Ass isted Inject Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ /** Ċ Ġ* ĠRemoves Ġthe Ġmessages Ġfrom ĠDatabase Ġwhere Ġ[ Message . seen ] Ġ== ĠTrue Ċ Ġ* Ġ- ĠRuns Ġevery time Ġon Ġapp _ startup Ċ Ġ* Ġ- ĠUses Ġ[ Coroutine Worker ] Ġfor Ġworking Ġin Ġbackground Ġthread Ċ Ġ*/ Ċ @ H ilt Worker Ċ class ĠUpdate Database Worker Ġ@ Ass isted Inject Ġconstructor ( ĊĠĠĠ Ġ@ Ass isted Ġprivate Ġval Ġapp Context : ĠContext , ĊĠĠĠ Ġ@ Ass isted Ġworker Params : ĠWorker Parameters , ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠMessage Repository , ĊĠĠĠ Ġ@ IO Dispatcher Ġprivate Ġval Ġdispatcher Ġ: ĠCor outine Dispatcher , Ċ ) Ġ: ĠCor outine Worker ( app Context , Ġworker Params ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġval Ġworker Request Ġ: ĠWork Request ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠOne Time Work RequestBuilder < Update Database Worker >(). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdo Work (): ĠResult Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwith Context ( dispatcher ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . delete All Messages Filtered By Seen ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResult . success () ĊĊĠĠĠ Ġ} Ċ } Ċ