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 792050b5f6..b256c4308b 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 @@ -37,6 +37,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.ToastUtils; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.rousetime.android_startup.model.CostTimesModel; import com.zhjt.service.chain.ChainLog; import com.zhjt.service.chain.TracingConstants; @@ -71,6 +72,20 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis private BluetoothMonitorReceiver mBluetoothReceiver = null; private BluetoothAdapter mBluetoothAdapter; + private boolean isShowToast = false; //toast 控制 + private long startPressTime = 0; //开始按减时间 + private boolean isPressEnd = false; //按键是否结束 + private volatile int isCombinationKey = 0; //是否是组合按键 1单击,2长按,3组合 + private long pressADownTime = 0; + private long pressAUpTime = 0; + private long pressBDownTime = 0; + private long pressBUpTime = 0; + private long pressCDownTime = 0; + private long pressCUpTime = 0; + private long pressDDownTime = 0; + private long pressDUpTime = 0; + private long pressEDownTime = 0; + private long pressEUpTime = 0; @Override @@ -102,7 +117,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { FrameLayout frameLayout = findViewById(R.id.module_main_id_map_fragment_container); - frameLayout.setPadding(0, 0, AutoSizeUtils.dp2px(getContext(),700), 0); + frameLayout.setPadding(0, 0, AutoSizeUtils.dp2px(getContext(), 700), 0); } } @@ -202,24 +217,9 @@ 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; - private long pressCDownTime = 0; - private long pressCUpTime = 0; - private long pressDDownTime = 0; - private long pressDUpTime = 0; - private long pressEDownTime = 0; - private long pressEUpTime = 0; - - /** - * 魔方按键分发 提测前注释 ToastUtils TODO + * 魔方按键分发 + * * @param event * @return */ @@ -240,26 +240,40 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (event.getAction() == KeyEvent.ACTION_DOWN) { pressADownTime = System.currentTimeMillis(); Log.d(TAG, "dispatchKeyEvent A down pressADownTime = " + pressADownTime + "---" + (pressADownTime - startPressTime) + "----isCombinationKey = " + isCombinationKey + "--pressBDownTime = " + pressBDownTime); - if ((pressADownTime - startPressTime) > 320 && (pressADownTime - startPressTime) < 1600 && pressBDownTime > 0) { - ToastUtils.showShort("方块 A 按AB组合 -2 "); + if ((pressADownTime - startPressTime) > 320 && (pressADownTime - startPressTime) < 1300 && pressBDownTime > 0) { + if (isShowToast) { + ToastUtils.showShort("方块 A 按AB组合 -2 "); + } sendAcc(true, -2); - isCombinationKey = true; + isCombinationKey = 3; } - if (!isCombinationKey) { - if ((pressADownTime - startPressTime) > 1700) { - ToastUtils.showShort("方块 长按A 无 操作 "); + + if (isCombinationKey != 3 && isCombinationKey != 1) { + if ((pressADownTime - startPressTime) > 1320) { + if (isShowToast) { + ToastUtils.showShort("方块 长按A 无 操作 "); + } + isCombinationKey = 2; } } } else if (event.getAction() == KeyEvent.ACTION_UP) { pressAUpTime = System.currentTimeMillis(); Log.e(TAG, "dispatchKeyEvent A up pressAUpTime = " + pressAUpTime + "---" + (pressAUpTime - startPressTime) + "--pressBDownTime = " + pressBDownTime); - if ((pressAUpTime - startPressTime) < 300 && !isCombinationKey) { - ToastUtils.showShort("方块 单击A -1 "); + if ((pressAUpTime - startPressTime) < 300 && isCombinationKey != 3) { + isCombinationKey = 1; + if (isShowToast) { + ToastUtils.showShort("方块 单击A -1 "); + } sendAcc(true, -1); } pressADownTime = 0; isPressEnd = false; - isCombinationKey = false; + UiThreadHandler.postDelayed(new Runnable() { + @Override + public void run() { + isCombinationKey = 0; + } + }, 300); } return true; @@ -267,44 +281,59 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (event.getAction() == KeyEvent.ACTION_DOWN) { pressBDownTime = System.currentTimeMillis(); Log.d(TAG, "dispatchKeyEvent B down pressBDownTime = " + pressBDownTime + "--差-" + (pressBDownTime - startPressTime) + "---isCombinationKey = " + isCombinationKey + "--pressADownTime = " + pressADownTime); - if ((pressBDownTime - startPressTime) > 320 && (pressBDownTime - startPressTime) < 1600 && pressADownTime > 0) { - ToastUtils.showShort("方块 B 按AB组合 "); + if ((pressBDownTime - startPressTime) > 320 && (pressBDownTime - startPressTime) < 1300 && pressADownTime > 0) { + if (isShowToast) { + ToastUtils.showShort("方块 B 按AB组合 "); + } sendAcc(true, -2); - isCombinationKey = true; + isCombinationKey = 3; } - if (!isCombinationKey) { - if ((pressBDownTime - startPressTime) > 1700) { - ToastUtils.showShort("方块 长按B =1 "); + if (isCombinationKey != 3 && isCombinationKey != 1) { + if ((pressBDownTime - startPressTime) > 1320) { + if (isShowToast) { + ToastUtils.showShort("方块 长按B +1 "); + } sendAcc(true, +1); + isCombinationKey = 2; } } } else if (event.getAction() == KeyEvent.ACTION_UP) { pressBUpTime = System.currentTimeMillis(); Log.e(TAG, "dispatchKeyEvent B up pressBUpTime = " + pressBUpTime + "--差-" + (pressBUpTime - startPressTime) + "--pressADownTime = " + pressADownTime); - if ((pressBUpTime - startPressTime) < 300 && !isCombinationKey) { - ToastUtils.showShort("方块 单击B 0 "); + if ((pressBUpTime - startPressTime) < 300 && isCombinationKey != 3) { + if (isShowToast) { + ToastUtils.showShort("方块 单击B 0 "); + } sendAcc(false, 0.0); + isCombinationKey = 1; } pressBDownTime = 0; isPressEnd = false; - isCombinationKey = false; + + UiThreadHandler.postDelayed(new Runnable() { + @Override + public void run() { + isCombinationKey = 0; + } + }, 300); } return true; } else if (event.getKeyCode() == KeyEvent.KEYCODE_C) { //单击左变道,长按无操作 if (event.getAction() == KeyEvent.ACTION_DOWN) { pressCDownTime = System.currentTimeMillis(); - if (!isCombinationKey) { - if ((pressCDownTime - startPressTime) > 1700) { + if ((pressCDownTime - startPressTime) > 1320) { + if (isShowToast) { ToastUtils.showShort("方块 长按C 无操作 "); } } } else if (event.getAction() == KeyEvent.ACTION_UP) { pressCUpTime = System.currentTimeMillis(); isPressEnd = false; - isCombinationKey = false; if ((pressCUpTime - startPressTime) < 300) { - ToastUtils.showShort("方块 单击C ← 向左变道 "); + if (isShowToast) { + ToastUtils.showShort("方块 单击C ← 向左变道 "); + } CallerAutoPilotManager.INSTANCE.sendOperatorChangeLaneLeft(); } } @@ -312,17 +341,18 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis } else if (event.getKeyCode() == KeyEvent.KEYCODE_D) { //单击向右变道,双击无操作 if (event.getAction() == KeyEvent.ACTION_DOWN) { pressDDownTime = System.currentTimeMillis(); - if (!isCombinationKey) { - if ((pressDDownTime - startPressTime) > 1700) { + if ((pressDDownTime - startPressTime) > 1320) { + if (isShowToast) { ToastUtils.showShort("方块 长按D 无操作 "); } } } else if (event.getAction() == KeyEvent.ACTION_UP) { pressDUpTime = System.currentTimeMillis(); isPressEnd = false; - isCombinationKey = false; if ((pressDUpTime - startPressTime) < 300) { - ToastUtils.showShort("方块 单击D → 向右变道 "); + if (isShowToast) { + ToastUtils.showShort("方块 单击D → 向右变道 "); + } CallerAutoPilotManager.INSTANCE.sendOperatorChangeLaneRight(); } } @@ -331,28 +361,29 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis } else if (event.getKeyCode() == KeyEvent.KEYCODE_E) { //单击启动自驾,长按鸣笛 if (event.getAction() == KeyEvent.ACTION_DOWN) { pressEDownTime = System.currentTimeMillis(); - if (!isCombinationKey) { - if ((pressEDownTime - startPressTime) > 1700) { + if ((pressEDownTime - startPressTime) > 1320) { + if (isShowToast) { ToastUtils.showShort("方块 长按E 鸣笛 "); - CallerAutoPilotManager.INSTANCE.sendOperatorSetHorn(1); - if (timerHorn == null) { - timerHorn = new Timer(); - } - timerHorn.schedule(new TimerTask() { - @Override - public void run() { - CallerAutoPilotManager.INSTANCE.sendOperatorSetHorn(2); - timerHorn = null; - } - }, 500); } + CallerAutoPilotManager.INSTANCE.sendOperatorSetHorn(1); + if (timerHorn == null) { + timerHorn = new Timer(); + } + timerHorn.schedule(new TimerTask() { + @Override + public void run() { + CallerAutoPilotManager.INSTANCE.sendOperatorSetHorn(2); + timerHorn = null; + } + }, 500); } } else if (event.getAction() == KeyEvent.ACTION_UP) { pressEUpTime = System.currentTimeMillis(); isPressEnd = false; - isCombinationKey = false; if ((pressEUpTime - startPressTime) < 300) { - ToastUtils.showShort("方块 单击E 开启自动驾驶 "); + if (isShowToast) { + ToastUtils.showShort("方块 单击E 开启自动驾驶 "); + } CallerAutoPilotManager.INSTANCE.startAutoPilot(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getAutopilotControlParameters()); } }