@ file : Suppress (" Too Many Functions ", Ġ" unused ") Ċ Ċ package Ġio . github . ach mad h af id . simple loc Ċ Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . Lifecycle Service Ċ import Ġandroidx . lifecycle . On Lifecycle Event Ċ import Ġcom . google . android . gms . location . F used Location Provider Client Ċ import Ġcom . google . android . gms . location . Settings Client Ċ Ċ class ĠSimple Loc Tracker Service ( ĊĠĠĠ Ġprivate Ġval Ġservice : ĠLifecycle Service , ĊĠĠĠ Ġconfig : ĠSimple Loc Config Ċ ) Ġ: ĠSimple Loc Tracker Base ( config ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġlocation Client : ĠF used Location Provider Client Ġby Ġlazy Ġ{ Ġservice . getLocation Client () Ġ} ĊĠĠĠ Ġoverride Ġval Ġsettings Client : ĠSettings Client Ġby Ġlazy Ġ{ Ġservice . get Settings Client () Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle Owner Ġ= Ġservice ĊĠĠĠĠĠĠĠ Ġcheck Enable Auto Start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetContext () Ġ= Ġservice ĊĊĠĠĠ Ġoverride Ġfun Ġattach Observer () Ġ{ ĊĠĠĠĠĠĠĠ Ġattach Observer ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdetach Observer () Ġ{ ĊĠĠĠĠĠĠĠ Ġdetach Observer ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// region ĠTurn ĠOn ĊĊĠĠĠ Ġoverride Ġfun Ġenable ( is Force : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Force ) Ġdisable ( is Force ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! isEnabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( service . has Location Permissions ( config . background Location Access )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Tracker ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError ( IllegalStateException ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdetach Observer () ĊĠĠĠĠĠĠĠ Ġservice . stop Self () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion ĊĠĠĠ Ġ// region ĠTurn ĠOff ĊĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ STOP ) ĊĠĠĠ Ġinternal Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġdisable ( Simple Loc Tracker . Stop State . DESTROY ED _ BY _ LI FE CYCLE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisable ( stop State : ĠSimple Loc Tracker . Stop State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! isEnabled ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġdetach Observer () ĊĊĠĠĠĠĠĠĠ Ġstop Tracker ( stop State ) ĊĠĠĠĠĠĠĠ Ġservice . stop Self () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion Ċ Ċ } Ċ