From 419c5742cc166543775042f45a3405de05cd4e1a Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 24 Nov 2022 14:50:24 +0800 Subject: [PATCH] =?UTF-8?q?213=20=E6=B7=BB=E5=8A=A0=E9=AD=94=E6=96=B9=20a,?= =?UTF-8?q?b=E9=94=AE=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/main/MainLauncherActivity.java | 95 +++++++++++++------ 1 file changed, 68 insertions(+), 27 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java index 4035d8b426..09593b6a28 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java @@ -13,6 +13,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Process; import android.text.TextUtils; +import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; import android.widget.FrameLayout; @@ -59,7 +60,7 @@ import me.jessyan.autosize.utils.AutoSizeUtils; * @author tongchenfei */ public class MainLauncherActivity extends MainActivity implements IMogoIntentListener, IMoGoSkinModeChangeListener { - private static final String TAG = "MainLauncherActivity"; + private static final String TAG = "liyz"; protected boolean mIsHomeKeyDown = false; private final static Handler handlerV2XEvent = new Handler(); private static Runnable runnableV2XEvent; @@ -213,48 +214,88 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis return super.onKeyDown(keyCode, event); } + private long startPressTime = 0; //开始按减时间 + private boolean isPressEnd = false; //按键是否结束 + private boolean isCombinationKey = false; //是否是组合按键 + + private long pressADownTime = 0; + private long pressAUpTime = 0; + private long pressBDownTime = 0; + private long pressBUpTime = 0; + @Override public boolean dispatchKeyEvent(KeyEvent event) { -// Log.d("liyz", "dispatchKeyEvent code = " + event.getKeyCode() + "--action = " + event.getAction() + "----" + event); +// Log.d(TAG, "dispatchKeyEvent code = " + event.getKeyCode() + "--action = " + event.getAction() + "----" + event); String bluetoothName = SharedPrefsMgr.getInstance(getContext()).getString("BLUETOOTH"); + if (!isPressEnd) { + Log.e(TAG, "dispatchKeyEvent bluetoothName = " + bluetoothName); + } + if (bluetoothName.equals("MINI_KEYBOARD")) { + if (!isPressEnd) { + isPressEnd = true; + startPressTime = System.currentTimeMillis(); + } + if (event.getKeyCode() == KeyEvent.KEYCODE_A) { //单击向左变道,长按-1 if (event.getAction() == KeyEvent.ACTION_DOWN) { - numberA++; - if (numberA > 2) { - if (!isLongPressA) { -// ToastUtils.showShort("方块 长按A -2 "); - sendAcc(true, -2); - isLongPressA = true; + pressADownTime = System.currentTimeMillis(); + Log.d(TAG, "dispatchKeyEvent A down pressADownTime = " + pressADownTime + "---" + (pressADownTime - startPressTime) + "----isCombinationKey = " + isCombinationKey + "--pressBDownTime = " + pressBDownTime); + if ((pressADownTime - startPressTime) > 550 && (pressADownTime - startPressTime) < 1900 && pressBDownTime > 0) { + ToastUtils.showShort("方块 A 按AB组合 -2 "); + sendAcc(true, -2); + isCombinationKey = true; + } + + if (!isCombinationKey) { + if ((pressADownTime - startPressTime) > 2000) { + ToastUtils.showShort("方块 长按A 无操作 "); } } } else if (event.getAction() == KeyEvent.ACTION_UP) { - if (numberA == 1) { -// ToastUtils.showShort("方块 点击A -1 "); + pressAUpTime = System.currentTimeMillis(); + isPressEnd = false; + isCombinationKey = false; + Log.e(TAG, "dispatchKeyEvent A up pressAUpTime = " + pressAUpTime + "---" + (pressAUpTime - startPressTime) + "--pressBDownTime = " + pressBDownTime); + if ((pressAUpTime - startPressTime) < 500) { + ToastUtils.showShort("方块 单击A -1 "); sendAcc(true, -1); } - numberA = 0; - isLongPressA = false; + pressAUpTime = 0; } + return true; } else if (event.getKeyCode() == KeyEvent.KEYCODE_B) { //单击向右变道,长按-2 if (event.getAction() == KeyEvent.ACTION_DOWN) { - numberB++; - if (numberB > 2) { - if (!isLongPressB) { -// ToastUtils.showShort("方块 长按B 无操作 "); - isLongPressB = true; + pressBDownTime = System.currentTimeMillis(); + Log.d(TAG, "dispatchKeyEvent B down pressBDownTime = " + pressBDownTime + "--差-" + (pressBDownTime - startPressTime) + "---isCombinationKey = " + isCombinationKey + "--pressADownTime = " + pressADownTime); + if ((pressBDownTime - startPressTime) > 550 && (pressBDownTime - startPressTime) < 1900 && pressADownTime > 0) { + ToastUtils.showShort("方块 B 按AB组合 "); + sendAcc(true, -2); + isCombinationKey = true; + } + + if (!isCombinationKey) { + if ((pressBDownTime - startPressTime) > 2000) { + ToastUtils.showShort("方块 长按B =1 "); + sendAcc(true, +1); } } + } else if (event.getAction() == KeyEvent.ACTION_UP) { - if (numberB == 1) { -// ToastUtils.showShort("方块 单击B 复原 "); + pressBUpTime = System.currentTimeMillis(); + isPressEnd = false; + isCombinationKey = false; + Log.e(TAG, "dispatchKeyEvent B up pressBUpTime = " + pressBUpTime + "--差-" + (pressBUpTime - startPressTime) + "--pressADownTime = " + pressADownTime); + if ((pressBUpTime - startPressTime) < 500) { + ToastUtils.showShort("方块 单击B 0 "); sendAcc(false, 0.0); } - numberB = 0; - isLongPressB = false; + + pressBDownTime = 0; } + return true; } else if (event.getKeyCode() == KeyEvent.KEYCODE_C) { //单击鸣笛, if (event.getAction() == KeyEvent.ACTION_DOWN) { @@ -382,18 +423,18 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis //使用反射调用获取设备连接状态方法 Method isConnectedMethod = BluetoothDevice.class.getDeclaredMethod("isConnected", (Class[]) null); isConnectedMethod.setAccessible(true); - boolean isConnected = (boolean) isConnectedMethod.invoke(device, (Object[]) null); +// boolean isConnected = (boolean) isConnectedMethod.invoke(device, (Object[]) null); // mAreadlyConnectedList.add(device); -// Log.d("liyz", "-- device.getName() = " + device.getName()); //device.getAddress() + Log.d(TAG, "-- device.getName() = " + device.getName()); //device.getAddress() if (device.getName().equals("MINI_KEYBOARD")) { SharedPrefsMgr.getInstance(getContext()).putString("BLUETOOTH", device.getName()); } } catch (NoSuchMethodException e) { e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); +// } catch (IllegalAccessException e) { +// e.printStackTrace(); +// } catch (InvocationTargetException e) { +// e.printStackTrace(); } } }