Przeglądaj źródła

Move onKeyDown/onKeyUp from Godot to GodotView
Press 'back' button should not terminate program, normal handle 'back' event in game logic

sanikoyes 11 lat temu
rodzic
commit
bae5ad7c8b

+ 0 - 10
platform/android/java/src/com/android/godot/Godot.java

@@ -346,16 +346,6 @@ public class Godot extends Activity implements SensorEventListener
 		
 	}
 
-	@Override public boolean onKeyUp(int keyCode, KeyEvent event) {
-		GodotLib.key(keyCode, event.getUnicodeChar(0), false);
-		return super.onKeyUp(keyCode, event);
-	};
-
-	@Override public boolean onKeyDown(int keyCode, KeyEvent event) {
-		GodotLib.key(keyCode, event.getUnicodeChar(0), true);
-		return super.onKeyDown(keyCode, event);
-	}
-
 	public PaymentsManager getPaymentsManager() {
 		return mPaymentsManager;
 	}

+ 16 - 0
platform/android/java/src/com/android/godot/GodotView.java

@@ -98,8 +98,24 @@ public class GodotView extends GLSurfaceView {
 		return activity.gotTouchEvent(event);
 	};
 
+	@Override public boolean onKeyUp(int keyCode, KeyEvent event) {
+		GodotLib.key(keyCode, event.getUnicodeChar(0), false);
+		return super.onKeyUp(keyCode, event);
+	};
+
+	@Override public boolean onKeyDown(int keyCode, KeyEvent event) {
+		GodotLib.key(keyCode, event.getUnicodeChar(0), true);
+		if (keyCode == KeyEvent.KEYCODE_BACK) {
+			// press 'back' button should not terminate program
+			//	normal handle 'back' event in game logic
+			return true;
+		}
+		return super.onKeyDown(keyCode, event);
+	}
+
     private void init(boolean translucent, int depth, int stencil) {
 
+	this.setFocusableInTouchMode(true);
 	/* By default, GLSurfaceView() creates a RGB_565 opaque surface.
 	 * If we want a translucent one, we should change the surface's
 	 * format here, using PixelFormat.TRANSLUCENT for GL Surfaces