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">
+
+
+
+
+
+