/* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠChar les ĠM uch ene Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . char le sm uch ene . background timer Ċ Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . support . v 4 . content . Local Broadcast Manager Ċ import Ġcom . char le sm uch ene . background timer . Background Timer . Companion . TIMER _ ACTION Ċ import Ġcom . char le sm uch ene . background timer . Background Timer . Companion . TIMER _ ACTION _ INT ENT _ FILTER Ċ import Ġcom . char le sm uch ene . background timer . Background Timer . Companion . TIMER _ FINISHED _ ACTION Ċ import Ġcom . char le sm uch ene . background timer . Background Timer . Companion . TIMER _ INTERVAL _ ACTION Ċ import Ġcom . char le sm uch ene . background timer . Background Timer . Companion . TIMER _ RE MAIN ING _ TIME Ċ import Ġcom . char le sm uch ene . background timer . Background Timer . Companion . TIMER _ TAG Ċ Ċ /** Ċ Ġ* ĠTimer Ġreceiver Ċ Ġ* Ċ Ġ* Ġ@ param Ġcontext Ġ[ Context ] Ċ Ġ* Ġ@ param Ġtag ĠTimer Ġtag Ġto Ġlisten Ġto Ċ Ġ* Ġ@ param Ġon Tick ĠOn Ġtick Ġblock Ċ Ġ* Ġ@ param Ġon Finished ĠOn Ġtimer Ġfinished Ġblock Ċ Ġ*/ Ċ internal Ġclass ĠTimer Receiver ( context : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġtag : ĠString , Ġprivate Ġval Ġon Tick : Ġ( Long ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġon Finished : Ġ() Ġ-> ĠUnit ) Ġ: ĠBroadcast Receiver () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbroadcast Manager Ġ= ĠLocal Broadcast Manager . getInstance ( context ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegister Ġthis Ġreceiver ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġregister () Ġ{ ĊĠĠĠĠĠĠĠ Ġbroadcast Manager . register Receiver ( this , ĠTIMER _ ACTION _ INT ENT _ FILTER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUn register Ġthis Ġreceiver ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġunregister () Ġ{ ĊĠĠĠĠĠĠĠ Ġbroadcast Manager . unregister Receiver ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġintent Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . action Ġ!= ĠTIMER _ ACTION ) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . getString Extra ( TIMER _ TAG ) Ġ!= Ġtag ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( intent . getString Extra ( TIMER _ ACTION )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTIMER _ INTERVAL _ ACTION Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Tick ( intent . getLong Extra ( TIMER _ RE MAIN ING _ TIME , Ġ- 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTIMER _ FINISHED _ ACTION Ġ-> Ġon Finished () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }