2
0
Эх сурвалжийг харах

Merge pull request #50107 from madmiraal/android-use-lambdas

Replace single method anonymous classes with lambdas in Godot Java code
Rémi Verschelde 4 жил өмнө
parent
commit
c47b6f4b5c

+ 55 - 87
platform/android/java/lib/src/org/godotengine/godot/Godot.java

@@ -279,29 +279,20 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
 		editText.setView(mRenderView);
 		io.setEdit(editText);
 
-		view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
-			@Override
-			public void onGlobalLayout() {
-				Point fullSize = new Point();
-				activity.getWindowManager().getDefaultDisplay().getSize(fullSize);
-				Rect gameSize = new Rect();
-				mRenderView.getView().getWindowVisibleDisplayFrame(gameSize);
-
-				final int keyboardHeight = fullSize.y - gameSize.bottom;
-				GodotLib.setVirtualKeyboardHeight(keyboardHeight);
-			}
+		view.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
+			Point fullSize = new Point();
+			activity.getWindowManager().getDefaultDisplay().getSize(fullSize);
+			Rect gameSize = new Rect();
+			mRenderView.getView().getWindowVisibleDisplayFrame(gameSize);
+			final int keyboardHeight = fullSize.y - gameSize.bottom;
+			GodotLib.setVirtualKeyboardHeight(keyboardHeight);
 		});
 
-		mRenderView.queueOnRenderThread(new Runnable() {
-			@Override
-			public void run() {
-				// Must occur after GodotLib.setup has completed.
-				for (GodotPlugin plugin : pluginRegistry.getAllPlugins()) {
-					plugin.onRegisterPluginWithGodotNative();
-				}
-
-				setKeepScreenOn("True".equals(GodotLib.getGlobal("display/window/energy_saving/keep_screen_on")));
+		mRenderView.queueOnRenderThread(() -> {
+			for (GodotPlugin plugin : pluginRegistry.getAllPlugins()) {
+				plugin.onRegisterPluginWithGodotNative();
 			}
+			setKeepScreenOn("True".equals(GodotLib.getGlobal("display/window/energy_saving/keep_screen_on")));
 		});
 
 		// Include the returned non-null views in the Godot view hierarchy.
@@ -314,14 +305,11 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
 	}
 
 	public void setKeepScreenOn(final boolean p_enabled) {
-		runOnUiThread(new Runnable() {
-			@Override
-			public void run() {
-				if (p_enabled) {
-					getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-				} else {
-					getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-				}
+		runOnUiThread(() -> {
+			if (p_enabled) {
+				getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+			} else {
+				getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
 			}
 		});
 	}
@@ -368,21 +356,14 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
 
 	public void alert(final String message, final String title) {
 		final Activity activity = getActivity();
-		runOnUiThread(new Runnable() {
-			@Override
-			public void run() {
-				AlertDialog.Builder builder = new AlertDialog.Builder(activity);
-				builder.setMessage(message).setTitle(title);
-				builder.setPositiveButton(
-						"OK",
-						new DialogInterface.OnClickListener() {
-							public void onClick(DialogInterface dialog, int id) {
-								dialog.cancel();
-							}
-						});
-				AlertDialog dialog = builder.create();
-				dialog.show();
-			}
+		runOnUiThread(() -> {
+			AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+			builder.setMessage(message).setTitle(title);
+			builder.setPositiveButton(
+					"OK",
+					(dialog, id) -> dialog.cancel());
+			AlertDialog dialog = builder.create();
+			dialog.show();
 		});
 	}
 
@@ -753,19 +734,16 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
 
 	public void UiChangeListener() {
 		final View decorView = getActivity().getWindow().getDecorView();
-		decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
-			@Override
-			public void onSystemUiVisibilityChange(int visibility) {
-				if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
-					if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-						decorView.setSystemUiVisibility(
-								View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
-								View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
-								View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
-								View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
-								View.SYSTEM_UI_FLAG_FULLSCREEN |
-								View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
-					}
+		decorView.setOnSystemUiVisibilityChangeListener(visibility -> {
+			if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
+				if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+					decorView.setSystemUiVisibility(
+							View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
+							View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
+							View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
+							View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
+							View.SYSTEM_UI_FLAG_FULLSCREEN |
+							View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
 				}
 			}
 		});
@@ -796,21 +774,18 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
 
 		final int typeOfSensor = event.sensor.getType();
 		if (mRenderView != null) {
-			mRenderView.queueOnRenderThread(new Runnable() {
-				@Override
-				public void run() {
-					if (typeOfSensor == Sensor.TYPE_ACCELEROMETER) {
-						GodotLib.accelerometer(-x, y, -z);
-					}
-					if (typeOfSensor == Sensor.TYPE_GRAVITY) {
-						GodotLib.gravity(-x, y, -z);
-					}
-					if (typeOfSensor == Sensor.TYPE_MAGNETIC_FIELD) {
-						GodotLib.magnetometer(-x, y, -z);
-					}
-					if (typeOfSensor == Sensor.TYPE_GYROSCOPE) {
-						GodotLib.gyroscope(x, -y, z);
-					}
+			mRenderView.queueOnRenderThread(() -> {
+				if (typeOfSensor == Sensor.TYPE_ACCELEROMETER) {
+					GodotLib.accelerometer(-x, y, -z);
+				}
+				if (typeOfSensor == Sensor.TYPE_GRAVITY) {
+					GodotLib.gravity(-x, y, -z);
+				}
+				if (typeOfSensor == Sensor.TYPE_MAGNETIC_FIELD) {
+					GodotLib.magnetometer(-x, y, -z);
+				}
+				if (typeOfSensor == Sensor.TYPE_GYROSCOPE) {
+					GodotLib.gyroscope(x, -y, z);
 				}
 			});
 		}
@@ -845,12 +820,7 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
 		}
 
 		if (shouldQuit && mRenderView != null) {
-			mRenderView.queueOnRenderThread(new Runnable() {
-				@Override
-				public void run() {
-					GodotLib.back();
-				}
-			});
+			mRenderView.queueOnRenderThread(GodotLib::back);
 		}
 	}
 
@@ -927,16 +897,14 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
 			;
 		if (cnt == 0)
 			return false;
-		mRenderView.queueOnRenderThread(new Runnable() {
-			// This method will be called on the rendering thread:
-			public void run() {
-				for (int i = 0, n = cc.length; i < n; i++) {
-					int keyCode;
-					if ((keyCode = cc[i]) != 0) {
-						// Simulate key down and up...
-						GodotLib.key(0, 0, keyCode, true);
-						GodotLib.key(0, 0, keyCode, false);
-					}
+		// This method will be called on the rendering thread:
+		mRenderView.queueOnRenderThread(() -> {
+			for (int i = 0, n = cc.length; i < n; i++) {
+				int keyCode;
+				if ((keyCode = cc[i]) != 0) {
+					// Simulate key down and up...
+					GodotLib.key(0, 0, keyCode, true);
+					GodotLib.key(0, 0, keyCode, false);
 				}
 			}
 		});

+ 8 - 14
platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java

@@ -232,13 +232,10 @@ public class GodotGLRenderView extends GLSurfaceView implements GodotRenderView
 	public void onResume() {
 		super.onResume();
 
-		queueEvent(new Runnable() {
-			@Override
-			public void run() {
-				// Resume the renderer
-				godotRenderer.onActivityResumed();
-				GodotLib.focusin();
-			}
+		queueEvent(() -> {
+			// Resume the renderer
+			godotRenderer.onActivityResumed();
+			GodotLib.focusin();
 		});
 	}
 
@@ -246,13 +243,10 @@ public class GodotGLRenderView extends GLSurfaceView implements GodotRenderView
 	public void onPause() {
 		super.onPause();
 
-		queueEvent(new Runnable() {
-			@Override
-			public void run() {
-				GodotLib.focusout();
-				// Pause the renderer
-				godotRenderer.onActivityPaused();
-			}
+		queueEvent(() -> {
+			GodotLib.focusout();
+			// Pause the renderer
+			godotRenderer.onActivityPaused();
 		});
 	}
 }

+ 8 - 14
platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java

@@ -149,13 +149,10 @@ public class GodotVulkanRenderView extends VkSurfaceView implements GodotRenderV
 	public void onResume() {
 		super.onResume();
 
-		queueOnVkThread(new Runnable() {
-			@Override
-			public void run() {
-				// Resume the renderer
-				mRenderer.onVkResume();
-				GodotLib.focusin();
-			}
+		queueOnVkThread(() -> {
+			// Resume the renderer
+			mRenderer.onVkResume();
+			GodotLib.focusin();
 		});
 	}
 
@@ -163,13 +160,10 @@ public class GodotVulkanRenderView extends VkSurfaceView implements GodotRenderV
 	public void onPause() {
 		super.onPause();
 
-		queueOnVkThread(new Runnable() {
-			@Override
-			public void run() {
-				GodotLib.focusout();
-				// Pause the renderer
-				mRenderer.onVkPause();
-			}
+		queueOnVkThread(() -> {
+			GodotLib.focusout();
+			// Pause the renderer
+			mRenderer.onVkPause();
 		});
 	}
 }

+ 2 - 12
platform/android/java/lib/src/org/godotengine/godot/input/GodotGestureHandler.java

@@ -75,12 +75,7 @@ public class GodotGestureHandler extends GestureDetector.SimpleOnGestureListener
 		final int x = Math.round(event.getX());
 		final int y = Math.round(event.getY());
 		final int buttonMask = event.getButtonState();
-		queueEvent(new Runnable() {
-			@Override
-			public void run() {
-				GodotLib.doubleTap(buttonMask, x, y);
-			}
-		});
+		queueEvent(() -> GodotLib.doubleTap(buttonMask, x, y));
 		return true;
 	}
 
@@ -89,12 +84,7 @@ public class GodotGestureHandler extends GestureDetector.SimpleOnGestureListener
 		//Log.i("GodotGesture", "onScroll");
 		final int x = Math.round(distanceX);
 		final int y = Math.round(distanceY);
-		queueEvent(new Runnable() {
-			@Override
-			public void run() {
-				GodotLib.scroll(x, y);
-			}
-		});
+		queueEvent(() -> GodotLib.scroll(x, y));
 		return true;
 	}
 

+ 22 - 87
platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java

@@ -97,22 +97,12 @@ public class GodotInputHandler implements InputDeviceListener {
 				final int button = getGodotButton(keyCode);
 				final int godotJoyId = mJoystickIds.get(deviceId);
 
-				queueEvent(new Runnable() {
-					@Override
-					public void run() {
-						GodotLib.joybutton(godotJoyId, button, false);
-					}
-				});
+				queueEvent(() -> GodotLib.joybutton(godotJoyId, button, false));
 			}
 		} else {
 			final int scanCode = event.getScanCode();
 			final int chr = event.getUnicodeChar(0);
-			queueEvent(new Runnable() {
-				@Override
-				public void run() {
-					GodotLib.key(keyCode, scanCode, chr, false);
-				}
-			});
+			queueEvent(() -> GodotLib.key(keyCode, scanCode, chr, false));
 		}
 
 		return true;
@@ -143,22 +133,12 @@ public class GodotInputHandler implements InputDeviceListener {
 				final int button = getGodotButton(keyCode);
 				final int godotJoyId = mJoystickIds.get(deviceId);
 
-				queueEvent(new Runnable() {
-					@Override
-					public void run() {
-						GodotLib.joybutton(godotJoyId, button, true);
-					}
-				});
+				queueEvent(() -> GodotLib.joybutton(godotJoyId, button, true));
 			}
 		} else {
 			final int scanCode = event.getScanCode();
 			final int chr = event.getUnicodeChar(0);
-			queueEvent(new Runnable() {
-				@Override
-				public void run() {
-					GodotLib.key(keyCode, scanCode, chr, true);
-				}
-			});
+			queueEvent(() -> GodotLib.key(keyCode, scanCode, chr, true));
 		}
 
 		return true;
@@ -190,19 +170,16 @@ public class GodotInputHandler implements InputDeviceListener {
 			final int action = event.getActionMasked();
 			final int pointer_idx = event.getPointerId(event.getActionIndex());
 
-			mRenderView.queueOnRenderThread(new Runnable() {
-				@Override
-				public void run() {
-					switch (action) {
-						case MotionEvent.ACTION_DOWN:
-						case MotionEvent.ACTION_CANCEL:
-						case MotionEvent.ACTION_UP:
-						case MotionEvent.ACTION_MOVE:
-						case MotionEvent.ACTION_POINTER_UP:
-						case MotionEvent.ACTION_POINTER_DOWN: {
-							GodotLib.touch(event.getSource(), action, pointer_idx, evcount, arr);
-						} break;
-					}
+			mRenderView.queueOnRenderThread(() -> {
+				switch (action) {
+					case MotionEvent.ACTION_DOWN:
+					case MotionEvent.ACTION_CANCEL:
+					case MotionEvent.ACTION_UP:
+					case MotionEvent.ACTION_MOVE:
+					case MotionEvent.ACTION_POINTER_UP:
+					case MotionEvent.ACTION_POINTER_DOWN: {
+						GodotLib.touch(event.getSource(), action, pointer_idx, evcount, arr);
+					} break;
 				}
 			});
 		}
@@ -228,13 +205,7 @@ public class GodotInputHandler implements InputDeviceListener {
 						// save value to prevent repeats
 						joystick.axesValues.put(axis, value);
 						final int godotAxisIdx = i;
-						queueEvent(new Runnable() {
-							@Override
-							public void run() {
-								GodotLib.joyaxis(godotJoyId, godotAxisIdx, value);
-								//Log.i(tag, "GodotLib.joyaxis("+godotJoyId+", "+godotAxisIdx+", "+value+");");
-							}
-						});
+						queueEvent(() -> GodotLib.joyaxis(godotJoyId, godotAxisIdx, value));
 					}
 				}
 
@@ -244,13 +215,7 @@ public class GodotInputHandler implements InputDeviceListener {
 					if (joystick.hatX != hatX || joystick.hatY != hatY) {
 						joystick.hatX = hatX;
 						joystick.hatY = hatY;
-						queueEvent(new Runnable() {
-							@Override
-							public void run() {
-								GodotLib.joyhat(godotJoyId, hatX, hatY);
-								//Log.i(tag, "GodotLib.joyhat("+godotJoyId+", "+hatX+", "+hatY+");");
-							}
-						});
+						queueEvent(() -> GodotLib.joyhat(godotJoyId, hatX, hatY));
 					}
 				}
 				return true;
@@ -259,12 +224,7 @@ public class GodotInputHandler implements InputDeviceListener {
 			final float x = event.getX();
 			final float y = event.getY();
 			final int type = event.getAction();
-			queueEvent(new Runnable() {
-				@Override
-				public void run() {
-					GodotLib.hover(type, x, y);
-				}
-			});
+			queueEvent(() -> GodotLib.hover(type, x, y));
 			return true;
 
 		} else if (event.isFromSource(InputDevice.SOURCE_MOUSE) || event.isFromSource(InputDevice.SOURCE_MOUSE_RELATIVE)) {
@@ -356,12 +316,7 @@ public class GodotInputHandler implements InputDeviceListener {
 		}
 		mJoysticksDevices.put(deviceId, joystick);
 
-		queueEvent(new Runnable() {
-			@Override
-			public void run() {
-				GodotLib.joyconnectionchanged(id, true, joystick.name);
-			}
-		});
+		queueEvent(() -> GodotLib.joyconnectionchanged(id, true, joystick.name));
 	}
 
 	@Override
@@ -374,12 +329,7 @@ public class GodotInputHandler implements InputDeviceListener {
 		mJoystickIds.delete(deviceId);
 		mJoysticksDevices.delete(deviceId);
 
-		queueEvent(new Runnable() {
-			@Override
-			public void run() {
-				GodotLib.joyconnectionchanged(godotJoyId, false, "");
-			}
-		});
+		queueEvent(() -> GodotLib.joyconnectionchanged(godotJoyId, false, ""));
 	}
 
 	@Override
@@ -468,12 +418,7 @@ public class GodotInputHandler implements InputDeviceListener {
 				final float x = event.getX();
 				final float y = event.getY();
 				final int type = event.getAction();
-				queueEvent(new Runnable() {
-					@Override
-					public void run() {
-						GodotLib.hover(type, x, y);
-					}
-				});
+				queueEvent(() -> GodotLib.hover(type, x, y));
 				return true;
 			}
 			case MotionEvent.ACTION_BUTTON_PRESS:
@@ -483,12 +428,7 @@ public class GodotInputHandler implements InputDeviceListener {
 				final float y = event.getY();
 				final int buttonsMask = event.getButtonState();
 				final int action = event.getAction();
-				queueEvent(new Runnable() {
-					@Override
-					public void run() {
-						GodotLib.touch(event.getSource(), action, 0, 1, new float[] { 0, x, y }, buttonsMask);
-					}
-				});
+				queueEvent(() -> GodotLib.touch(event.getSource(), action, 0, 1, new float[] { 0, x, y }, buttonsMask));
 				return true;
 			}
 			case MotionEvent.ACTION_SCROLL: {
@@ -498,12 +438,7 @@ public class GodotInputHandler implements InputDeviceListener {
 				final int action = event.getAction();
 				final float verticalFactor = event.getAxisValue(MotionEvent.AXIS_VSCROLL);
 				final float horizontalFactor = event.getAxisValue(MotionEvent.AXIS_HSCROLL);
-				queueEvent(new Runnable() {
-					@Override
-					public void run() {
-						GodotLib.touch(event.getSource(), action, 0, 1, new float[] { 0, x, y }, buttonsMask, verticalFactor, horizontalFactor);
-					}
-				});
+				queueEvent(() -> GodotLib.touch(event.getSource(), action, 0, 1, new float[] { 0, x, y }, buttonsMask, verticalFactor, horizontalFactor));
 			}
 			case MotionEvent.ACTION_DOWN:
 			case MotionEvent.ACTION_UP: {

+ 21 - 30
platform/android/java/lib/src/org/godotengine/godot/input/GodotTextInputWrapper.java

@@ -94,17 +94,14 @@ public class GodotTextInputWrapper implements TextWatcher, OnEditorActionListene
 	public void beforeTextChanged(final CharSequence pCharSequence, final int start, final int count, final int after) {
 		//Log.d(TAG, "beforeTextChanged(" + pCharSequence + ")start: " + start + ",count: " + count + ",after: " + after);
 
-		mRenderView.queueOnRenderThread(new Runnable() {
-			@Override
-			public void run() {
-				for (int i = 0; i < count; ++i) {
-					GodotLib.key(KeyEvent.KEYCODE_DEL, KeyEvent.KEYCODE_DEL, 0, true);
-					GodotLib.key(KeyEvent.KEYCODE_DEL, KeyEvent.KEYCODE_DEL, 0, false);
-
-					if (mHasSelection) {
-						mHasSelection = false;
-						break;
-					}
+		mRenderView.queueOnRenderThread(() -> {
+			for (int i = 0; i < count; ++i) {
+				GodotLib.key(KeyEvent.KEYCODE_DEL, KeyEvent.KEYCODE_DEL, 0, true);
+				GodotLib.key(KeyEvent.KEYCODE_DEL, KeyEvent.KEYCODE_DEL, 0, false);
+
+				if (mHasSelection) {
+					mHasSelection = false;
+					break;
 				}
 			}
 		});
@@ -118,18 +115,15 @@ public class GodotTextInputWrapper implements TextWatcher, OnEditorActionListene
 		for (int i = start; i < start + count; ++i) {
 			newChars[i - start] = pCharSequence.charAt(i);
 		}
-		mRenderView.queueOnRenderThread(new Runnable() {
-			@Override
-			public void run() {
-				for (int i = 0; i < count; ++i) {
-					int key = newChars[i];
-					if ((key == '\n') && !mEdit.isMultiline()) {
-						// Return keys are handled through action events
-						continue;
-					}
-					GodotLib.key(0, 0, key, true);
-					GodotLib.key(0, 0, key, false);
+		mRenderView.queueOnRenderThread(() -> {
+			for (int i = 0; i < count; ++i) {
+				int key = newChars[i];
+				if ((key == '\n') && !mEdit.isMultiline()) {
+					// Return keys are handled through action events
+					continue;
 				}
+				GodotLib.key(0, 0, key, true);
+				GodotLib.key(0, 0, key, false);
 			}
 		});
 	}
@@ -139,14 +133,11 @@ public class GodotTextInputWrapper implements TextWatcher, OnEditorActionListene
 		if (mEdit == pTextView && isFullScreenEdit()) {
 			final String characters = pKeyEvent.getCharacters();
 
-			mRenderView.queueOnRenderThread(new Runnable() {
-				@Override
-				public void run() {
-					for (int i = 0; i < characters.length(); i++) {
-						final int ch = characters.codePointAt(i);
-						GodotLib.key(0, 0, ch, true);
-						GodotLib.key(0, 0, ch, false);
-					}
+			mRenderView.queueOnRenderThread(() -> {
+				for (int i = 0; i < characters.length(); i++) {
+					final int ch = characters.codePointAt(i);
+					GodotLib.key(0, 0, ch, true);
+					GodotLib.key(0, 0, ch, false);
 				}
 			});
 		}