diff --git a/app/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java index 2d028d57d..c720680b9 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java @@ -1073,11 +1073,11 @@ public class BaseMainActivity extends LoggableActivity { // this.secondaryButton.setBackgroundDrawable(this.rightOverride ? this.secondaryButtonColorBackground : this.secondaryButtonDefaultBackground); } - public void sendKeyPress(int keyCode, int modifiers, boolean status) { + public static void sendKeyPress(int keyCode, int modifiers, boolean status) { sendKeyPress(keyCode, '\u0000', modifiers, status); } - public void sendKeyPress(int keyCode, char keyChar, int modifiers, boolean status) { + public static void sendKeyPress(int keyCode, char keyChar, int modifiers, boolean status) { CallbackBridge.sendKeycode(keyCode, keyChar, modifiers, status); } diff --git a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java index 427a1374f..4e45192a6 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java +++ b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java @@ -95,8 +95,7 @@ public class ControlButton extends Button implements OnLongClickListener, OnTouc } @Override - public boolean onLongClick(View p1) - { + public boolean onLongClick(View p1) { if (!mCanTriggerLongClick) return false; if (mHandleView.isShowing()) { @@ -116,7 +115,27 @@ public class ControlButton extends Button implements OnLongClickListener, OnTouc public boolean onTouch(View view, MotionEvent event) { if (!mCanModify) { mCanTriggerLongClick = false; + + if (mProperties.keycode >= 0) { + boolean isDown; + switch (event.getActionMasked()) { + case MotionEvent.ACTION_DOWN: // 0 + case MotionEvent.ACTION_POINTER_DOWN: // 5 + isDown = true; + break; + case MotionEvent.ACTION_UP: // 1 + case MotionEvent.ACTION_CANCEL: // 3 + case MotionEvent.ACTION_POINTER_UP: // 6 + isDown = false; + break; + default: + return false; + } + MainActivity.sendKeyPress(mProperties.keycode, 0, isDown); + return true; + } + return false; }