From e645e14844e230d9366e565aa71e52775af88312 Mon Sep 17 00:00:00 2001 From: vanitasvitae Date: Thu, 14 Sep 2017 11:01:14 +0200 Subject: [PATCH] Use GAME_ROTATION_VECTOR to get rid of gyro drift when API lvl allows --- .../de/trac/spherical/rendering/SphereSurfaceView.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/trac/spherical/rendering/SphereSurfaceView.java b/app/src/main/java/de/trac/spherical/rendering/SphereSurfaceView.java index 5aad7aa..2ed8c28 100644 --- a/app/src/main/java/de/trac/spherical/rendering/SphereSurfaceView.java +++ b/app/src/main/java/de/trac/spherical/rendering/SphereSurfaceView.java @@ -7,6 +7,7 @@ import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.opengl.GLSurfaceView; import android.opengl.Matrix; +import android.os.Build; import android.view.MotionEvent; /** @@ -29,8 +30,13 @@ public class SphereSurfaceView extends GLSurfaceView implements SensorEventListe Matrix.setIdentityM(rotationMatrix, 0); SensorManager manager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); - Sensor accelerometer = manager.getSensorList(Sensor.TYPE_ROTATION_VECTOR).get(0); - manager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_GAME); + Sensor sensor; + if (Build.VERSION.SDK_INT >= 18) { + sensor = manager.getSensorList(Sensor.TYPE_GAME_ROTATION_VECTOR).get(0); + } else { + sensor = manager.getSensorList(Sensor.TYPE_ROTATION_VECTOR).get(0); + } + manager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME); } @Override