/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠSO UP Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 Ġsoup . movie . ui . the ater . mode Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . app . Service Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . IB inder Ċ import Ġsoup . movie . R Ċ import Ġsoup . movie . ext . to HexString Ċ import Ġsoup . movie . notification . Notification Specs Ċ import Ġsoup . movie . ui . the ater . mode . brightness . Brightness Module Ċ import Ġsoup . movie . ui . the ater . mode . d nd . D nd Module Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠThe ater Mode Service Ġ: ĠService () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġd nd Module : ĠD nd Module Ġ= ĠD nd Module ( this ) ĊĊĠĠĠ Ġprivate Ġval Ġbrightness Module : ĠB rightness Module Ġ= ĠB rightness Module ( this ) Ġ{ Ġenabled Ġ-> ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Brightness Module Ġis Ġ% s ", Ġif Ġ( enabled ) Ġ" enabled " Ġelse Ġ" disabled ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ( intent : ĠIntent ?): ĠI Binder ? Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" Service Ġbinding Ġis ĠNOT ĠSupported ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ ĠTim ber . d (" onCreate : Ġ 0 x { ${ hashCode (). to HexString ()}} ") ĊĠĠĠĠĠĠĠ Ġd nd Module . enable () ĊĠĠĠĠĠĠĠ Ġbrightness Module . enable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" on Destroy : Ġ 0 x { ${ hashCode (). to HexString ()}} ") ĊĠĠĠĠĠĠĠ Ġd nd Module . disable () ĊĠĠĠĠĠĠĠ Ġbrightness Module . disable () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart Command ( intent : ĠIntent ?, Ġflags : ĠInt , Ġstart Id : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( intent ?. action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠACTION _ START _ FO REG ROUND Ġ-> Ġstart Foreground Service () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠACTION _ STOP _ FO REG ROUND , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠACTION _ QU IT Ġ-> Ġstop Foreground Service () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onStart Command ( intent , Ġflags , Ġstart Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Foreground Service () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnotification Ġ= ĠNotification Specs . create Notification For The ater Mode ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ tile _ sample ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" Sample ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text (" This Ġis Ġa Ġon - going Ġnotification .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( Color . BLUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set O ngo ing ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( get Setting Intent ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. addAction ( Notification Compat . Action ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠR . drawable . ic _ round _ close , Ġ" Quit ", Ġget Quit Intent ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġstart Foreground ( ID _ SAMPLE , Ġnotification ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstop Foreground Service () Ġ{ ĊĠĠĠĠĠĠĠ Ġstop Foreground ( true ) ĊĠĠĠĠĠĠĠ Ġstop Self () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Setting Intent (): ĠPending Intent Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠThe ater Mode Tile Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn ĠPending Intent . getActivity ( this , Ġ 0 , Ġintent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Quit Intent (): ĠPending Intent Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquit Intent Ġ= Ġcreate Intent ( ACTION _ QU IT ) ĊĠĠĠĠĠĠĠ Ġreturn ĠPending Intent . getService ( this , Ġ 0 , Ġquit Intent , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠID _ SAMPLE Ġ= Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠACTION _ START _ FO REG ROUND Ġ= Ġ" ACTION _ START _ FO REG ROUND " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠACTION _ STOP _ FO REG ROUND Ġ= Ġ" ACTION _ STOP _ FO REG ROUND " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠACTION _ QU IT Ġ= Ġ" ACTION _ QU IT " ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart ( ctx : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" start ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . start Service ( ctx . create Intent ( ACTION _ START _ FO REG ROUND )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstop ( ctx : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" stop ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġctx . start Service ( ctx . create Intent ( ACTION _ STOP _ FO REG ROUND )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠContext . create Intent ( action : ĠString ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIntent ( application Context , ĠThe ater Mode Service :: class . java ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . action Ġ= Ġaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ