Feat[Gyro]: Allow to swap axis

This commit is contained in:
Mathias-Boulay 2023-02-16 21:29:26 +01:00
parent 281bb92b2d
commit 64d271a8af
5 changed files with 41 additions and 9 deletions

View File

@ -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;
}
}
}

View File

@ -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()) {

View File

@ -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);
}
}

View File

@ -289,6 +289,14 @@
<string name="preference_edit_controls_title">Edit custom controls</string>
<string name="preference_edit_controls_summary">Tweak the control scheme to fit your needs</string>
<string name="preference_category_gyro_controls">Gyro controls</string>
<string name="preference_category_virtual_mouse">Virtual mouse</string>
<string name="preference_gyro_invert_x_axis">Invert X axis</string>
<string name="preference_gyro_invert_y_axis">Invert Y axis</string>
<string name="preference_gyro_invert_x_axis_description">Invert the horizontal axis</string>
<string name="preference_gyro_invert_y_axis_description">Invert the vertical axis</string>
<string name="preference_back_title">Back to the last screen</string>
<string name="gles_hack_title">GL4ES Shrink hack</string>
<string name="gles_hack_none">Don\'t shrink textures</string>

View File

@ -51,7 +51,7 @@
</PreferenceCategory>
<PreferenceCategory
android:title="Virtual mouse">
android:title="@string/preference_category_virtual_mouse">
<net.kdt.pojavlaunch.prefs.CustomSeekBarPreference
android:key="mousescale"
@ -77,6 +77,12 @@
android:title="@string/preference_mouse_start_title"
android:summary="@string/preference_mouse_start_description"
/>
</PreferenceCategory>
<PreferenceCategory
android:key="gyroCategory"
android:title="@string/preference_category_gyro_controls"
>
<SwitchPreference
android:key="enableGyro"
android:title="@string/preference_enable_gyro_title"
@ -94,6 +100,15 @@
android:summary="@string/preference_gyro_sample_rate_description"
app2:selectable="false"
app2:showSeekBarValue="true"/>
<SwitchPreference
android:key="gyroInvertX"
android:title="@string/preference_gyro_invert_x_axis"
android:summary="@string/preference_gyro_invert_x_axis_description"/>
<SwitchPreference
android:key="gyroInvertY"
android:title="@string/preference_gyro_invert_y_axis"
android:summary="@string/preference_gyro_invert_y_axis_description"/>
</PreferenceCategory>