diff --git a/res/values/strings.xml b/res/values/strings.xml index 9a8990a2..1bccfae9 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -75,6 +75,9 @@ mousepad_scroll_direction gyro_mouse_enabled mouse_buttons_enabled + Enable gyroscope mouse + Gyroscope sensitivity + gyro_mouse_sensitivity Left click Right click diff --git a/src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadActivity.java b/src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadActivity.java index 8212622a..7e0e55d8 100644 --- a/src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadActivity.java +++ b/src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadActivity.java @@ -55,6 +55,7 @@ public class MousePadActivity private int scrollDirection = 1; private boolean allowGyro = false; private boolean gyroEnabled = false; + private int gyroscopeSensitivity = 100; private boolean isScrolling = false; private float accumulatedDistanceY = 0; @@ -98,27 +99,25 @@ public class MousePadActivity public void onSensorChanged(SensorEvent event) { float[] values = event.values; - float X = -values[2] * 70 * mCurrentSensitivity * displayDpiMultiplier; - float Y = -values[0] * 70 * mCurrentSensitivity * displayDpiMultiplier; + float X = -values[2] * 70 * (gyroscopeSensitivity/100.0f); + float Y = -values[0] * 70 * (gyroscopeSensitivity/100.0f); if (X < 0.25 && X > -0.25) { X = 0; } else { - X = X * mCurrentSensitivity * displayDpiMultiplier; + X = X * (gyroscopeSensitivity/100.0f); } if (Y < 0.25 && Y > -0.25) { Y = 0; } else { - Y = Y * mCurrentSensitivity * displayDpiMultiplier; + Y = Y * (gyroscopeSensitivity/100.0f); } final float nX = X; final float nY = Y; - BackgroundService.RunWithPlugin(this, deviceId, MousePadPlugin.class, plugin -> { - plugin.sendMouseDelta(nX, nY); - }); + BackgroundService.RunWithPlugin(this, deviceId, MousePadPlugin.class, plugin -> plugin.sendMouseDelta(nX, nY)); } @Override @@ -479,6 +478,7 @@ public class MousePadActivity } allowGyro = isGyroSensorAvailable() && prefs.getBoolean(getString(R.string.gyro_mouse_enabled), false); + if (allowGyro) gyroscopeSensitivity = prefs.getInt(getString(R.string.gyro_mouse_sensitivity),100); String singleTapSetting = prefs.getString(getString(R.string.mousepad_single_tap_key), getString(R.string.mousepad_default_single));