diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 822391084..1fcc4b03c 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -5,6 +5,7 @@ The following people have contributed to the project in some way, and are credit - Connor McLaughlin - @stenzek - @ggrtk - @CookiePLMonster +- @PookaMustard ## Translators - Anderson Cardoso - Portuguese (Br) diff --git a/android/app/src/main/java/com/github/stenzek/duckstation/EmulationActivity.java b/android/app/src/main/java/com/github/stenzek/duckstation/EmulationActivity.java index fdf97c557..3e55b867e 100644 --- a/android/app/src/main/java/com/github/stenzek/duckstation/EmulationActivity.java +++ b/android/app/src/main/java/com/github/stenzek/duckstation/EmulationActivity.java @@ -669,6 +669,7 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde final String controllerType = getStringSetting("Controller1/Type", "DigitalController"); final String viewType = getStringSetting("Controller1/TouchscreenControllerView", "digital"); final boolean autoHideTouchscreenController = getBooleanSetting("Controller1/AutoHideTouchscreenController", false); + final boolean touchGliding = getBooleanSetting("Controller1/TouchGliding", false); final boolean hapticFeedback = getBooleanSetting("Controller1/HapticFeedback", false); final boolean vibration = getBooleanSetting("Controller1/Vibration", false); final FrameLayout activityLayout = findViewById(R.id.frameLayout); @@ -689,7 +690,7 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde activityLayout.addView(mTouchscreenController); } - mTouchscreenController.init(0, controllerType, viewType, hapticFeedback); + mTouchscreenController.init(0, controllerType, viewType, hapticFeedback, touchGliding); } if (vibration) diff --git a/android/app/src/main/java/com/github/stenzek/duckstation/TouchscreenControllerView.java b/android/app/src/main/java/com/github/stenzek/duckstation/TouchscreenControllerView.java index 0cc3c72c8..0f868e822 100644 --- a/android/app/src/main/java/com/github/stenzek/duckstation/TouchscreenControllerView.java +++ b/android/app/src/main/java/com/github/stenzek/duckstation/TouchscreenControllerView.java @@ -186,7 +186,7 @@ public class TouchscreenControllerView extends FrameLayout { requestLayout(); } - public void init(int controllerIndex, String controllerType, String viewType, boolean hapticFeedback) { + public void init(int controllerIndex, String controllerType, String viewType, boolean hapticFeedback, boolean gliding) { mControllerIndex = controllerIndex; mControllerType = controllerType; mViewType = viewType; @@ -236,16 +236,16 @@ public class TouchscreenControllerView extends FrameLayout { linkButton(mMainView, R.id.controller_button_right, "RightButton", "Right", true, false); linkButton(mMainView, R.id.controller_button_down, "DownButton", "Down", true, false); linkButton(mMainView, R.id.controller_button_left, "LeftButton", "Left", true, false); - linkButton(mMainView, R.id.controller_button_l1, "L1Button", "L1", true, true); - linkButton(mMainView, R.id.controller_button_l2, "L2Button", "L2", true, true); - linkButton(mMainView, R.id.controller_button_select, "SelectButton", "Select", true, true); - linkButton(mMainView, R.id.controller_button_start, "StartButton", "Start", true, true); - linkButton(mMainView, R.id.controller_button_triangle, "TriangleButton", "Triangle", true, true); - linkButton(mMainView, R.id.controller_button_circle, "CircleButton", "Circle", true, true); - linkButton(mMainView, R.id.controller_button_cross, "CrossButton", "Cross", true, true); - linkButton(mMainView, R.id.controller_button_square, "SquareButton", "Square", true, true); - linkButton(mMainView, R.id.controller_button_r1, "R1Button", "R1", true, true); - linkButton(mMainView, R.id.controller_button_r2, "R2Button", "R2", true, true); + linkButton(mMainView, R.id.controller_button_l1, "L1Button", "L1", true, gliding); + linkButton(mMainView, R.id.controller_button_l2, "L2Button", "L2", true, gliding); + linkButton(mMainView, R.id.controller_button_select, "SelectButton", "Select", true, gliding); + linkButton(mMainView, R.id.controller_button_start, "StartButton", "Start", true, gliding); + linkButton(mMainView, R.id.controller_button_triangle, "TriangleButton", "Triangle", true, gliding); + linkButton(mMainView, R.id.controller_button_circle, "CircleButton", "Circle", true, gliding); + linkButton(mMainView, R.id.controller_button_cross, "CrossButton", "Cross", true, gliding); + linkButton(mMainView, R.id.controller_button_square, "SquareButton", "Square", true, gliding); + linkButton(mMainView, R.id.controller_button_r1, "R1Button", "R1", true, gliding); + linkButton(mMainView, R.id.controller_button_r2, "R2Button", "R2", true, gliding); if (!linkAxis(mMainView, R.id.controller_axis_left, "LeftAxis", "Left", true)) linkAxisToButtons(mMainView, R.id.controller_axis_left, "LeftAxis", ""); diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index dd1dc3f18..e7be72006 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -229,4 +229,6 @@ Logs debug messages printed by games. List View Grid View + Touch Gliding + Allows you to press multiple controller face buttons by dragging your finger along the screen. diff --git a/android/app/src/main/res/xml/controllers_preferences.xml b/android/app/src/main/res/xml/controllers_preferences.xml index 17a4d8afb..77953e447 100644 --- a/android/app/src/main/res/xml/controllers_preferences.xml +++ b/android/app/src/main/res/xml/controllers_preferences.xml @@ -74,6 +74,13 @@ app:summary="@string/settings_summary_enable_vibration" app:iconSpaceReserved="false" /> + +