@@ -120,6 +120,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
120120 private boolean mStatePaused ;
121121 private int mState ;
122122 private boolean keep_screen_on = true ;
123+ private int sensor_delay = SensorManager .SENSOR_DELAY_GAME ;
123124
124125 static private Intent mCurrentIntent ;
125126
@@ -279,7 +280,7 @@ public void onVideoInit() {
279280 // ...add to FrameLayout
280281 layout .addView (edittext );
281282
282- mView = new GodotView (getApplication (), io , use_gl3 , use_32_bits , use_debug_opengl ,this );
283+ mView = new GodotView (getApplication (), io , use_gl3 , use_32_bits , use_debug_opengl , this );
283284 layout .addView (mView , new LayoutParams (LayoutParams .FILL_PARENT , LayoutParams .FILL_PARENT ));
284285 edittext .setView (mView );
285286 io .setEdit (edittext );
@@ -420,18 +421,29 @@ private void initializeGodot() {
420421 command_line = new_cmdline ;
421422 }
422423
424+ String sensor_delay_string = GodotLib .getGlobal ("input_devices/sensors/sensor_delay" );
425+ if (sensor_delay_string == "Fastest" ) {
426+ sensor_delay = SensorManager .SENSOR_DELAY_FASTEST ;
427+ } else if (sensor_delay_string == "Game" ) {
428+ sensor_delay = SensorManager .SENSOR_DELAY_GAME ;
429+ } else if (sensor_delay_string == "Normal" ) {
430+ sensor_delay = SensorManager .SENSOR_DELAY_NORMAL ;
431+ } else if (sensor_delay_string == "UI" ) {
432+ sensor_delay = SensorManager .SENSOR_DELAY_UI ;
433+ }
434+
423435 io = new GodotIO (this );
424436 io .unique_id = Secure .getString (getContentResolver (), Secure .ANDROID_ID );
425437 GodotLib .io = io ;
426438 mSensorManager = (SensorManager )getSystemService (Context .SENSOR_SERVICE );
427439 mAccelerometer = mSensorManager .getDefaultSensor (Sensor .TYPE_ACCELEROMETER );
428- mSensorManager .registerListener (this , mAccelerometer , SensorManager . SENSOR_DELAY_GAME );
440+ mSensorManager .registerListener (this , mAccelerometer , sensor_delay );
429441 mGravity = mSensorManager .getDefaultSensor (Sensor .TYPE_GRAVITY );
430- mSensorManager .registerListener (this , mGravity , SensorManager . SENSOR_DELAY_GAME );
442+ mSensorManager .registerListener (this , mGravity , sensor_delay );
431443 mMagnetometer = mSensorManager .getDefaultSensor (Sensor .TYPE_MAGNETIC_FIELD );
432- mSensorManager .registerListener (this , mMagnetometer , SensorManager . SENSOR_DELAY_GAME );
444+ mSensorManager .registerListener (this , mMagnetometer , sensor_delay );
433445 mGyroscope = mSensorManager .getDefaultSensor (Sensor .TYPE_GYROSCOPE );
434- mSensorManager .registerListener (this , mGyroscope , SensorManager . SENSOR_DELAY_GAME );
446+ mSensorManager .registerListener (this , mGyroscope , sensor_delay );
435447
436448 GodotLib .initialize (this , io .needsReloadHooks (), getAssets (), use_apk_expansion );
437449
@@ -660,10 +672,10 @@ public void run() {
660672 GodotLib .focusin ();
661673 }
662674 });
663- mSensorManager .registerListener (this , mAccelerometer , SensorManager . SENSOR_DELAY_GAME );
664- mSensorManager .registerListener (this , mGravity , SensorManager . SENSOR_DELAY_GAME );
665- mSensorManager .registerListener (this , mMagnetometer , SensorManager . SENSOR_DELAY_GAME );
666- mSensorManager .registerListener (this , mGyroscope , SensorManager . SENSOR_DELAY_GAME );
675+ mSensorManager .registerListener (this , mAccelerometer , sensor_delay );
676+ mSensorManager .registerListener (this , mGravity , sensor_delay );
677+ mSensorManager .registerListener (this , mMagnetometer , sensor_delay );
678+ mSensorManager .registerListener (this , mGyroscope , sensor_delay );
667679
668680 if (use_immersive && Build .VERSION .SDK_INT >= 19.0 ) { // check if the application runs on an android 4.4+
669681 Window window = getWindow ();
0 commit comments