diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java index c6764d38..4110850c 100644 --- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java +++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java @@ -151,12 +151,8 @@ public class GameActivity extends BaseActivity implements EmulatorCallback, Sens } @Override - public boolean dispatchKeyEvent(KeyEvent event) { - if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP || event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) { - return super.dispatchKeyEvent(event); - } - - if ((!drawerFragment.isOpened()) && InputHandler.processKeyEvent(event)) { + public boolean dispatchKeyEvent(KeyEvent event) { + if ((!drawerFragment.isOpened()) && InputHandler.processKeyEvent(event, true)) { return true; } diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/InputMapActivity.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/InputMapActivity.java index dce56a5f..154ec7e5 100644 --- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/InputMapActivity.java +++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/preferences/InputMapActivity.java @@ -47,7 +47,7 @@ public class InputMapActivity extends BaseActivity { @Override public boolean dispatchKeyEvent(KeyEvent event) { - return InputHandler.processKeyEvent(event); + return InputHandler.processKeyEvent(event, false); } private void onInputEvent(InputEvent event) { diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/input/InputHandler.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/input/InputHandler.java index c6440434..6a9aa62f 100644 --- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/input/InputHandler.java +++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/input/InputHandler.java @@ -90,7 +90,7 @@ public class InputHandler { return true; } - public static boolean processKeyEvent(KeyEvent event) { + public static boolean processKeyEvent(KeyEvent event, Boolean playing) { if (!isSourceValid(event.getSource())) { return false; } @@ -110,6 +110,13 @@ public class InputHandler { } } String code = KeyEvent.keyCodeToString(event.getKeyCode()); + + if (playing == true) { + if (InputMap.relative(code) == KeyName.NULL) { + return false; + } + } + if (event.getAction() == KeyEvent.ACTION_UP) { keyDownEvents.remove(code); handleEvent(new InputEvent(code, 0.0f));