package Ġme . bg reg os . foreground . receiver čĊč Ċ import Ġandroid . app . Notification Manager č Ċ import Ġandroid . content . Broadcast Receiver č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . content . Intent č Ċ import Ġandroidx . local broadcast manager . content . Local Broadcast Manager č Ċ import Ġandroid . util . Log č Ċ import Ġkotlinx . coroutines . Coroutine Scope č Ċ import Ġkotlinx . coroutines . Dispatch ers č Ċ import Ġkotlinx . coroutines . launch č Ċ import Ġme . bg reg os . foreground . getApplication Component č Ċ import Ġme . bg reg os . foreground . task list . Task ViewModel č Ċ import Ġjava . util .* č Ċ import Ġjavax . inject . Inject čĊč Ċ class ĠTask Broadcast Receiver : ĠBroadcast Receiver () Ġ{ čĊčĊĠĠĠ Ġ@ Inject čĊĠĠĠ Ġlateinit Ġvar Ġtask ViewModel : ĠTask ViewModel čĊčĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġcontext ?. getApplication Component ()?. inject ( this ) čĊĠĠĠĠĠĠĠ Ġwhen ( intent ?. action ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" BR IGHT TASK _ MARK _ TASK _ DONE " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" notif ", Ġ" Received Ġtask Ġdone ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnot if ID : ĠInt ? Ġ= Ġintent . extras ?. getInt (" notification _ id ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( notif ID Ġ!= Ġnull ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmgr Ġ= Ġcontext ?. getSystem Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmgr . cancel ( notif ID ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuuid : ĠString Ġ= Ġ( intent . extras ?. get (" uuid ") Ġ?: Ġ"") Ġas ĠString čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( uuid Ġ== Ġ"") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" notif ", Ġ" Failed Ġto Ġmark Ġtask Ġdone - Ġno ĠUUID ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( context Ġ!= Ġnull ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . Main ). launch Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask ViewModel . load () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġtask ViewModel . get Task By UUID ( uuid ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( item Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Local Tasks ", Ġ" Failed Ġto Ġfind Ġa Ġtask Ġwith Ġthe Ġgiven ĠUUID ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ launch čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask ViewModel . mark Task Complete ( item ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask ViewModel . save () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" notif ", Ġ" Failed Ġto Ġsave Ġtask Ġmarked Ġdone - Ġnull Ġcontext ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ }