package Ġcom . cost ular . atom tasks . data . manager Ċ Ċ import Ġandroid . app . Alarm Manager Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . core . app . Alarm Manager Compat Ċ import Ġandroidx . core . content . getSystem Service Ċ import Ġcom . cost ular . atom tasks . data . receiver . Notify Task Receiver Ċ import Ġcom . cost ular . atom tasks . domain . manager . Reminder Manager Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Zone Id Ċ Ċ class ĠRem inder ManagerImpl ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , Ċ ) Ġ: ĠRem inder Manager Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġalarm Manager Ġ= Ġcontext . getSystem Service < Alarm Manager >() ĊĊĠĠĠ Ġoverride Ġfun Ġset ( taskId : ĠLong , Ġlocal DateTime : ĠLocalDateTime ) Ġ{ ĊĠĠĠĠĠĠĠ ĠcheckNotNull ( alarm Manager ) ĊĊĠĠĠĠĠĠĠ ĠAlarm Manager Compat . set Exact And Allow While Idle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalarm Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlarm Manager . RTC _ WAKE UP , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal DateTime . at Zone ( Zone Id . system Default ()). to Instant (). to Epoch Milli (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Pending Intent ( taskId ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcancel ( taskId : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ ĠcheckNotNull ( alarm Manager ) ĊĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= Ġbuild Pending Intent ( taskId ) ĊĠĠĠĠĠĠĠ Ġalarm Manager . cancel ( pending Intent ) ĊĠĠĠĠĠĠĠ Ġpending Intent . cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Pending Intent ( taskId : ĠLong ): ĠPending Intent Ġ= ĊĠĠĠĠĠĠĠ ĠPending Intent . get Broadcast ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtaskId . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠNotify Task Receiver :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" task _ id ", ĠtaskId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . FLAG _ UPDATE _ CURRENT , ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ