diff options
| -rw-r--r-- | platform/android/java/src/org/godotengine/godot/Godot.java | 10 | ||||
| -rw-r--r-- | platform/android/java/src/org/godotengine/godot/GodotView.java | 8 | 
2 files changed, 10 insertions, 8 deletions
diff --git a/platform/android/java/src/org/godotengine/godot/Godot.java b/platform/android/java/src/org/godotengine/godot/Godot.java index 053dfa631a..59fefc498f 100644 --- a/platform/android/java/src/org/godotengine/godot/Godot.java +++ b/platform/android/java/src/org/godotengine/godot/Godot.java @@ -191,6 +191,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  		protected void onMainPause() {}  		protected void onMainResume() {}  		protected void onMainDestroy() {} +		protected boolean onMainBackPressed() { return false; }  		protected void onGLDrawFrame(GL10 gl) {}  		protected void onGLSurfaceChanged(GL10 gl, int width, int height) {} // singletons will always miss first onGLSurfaceChanged call @@ -767,9 +768,16 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  */  	@Override public void onBackPressed() { +		boolean shouldQuit = true; + +		for(int i=0;i<singleton_count;i++) { +			if (singletons[i].onMainBackPressed()) { +				shouldQuit = false; +			} +		}  		System.out.printf("** BACK REQUEST!\n"); -		if (mView != null) { +		if (shouldQuit && mView != null) {  			mView.queueEvent(new Runnable() {  				@Override  				public void run() { diff --git a/platform/android/java/src/org/godotengine/godot/GodotView.java b/platform/android/java/src/org/godotengine/godot/GodotView.java index 3c2ad7cc59..b807b952d4 100644 --- a/platform/android/java/src/org/godotengine/godot/GodotView.java +++ b/platform/android/java/src/org/godotengine/godot/GodotView.java @@ -285,13 +285,7 @@ public class GodotView extends GLSurfaceView implements InputDeviceListener {  	@Override public boolean onKeyDown(final int keyCode, KeyEvent event) {  		if (keyCode == KeyEvent.KEYCODE_BACK) { -			queueEvent(new Runnable() { -				@Override -				public void run() { -					GodotLib.back(); -				} -			}); - +			activity.onBackPressed();  			// press 'back' button should not terminate program  			//normal handle 'back' event in game logic  			return true;  |