diff options
Diffstat (limited to 'platform/android/java/src')
| -rw-r--r-- | platform/android/java/src/org/godotengine/godot/Godot.java | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/platform/android/java/src/org/godotengine/godot/Godot.java b/platform/android/java/src/org/godotengine/godot/Godot.java index 6e1841fa8b..f493b5f33f 100644 --- a/platform/android/java/src/org/godotengine/godot/Godot.java +++ b/platform/android/java/src/org/godotengine/godot/Godot.java @@ -56,6 +56,7 @@ import android.os.Build;  import android.os.Bundle;  import android.os.Environment;  import android.os.Messenger; +import android.os.Vibrator;  import android.provider.Settings.Secure;  import android.support.v4.content.ContextCompat;  import android.view.Display; @@ -98,6 +99,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  	static final int MAX_SINGLETONS = 64;  	static final int REQUEST_RECORD_AUDIO_PERMISSION = 1;  	static final int REQUEST_CAMERA_PERMISSION = 2; +	static final int REQUEST_VIBRATE_PERMISSION = 3;  	private IStub mDownloaderClientStub;  	private IDownloaderService mRemoteService;  	private TextView mStatusText; @@ -324,6 +326,15 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  		});  	} +	public void vibrate(int p_duration_ms) { +		if (requestPermission("VIBRATE")) { +			Vibrator v = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); +			if (v != null) { +				v.vibrate(p_duration_ms); +			} +		} +	} +  	public void restart() {  		// HACK:  		// @@ -625,6 +636,10 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  		GodotLib.ondestroy(this);  		super.onDestroy(); + +		// TODO: This is a temp solution. The proper fix will involve tracking down and properly shutting down each +		// native Godot components that is started in Godot#onVideoInit. +		forceQuit();  	}  	@Override @@ -985,6 +1000,13 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  				return false;  			}  		} + +		if (p_name.equals("VIBRATE")) { +			if (ContextCompat.checkSelfPermission(this, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) { +				requestPermissions(new String[] { Manifest.permission.VIBRATE }, REQUEST_VIBRATE_PERMISSION); +				return false; +			} +		}  		return true;  	} |