From a5dc57d88e8bf5624901e5a2f2f31ea4741ddf2d Mon Sep 17 00:00:00 2001 From: Kerry Sainsbury Date: Sun, 7 Apr 2024 20:11:23 +1200 Subject: [PATCH 1/4] Support controller bumper buttons for flippers --- app/build.gradle | 2 +- .../java/com/dozingcatsoftware/bouncy/FieldViewManager.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9fbc48e..545554b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { defaultConfig { applicationId "com.dozingcatsoftware.bouncy" - minSdkVersion 4 + minSdkVersion 9 targetSdkVersion 34 versionCode 38 versionName "1.13.0" diff --git a/app/src/main/java/com/dozingcatsoftware/bouncy/FieldViewManager.java b/app/src/main/java/com/dozingcatsoftware/bouncy/FieldViewManager.java index fe93e6f..d1f0b27 100644 --- a/app/src/main/java/com/dozingcatsoftware/bouncy/FieldViewManager.java +++ b/app/src/main/java/com/dozingcatsoftware/bouncy/FieldViewManager.java @@ -330,9 +330,9 @@ private void updateFlippersFromTouchEvent(boolean left, boolean right) { } static List LEFT_FLIPPER_KEYS = Arrays.asList( - KeyEvent.KEYCODE_Z, KeyEvent.KEYCODE_DPAD_LEFT); + KeyEvent.KEYCODE_Z, KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_BUTTON_L1); static List RIGHT_FLIPPER_KEYS = Arrays.asList( - KeyEvent.KEYCODE_SLASH, KeyEvent.KEYCODE_DPAD_RIGHT); + KeyEvent.KEYCODE_SLASH, KeyEvent.KEYCODE_DPAD_RIGHT, KeyEvent.KEYCODE_BUTTON_L1); static List ALL_FLIPPER_KEYS = Arrays.asList( KeyEvent.KEYCODE_SPACE, KeyEvent.KEYCODE_ENTER, KeyEvent.KEYCODE_DPAD_CENTER); From 7dfa0b985f104217eeb79044044b38d0bf5bbfa2 Mon Sep 17 00:00:00 2001 From: Kerry Sainsbury Date: Mon, 8 Apr 2024 12:35:23 +1200 Subject: [PATCH 2/4] Idiot copy/paste forgot to change the keyevent for R1 --- .../java/com/dozingcatsoftware/bouncy/FieldViewManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/dozingcatsoftware/bouncy/FieldViewManager.java b/app/src/main/java/com/dozingcatsoftware/bouncy/FieldViewManager.java index d1f0b27..ec9f9ed 100644 --- a/app/src/main/java/com/dozingcatsoftware/bouncy/FieldViewManager.java +++ b/app/src/main/java/com/dozingcatsoftware/bouncy/FieldViewManager.java @@ -332,7 +332,7 @@ private void updateFlippersFromTouchEvent(boolean left, boolean right) { static List LEFT_FLIPPER_KEYS = Arrays.asList( KeyEvent.KEYCODE_Z, KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_BUTTON_L1); static List RIGHT_FLIPPER_KEYS = Arrays.asList( - KeyEvent.KEYCODE_SLASH, KeyEvent.KEYCODE_DPAD_RIGHT, KeyEvent.KEYCODE_BUTTON_L1); + KeyEvent.KEYCODE_SLASH, KeyEvent.KEYCODE_DPAD_RIGHT, KeyEvent.KEYCODE_BUTTON_R1); static List ALL_FLIPPER_KEYS = Arrays.asList( KeyEvent.KEYCODE_SPACE, KeyEvent.KEYCODE_ENTER, KeyEvent.KEYCODE_DPAD_CENTER); From 149115f4b6b6c21c6435ce8d97dd16725cf75a3d Mon Sep 17 00:00:00 2001 From: Kerry Sainsbury Date: Mon, 8 Apr 2024 19:33:07 +1200 Subject: [PATCH 3/4] Any "right" or "left" key should navigate tables --- .../java/com/dozingcatsoftware/bouncy/BouncyActivity.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/dozingcatsoftware/bouncy/BouncyActivity.java b/app/src/main/java/com/dozingcatsoftware/bouncy/BouncyActivity.java index c572692..42ec40d 100644 --- a/app/src/main/java/com/dozingcatsoftware/bouncy/BouncyActivity.java +++ b/app/src/main/java/com/dozingcatsoftware/bouncy/BouncyActivity.java @@ -1,5 +1,8 @@ package com.dozingcatsoftware.bouncy; +import static com.dozingcatsoftware.bouncy.FieldViewManager.LEFT_FLIPPER_KEYS; +import static com.dozingcatsoftware.bouncy.FieldViewManager.RIGHT_FLIPPER_KEYS; + import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -318,12 +321,12 @@ else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { } // When showing the main menu, switch tables with the flipper buttons. if (!field.getGameState().isGameInProgress() && buttonPanel.getVisibility() == View.VISIBLE) { - if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { + if (LEFT_FLIPPER_KEYS.contains(keyCode)) { doPreviousTable(null); startGameButton.requestFocus(); return true; } - if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { + if (RIGHT_FLIPPER_KEYS.contains(keyCode)) { doNextTable(null); startGameButton.requestFocus(); return true; From 75ecf72b877ae41506be6d5dee1066611578f08f Mon Sep 17 00:00:00 2001 From: Kerry Sainsbury Date: Tue, 9 Apr 2024 18:32:39 +1200 Subject: [PATCH 4/4] Gamepad 'A' button to start game (required when the 'START GAME' menu item is not displayed) --- .../java/com/dozingcatsoftware/bouncy/BouncyActivity.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/com/dozingcatsoftware/bouncy/BouncyActivity.java b/app/src/main/java/com/dozingcatsoftware/bouncy/BouncyActivity.java index 42ec40d..846114f 100644 --- a/app/src/main/java/com/dozingcatsoftware/bouncy/BouncyActivity.java +++ b/app/src/main/java/com/dozingcatsoftware/bouncy/BouncyActivity.java @@ -1,5 +1,6 @@ package com.dozingcatsoftware.bouncy; +import static android.view.KeyEvent.KEYCODE_BUTTON_A; import static com.dozingcatsoftware.bouncy.FieldViewManager.LEFT_FLIPPER_KEYS; import static com.dozingcatsoftware.bouncy.FieldViewManager.RIGHT_FLIPPER_KEYS; @@ -331,6 +332,10 @@ else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { startGameButton.requestFocus(); return true; } + if (keyCode == KEYCODE_BUTTON_A) { + doStartGame(null); + return true; + } } return super.onKeyDown(keyCode, event); }