aboutsummaryrefslogtreecommitdiff
path: root/platform/android
diff options
context:
space:
mode:
authorRuslan Mustakov2018-04-16 11:19:07 +0700
committerHein-Pieter van Braam2018-04-28 22:50:25 +0200
commit4eed7cb9b2c13e27efe88e32a3a510a46a8cf0c9 (patch)
tree8742e71003429d80c41aafd235d771eef7c7d181 /platform/android
parentca00323e7f93e405dbd94ddba0b3f330487142b3 (diff)
downloadgodot-4eed7cb9b2c13e27efe88e32a3a510a46a8cf0c9.tar.gz
godot-4eed7cb9b2c13e27efe88e32a3a510a46a8cf0c9.tar.zst
godot-4eed7cb9b2c13e27efe88e32a3a510a46a8cf0c9.zip
Fix Android input source checks
Input source types are not pure bit flags, they are combinations of flags, so != 0 check was incorrect and resulted in crashes later, when trying to obtain the device. (cherry picked from commit 5dffa506dc3168e96b4a03d1defbf34661cdff05)
Diffstat (limited to 'platform/android')
-rw-r--r--platform/android/java/src/org/godotengine/godot/GodotView.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/platform/android/java/src/org/godotengine/godot/GodotView.java b/platform/android/java/src/org/godotengine/godot/GodotView.java
index 0222758c2..23723c269 100644
--- a/platform/android/java/src/org/godotengine/godot/GodotView.java
+++ b/platform/android/java/src/org/godotengine/godot/GodotView.java
@@ -261,7 +261,7 @@ public class GodotView extends GLSurfaceView implements InputDeviceListener {
};
int source = event.getSource();
- if ((source & InputDevice.SOURCE_JOYSTICK) != 0 || (source & InputDevice.SOURCE_DPAD) != 0 || (source & InputDevice.SOURCE_GAMEPAD) != 0) {
+ if ((source & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK || (source & InputDevice.SOURCE_DPAD) == InputDevice.SOURCE_DPAD || (source & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD) {
final int button = get_godot_button(keyCode);
final int device = find_joy_device(event.getDeviceId());
@@ -302,7 +302,7 @@ public class GodotView extends GLSurfaceView implements InputDeviceListener {
int source = event.getSource();
//Log.e(TAG, String.format("Key down! source %d, device %d, joystick %d, %d, %d", event.getDeviceId(), source, (source & InputDevice.SOURCE_JOYSTICK), (source & InputDevice.SOURCE_DPAD), (source & InputDevice.SOURCE_GAMEPAD)));
- if ((source & InputDevice.SOURCE_JOYSTICK) != 0 || (source & InputDevice.SOURCE_DPAD) != 0 || (source & InputDevice.SOURCE_GAMEPAD) != 0) {
+ if ((source & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK || (source & InputDevice.SOURCE_DPAD) == InputDevice.SOURCE_DPAD || (source & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD) {
if (event.getRepeatCount() > 0) // ignore key echo
return true;