package Ġme . e zz at th ar wat . vac omp uting . service Ċ Ċ import Ġandroid . app . Alarm Manager Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . lifecycle . Lifecycle Service Ċ import Ġme . e zz at th ar wat . vac omp uting . alar mb roadcast . Alarm Broadcast Receiver Ċ import Ġme . e zz at th ar wat . vac omp uting . other . Constant . ACTION _ START _ SERVICE Ċ import Ġme . e zz at th ar wat . vac omp uting . other . Constant . EQ UATION _ ID Ċ import Ġme . e zz at th ar wat . vac omp uting . other . Constant . MATH _ EQ UATION _ SCHEDUL ED _ TIME Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . util .* Ċ Ċ class ĠMath Engine Service Ġ: ĠLifecycle Service () Ġ{ ĊĊĊĠĠĠ Ġoverride Ġfun ĠonStart Command ( intent : ĠIntent ?, Ġflags : ĠInt , Ġstart Id : ĠInt ): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġintent ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠACTION _ START _ SERVICE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . has Extra ( MATH _ EQ UATION _ SCHEDUL ED _ TIME ) && ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . has Extra ( EQ UATION _ ID )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Scheduled Alarm ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onStart Command ( intent , Ġflags , Ġstart Id ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġcreate Scheduled Alarm ( it : ĠIntent ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġequation ID Ġ= Ġit . getLong Extra ( EQ UATION _ ID , Ġ 0 L ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtime Ġ= Ġit . getInt Extra ( MATH _ EQ UATION _ SCHEDUL ED _ TIME , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġalarm Manager Ġ= Ġget System Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠAlarm Broadcast Receiver :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( EQ UATION _ ID , Ġequation ID ) ĊĊĠĠĠĠĠĠĠ Ġval Ġalarm Pending Intent Ġ= ĠPending Intent . get Broadcast ( this , Ġequation ID . toInt (), Ġintent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . SECOND , Ġtime ) ĊĊĠĠĠĠĠĠĠ Ġalarm Manager . set Exact ( Alarm Manager . RTC _ WAKE UP , Ġcalendar . time In Millis , Ġalarm Pending Intent ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊĊ