From 64d271a8afcb8f76b937e313e768874d6008582c Mon Sep 17 00:00:00 2001 From: Mathias-Boulay Date: Thu, 16 Feb 2023 21:29:26 +0100 Subject: [PATCH] Feat[Gyro]: Allow to swap axis --- .../java/net/kdt/pojavlaunch/GyroControl.java | 2 ++ .../pojavlaunch/prefs/LauncherPreferences.java | 6 ++++++ .../LauncherPreferenceControlFragment.java | 17 +++++++++-------- .../src/main/res/values/strings.xml | 8 ++++++++ .../src/main/res/xml/pref_control.xml | 17 ++++++++++++++++- 5 files changed, 41 insertions(+), 9 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 053585920..f35f369ef 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/GyroControl.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/GyroControl.java @@ -98,6 +98,8 @@ public class GyroControl implements SensorEventListener, GrabListener{ xFactor = -1; yFactor = 1; } + if(LauncherPreferences.PREF_GYRO_INVERT_X) xFactor *= -1; + if(LauncherPreferences.PREF_GYRO_INVERT_Y) yFactor *= -1; } } } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java index 35f1df047..3c4c98f08 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java @@ -57,6 +57,10 @@ public class LauncherPreferences { public static float PREF_GYRO_SENSITIVITY = 100; public static int PREF_GYRO_SAMPLE_RATE = 16; + public static boolean PREF_GYRO_INVERT_X = false; + + public static boolean PREF_GYRO_INVERT_Y = false; + public static void loadPreferences(Context ctx) { //Required for the data folder. @@ -93,6 +97,8 @@ public class LauncherPreferences { PREF_ENALBE_GYRO = DEFAULT_PREF.getBoolean("enableGyro", false); PREF_GYRO_SENSITIVITY = ((float)DEFAULT_PREF.getInt("gyroSensitivity", 100))/100f; PREF_GYRO_SAMPLE_RATE = DEFAULT_PREF.getInt("gyroSampleRate", 16); + PREF_GYRO_INVERT_X = DEFAULT_PREF.getBoolean("gyroInvertX", false); + PREF_GYRO_INVERT_Y = DEFAULT_PREF.getBoolean("gyroInvertY", false); /* if (PREF_CUSTOM_JAVA_ARGS.isEmpty()) { 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 ccd270986..e4aaf12ab 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 @@ -6,6 +6,7 @@ import android.hardware.Sensor; import android.hardware.SensorManager; import android.os.Bundle; +import androidx.preference.PreferenceCategory; import androidx.preference.SwitchPreference; import net.kdt.pojavlaunch.R; @@ -51,8 +52,9 @@ public class LauncherPreferenceControlFragment extends LauncherPreferenceFragmen if(context != null) { mGyroAvailable = ((SensorManager)context.getSystemService(Context.SENSOR_SERVICE)).getDefaultSensor(Sensor.TYPE_GYROSCOPE) != null; } - SwitchPreference gyroSwitch = findPreference("enableGyro"); - gyroSwitch.setVisible(mGyroAvailable); + PreferenceCategory gyroCategory = (PreferenceCategory) findPreference("gyroCategory"); + gyroCategory.setVisible(mGyroAvailable); + CustomSeekBarPreference gyroSensitivitySeek = findPreference("gyroSensitivity"); gyroSensitivitySeek.setRange(25, 300); gyroSensitivitySeek.setValue((int) (gyroSpeed*100f)); @@ -71,12 +73,11 @@ public class LauncherPreferenceControlFragment extends LauncherPreferenceFragmen } private void computeVisibility(){ - CustomSeekBarPreference seek2 = findPreference("timeLongPressTrigger"); - seek2.setVisible(!LauncherPreferences.PREF_DISABLE_GESTURES); - CustomSeekBarPreference gyroSensitivitySeek = findPreference("gyroSensitivity"); - gyroSensitivitySeek.setVisible(mGyroAvailable && LauncherPreferences.PREF_ENALBE_GYRO); - CustomSeekBarPreference gyroSampleRateSeek = findPreference("gyroSampleRate"); - gyroSampleRateSeek.setVisible(mGyroAvailable && LauncherPreferences.PREF_ENALBE_GYRO); + findPreference("timeLongPressTrigger").setVisible(!LauncherPreferences.PREF_DISABLE_GESTURES); + findPreference("gyroSensitivity").setVisible(LauncherPreferences.PREF_ENALBE_GYRO); + findPreference("gyroSampleRate").setVisible(LauncherPreferences.PREF_ENALBE_GYRO); + findPreference("gyroInvertX").setVisible(LauncherPreferences.PREF_ENALBE_GYRO); + findPreference("gyroInvertY").setVisible(LauncherPreferences.PREF_ENALBE_GYRO); } } diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml index 6abeb1e95..7c3acf380 100644 --- a/app_pojavlauncher/src/main/res/values/strings.xml +++ b/app_pojavlauncher/src/main/res/values/strings.xml @@ -289,6 +289,14 @@ Edit custom controls Tweak the control scheme to fit your needs + Gyro controls + Virtual mouse + + Invert X axis + Invert Y axis + Invert the horizontal axis + Invert the vertical axis + Back to the last screen GL4ES Shrink hack Don\'t shrink textures diff --git a/app_pojavlauncher/src/main/res/xml/pref_control.xml b/app_pojavlauncher/src/main/res/xml/pref_control.xml index 377e34352..5f0ec9eb2 100644 --- a/app_pojavlauncher/src/main/res/xml/pref_control.xml +++ b/app_pojavlauncher/src/main/res/xml/pref_control.xml @@ -51,7 +51,7 @@ + android:title="@string/preference_category_virtual_mouse"> + + + + + +