Fix: hide gyro if not supported

This commit is contained in:
Mathias-Boulay 2024-11-22 20:12:57 +01:00
parent 383b3edd75
commit 19afab28f4
3 changed files with 21 additions and 2 deletions

View File

@ -19,6 +19,8 @@ import android.content.pm.PackageManager;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
import android.database.Cursor; import android.database.Cursor;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
@ -1285,4 +1287,9 @@ public final class Tools {
sCompatibleRenderers = null; sCompatibleRenderers = null;
System.gc(); System.gc();
} }
public static boolean deviceSupportsGyro(@NonNull Context context) {
return ((SensorManager)context.getSystemService(Context.SENSOR_SERVICE)).getDefaultSensor(Sensor.TYPE_GYROSCOPE) != null;
}
} }

View File

@ -48,7 +48,10 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView {
@Override @Override
protected void onInflate() { protected void onInflate() {
bindLayout(); bindLayout();
Tools.runOnUiThread(this::setupListeners); Tools.runOnUiThread(() -> {
this.setupListeners();
this.updateGyroCompatibility();
});
} }
@Override @Override
@ -187,6 +190,14 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView {
mGyroSensitivityDisplayText.setVisibility(visibility); mGyroSensitivityDisplayText.setVisibility(visibility);
} }
private void updateGyroCompatibility() {
boolean isGyroAvailable = Tools.deviceSupportsGyro(mDialogContent.getContext());
if (!isGyroAvailable) {
mGyroSwitch.setVisibility(View.GONE);
updateGestureVisibility(false);
}
}
private void updateGestureVisibility(boolean isDisabled) { private void updateGestureVisibility(boolean isDisabled) {
int visibility = isDisabled ? View.GONE : View.VISIBLE; int visibility = isDisabled ? View.GONE : View.VISIBLE;
mGestureDelayBar.setVisibility(visibility); mGestureDelayBar.setVisibility(visibility);

View File

@ -9,6 +9,7 @@ import android.os.Bundle;
import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceCategory;
import net.kdt.pojavlaunch.R; import net.kdt.pojavlaunch.R;
import net.kdt.pojavlaunch.Tools;
import net.kdt.pojavlaunch.prefs.CustomSeekBarPreference; import net.kdt.pojavlaunch.prefs.CustomSeekBarPreference;
import net.kdt.pojavlaunch.prefs.LauncherPreferences; import net.kdt.pojavlaunch.prefs.LauncherPreferences;
@ -62,7 +63,7 @@ public class LauncherPreferenceControlFragment extends LauncherPreferenceFragmen
Context context = getContext(); Context context = getContext();
if(context != null) { if(context != null) {
mGyroAvailable = ((SensorManager)context.getSystemService(Context.SENSOR_SERVICE)).getDefaultSensor(Sensor.TYPE_GYROSCOPE) != null; mGyroAvailable = Tools.deviceSupportsGyro(context);
} }
PreferenceCategory gyroCategory = requirePreference("gyroCategory", PreferenceCategory gyroCategory = requirePreference("gyroCategory",
PreferenceCategory.class); PreferenceCategory.class);