package Ġcom . demo . app . speed location . service Ċ Ċ import Ġandroid . app . Service Ċ import Ġandroid . content . Intent Ċ import Ġandroid . hardware . Sensor Ċ import Ġandroid . hardware . Sensor Event Ċ import Ġandroid . hardware . Sensor EventListener Ċ import Ġandroid . hardware . Sensor Manager Ċ import Ġandroid . os . IB inder Ċ import Ġcom . demo . app . speed location . helper . Event Activity Movement Change Ċ import Ġcom . demo . app . speed location . helper . post Event Ċ import Ġkotlinx . coroutines .* ĊĊ Ċ class ĠSensor Service Ġ: ĠService (), ĠSensor EventListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsensor Man : ĠSensor Manager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstep Detector : ĠSensor ĊĠĠĠ Ġprivate Ġvar Ġdetect Still Job : ĠJob ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġsensor Man Ġ= Ġget System Service ( SENSOR _ SERVICE ) Ġas ĠSensor Manager ĊĠĠĠĠĠĠĠ Ġstep Detector Ġ= Ġsensor Man . getDefault Sensor ( Sensor . TYPE _ STEP _ DE TE CTOR ) ĊĠĠĠĠĠĠĠ Ġsensor Man . register Listener ( this , Ġstep Detector , ĠSensor Manager . SENSOR _ DELAY _ FAST EST ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ( intent : ĠIntent ?): ĠI Binder ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart Command ( intent : ĠIntent ?, Ġflags : ĠInt , Ġstart Id : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSTART _ STICK Y ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġsensor Man . unregister Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sensor Changed ( event : ĠSensor Event ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event ?. sensor ?. type Ġ== ĠSensor . TYPE _ STEP _ DE TE CTOR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Event ( Event Activity Movement Change ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetect Still Event () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdetect Still Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġdetect Still Job ?. cancel () ĊĠĠĠĠĠĠĠ Ġdetect Still Job Ġ= ĠCor outine Scope ( Dispatch ers . Default ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 2 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Event ( Event Activity Movement Change ( false )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Accuracy Changed ( sensor : ĠSensor ?, Ġaccuracy : ĠInt ) Ġ{ ĊĊĠĠĠ Ġ} Ċ }