public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) { long eventTimestamp = event.timestamp / 1000000; if (eventTimestamp - lastEventInUpdate > 250) { long actualTimestamp = baseTime.getTimeInMillis() + (eventTimestamp - sensorTimerStart); lastEventInUpdate = eventTimestamp; Object filter = geolocationModule.getProperty(TiC.PROPERTY_HEADING_FILTER); if (filter != null) { float headingFilter = TiConvert.toFloat(filter); if (Math.abs(event.values[0] - lastHeading) < headingFilter) { return; } lastHeading = event.values[0]; } geolocationModule.fireEvent(TiC.EVENT_HEADING, eventToHashMap(event, actualTimestamp)); } } }