package Ġcom . github . ro ar app studio . b tk ont roller . send ers Ċ Ċ import Ġandroid . bluetooth . Bluetooth Device Ċ import Ġandroid . bluetooth . Bluetooth H id Device Ċ import Ġandroid . hardware . Sensor Ċ import Ġandroid . hardware . Sensor Event Ċ import Ġandroid . hardware . Sensor EventListener Ċ import Ġandroid . hardware . Sensor Manager Ċ import Ġandroid . util . Log Ċ import Ġcom . github . ro ar app studio . b tk ont roller . reports . Abs Mouse Report Ċ import Ġkotlin . math . PI Ċ import Ġkotlin . math . round ToInt Ċ Ċ @ Experimental Unsigned Types Ċ class ĠSensor Sender ( hid Device : ĠBluetooth H id Device , Ġhost : ĠBluetooth Device ): ĠSender ( hid Device , Ġhost ), ĠSensor EventListener Ġ{ ĊĊĠĠĠ Ġval Ġabs Mouse Report Ġ= ĠAbs Mouse Report () ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Accuracy Changed ( sensor : ĠSensor ?, Ġaccuracy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . i (" Sensor Sender ", Ġ" on Accuracy Changed ") ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Accuracy Ġchanged Ġ${ when ( accuracy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSensor Manager . SENSOR _ STATUS _ AC CUR ACY _ LOW ĠĠĠ Ġ-> Ġ" LOW " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSensor Manager . SENSOR _ STATUS _ AC CUR ACY _ MEDIUM Ġ-> Ġ" MEDIUM " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSensor Manager . SENSOR _ STATUS _ AC CUR ACY _ HIGH ĠĠ Ġ-> Ġ" HIGH " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġaccuracy . toString () ĊĠĠĠĠĠĠĠ Ġ}} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sensor Changed ( event : ĠSensor Event ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . i (" Sensor Sender ", Ġ" on Sensor Changed ") ĊĠĠĠĠĠĠĠ Ġval Ġangle X Ġ Ġ= Ġevent . values [ 2 ]. toDouble () ĊĠĠĠĠĠĠĠ Ġval Ġangle Y Ġ Ġ= Ġevent . values [ 0 ]. toDouble () ĊĠĠĠĠĠĠĠ Ġval Ġpixels X Ġ= Ġ( angle X Ġ* Ġ 3 8 4 0 Ġ/ ĠPI ). round ToInt () Ġ+ Ġ 1 9 2 0 ĊĠĠĠĠĠĠĠ Ġval Ġpixels Y Ġ= Ġ( angle Y Ġ* Ġ 2 1 6 0 Ġ/ ĠPI ). round ToInt () Ġ+ Ġ 1 0 8 0 ĊĠĠĠĠĠĠĠ ĠLog . i (" Sensor Sender ", Ġ" angle = [$ angle X ,$ angle Y ], Ġpixels = [$ pixels X ,$ pixels Y ]") ĊĠĠĠĠĠĠĠ ĠLog . w tf (" W TF ", Ġ"$ pixels X Ġx Ġ$ pixels Y ") ĊĠĠĠĠĠĠĠ Ġif ( Ġpixels X Ġ!= Ġabs Mouse Report . X Ġ|| Ġpixels Y Ġ!= Ġabs Mouse Report . Y Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabs Mouse Report . X Ġ= Ġpixels X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabs Mouse Report . Y Ġ= Ġpixels Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhid Device . send Report ( this . host , Ġ 2 , Ġabs Mouse Report . bytes ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" W TF ", Ġ" No Ġchanges ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend Mouse () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . i (" Sensor Sender ", Ġ" send Mouse ") ĊĠĠĠ Ġ} Ċ Ċ }