From ea39de1d352336c6b7341c2c4c8a4aaaca0381aa Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Fri, 20 Nov 2020 14:09:24 +0700 Subject: [PATCH] [Custom controls] Implements keycode send --- .../net/kdt/pojavlaunch/BaseMainActivity.java | 4 ++-- .../customcontrols/ControlButton.java | 23 +++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) 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; }