From 2b7708fedcd78aeb490bbb046f5fbe25e4bf4714 Mon Sep 17 00:00:00 2001 From: artdeell Date: Thu, 2 Feb 2023 16:23:38 +0300 Subject: [PATCH] Gyro controls: Use an actual gyro instead of Game Rotation Vector --- .../src/main/java/net/kdt/pojavlaunch/GyroControl.java | 10 +++------- .../screens/LauncherPreferenceControlFragment.java | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/GyroControl.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/GyroControl.java index aec6b4c00..8d9f5be04 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/GyroControl.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/GyroControl.java @@ -16,11 +16,9 @@ public class GyroControl implements SensorEventListener, GrabListener { private final Sensor mSensor; private boolean mShouldHandleEvents; - private float mLastX, mLastY; - public GyroControl(Context context) { mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); - mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GAME_ROTATION_VECTOR); + mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); } public void enable() { @@ -39,11 +37,9 @@ public class GyroControl implements SensorEventListener, GrabListener { @Override public void onSensorChanged(SensorEvent sensorEvent) { if(mShouldHandleEvents && sensorEvent.sensor == mSensor) { - CallbackBridge.mouseX += (sensorEvent.values[0]-mLastX) * LauncherPreferences.PREF_GYRO_SENSITIVITY * 1000; - CallbackBridge.mouseY += (sensorEvent.values[1]-mLastY) * LauncherPreferences.PREF_GYRO_SENSITIVITY * 1000; + CallbackBridge.mouseX += sensorEvent.values[0] * LauncherPreferences.PREF_GYRO_SENSITIVITY * 10; + CallbackBridge.mouseY += sensorEvent.values[1] * LauncherPreferences.PREF_GYRO_SENSITIVITY * 10; CallbackBridge.sendCursorPos(CallbackBridge.mouseX, CallbackBridge.mouseY); - mLastX = sensorEvent.values[0]; - mLastY = sensorEvent.values[1]; } } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceControlFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceControlFragment.java index 4126a4745..ccd270986 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceControlFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceControlFragment.java @@ -49,7 +49,7 @@ public class LauncherPreferenceControlFragment extends LauncherPreferenceFragmen Context context = getContext(); if(context != null) { - mGyroAvailable = ((SensorManager)context.getSystemService(Context.SENSOR_SERVICE)).getDefaultSensor(Sensor.TYPE_GAME_ROTATION_VECTOR) != null; + mGyroAvailable = ((SensorManager)context.getSystemService(Context.SENSOR_SERVICE)).getDefaultSensor(Sensor.TYPE_GYROSCOPE) != null; } SwitchPreference gyroSwitch = findPreference("enableGyro"); gyroSwitch.setVisible(mGyroAvailable);