diff options
| author | fluffrabbit <fluffrabbit@aol.com> | 2016-05-27 14:29:37 -0300 | 
|---|---|---|
| committer | George Marques <george@gmarqu.es> | 2016-05-27 14:36:55 -0300 | 
| commit | 4877b714b3f8b0f0af2bce7a32691fc2202c8acc (patch) | |
| tree | 26df024d25fbbcd11b27a560644273a2599d947c /platform/android/java/src | |
| parent | eb7227a20b27e91c6e2adfb1ded738f2dd7e453b (diff) | |
Add magnetometer sensor support for Android
Diffstat (limited to 'platform/android/java/src')
| -rw-r--r-- | platform/android/java/src/org/godotengine/godot/Godot.java | 13 | ||||
| -rw-r--r-- | platform/android/java/src/org/godotengine/godot/GodotLib.java | 1 | 
2 files changed, 13 insertions, 1 deletions
diff --git a/platform/android/java/src/org/godotengine/godot/Godot.java b/platform/android/java/src/org/godotengine/godot/Godot.java index 1f208f8fb6..c4ba2da751 100644 --- a/platform/android/java/src/org/godotengine/godot/Godot.java +++ b/platform/android/java/src/org/godotengine/godot/Godot.java @@ -206,6 +206,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  	private SensorManager mSensorManager;  	private Sensor mAccelerometer; +	private Sensor mMagnetometer;  	public FrameLayout layout;  	public RelativeLayout adLayout; @@ -374,6 +375,8 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  		mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);  		mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);  		mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_GAME); +		mMagnetometer = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); +		mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_GAME);  		result_callback = null; @@ -588,6 +591,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  		mView.onResume();  		mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); +		mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_NORMAL);  		GodotLib.focusin();  		if(use_immersive && Build.VERSION.SDK_INT >= 19.0){ // check if the application runs on an android 4.4+  			Window window = getWindow(); @@ -646,7 +650,14 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  		float x = adjustedValues[0];  		float y = adjustedValues[1];  		float z = adjustedValues[2]; -		GodotLib.accelerometer(x,y,z); + +		int typeOfSensor = event.sensor.getType(); +		if (typeOfSensor == event.sensor.TYPE_ACCELEROMETER) { +			GodotLib.accelerometer(x,y,z); +		} +		if (typeOfSensor == event.sensor.TYPE_MAGNETIC_FIELD) { +			GodotLib.magnetometer(x,y,z); +		}  	}  	@Override public final void onAccuracyChanged(Sensor sensor, int accuracy) { diff --git a/platform/android/java/src/org/godotengine/godot/GodotLib.java b/platform/android/java/src/org/godotengine/godot/GodotLib.java index 7c5ac33c85..df181ae1bb 100644 --- a/platform/android/java/src/org/godotengine/godot/GodotLib.java +++ b/platform/android/java/src/org/godotengine/godot/GodotLib.java @@ -51,6 +51,7 @@ public class GodotLib {       public static native void step();       public static native void touch(int what,int pointer,int howmany, int[] arr);       public static native void accelerometer(float x, float y, float z); +     public static native void magnetometer(float x, float y, float z);  	 public static native void key(int p_scancode, int p_unicode_char, boolean p_pressed);  	 public static native void joybutton(int p_device, int p_but, boolean p_pressed);  	 public static native void joyaxis(int p_device, int p_axis, float p_value);  |