From 6d4dc7bfaab0cf9a8b486899026789aa596f3170 Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 21 Mar 2024 19:23:13 +0800 Subject: [PATCH] =?UTF-8?q?[6.3.0][=E8=98=91=E6=96=B9=E4=BC=98=E5=8C=96]?= =?UTF-8?q?=20M1&B1&B2=E8=BD=A6=E5=9E=8B=E7=A6=81=E7=94=A8=E5=B7=A6?= =?UTF-8?q?=E5=8F=B3=E5=8F=98=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mofang/MoFangCommandExecutor.kt | 15 +++++++++++++ .../mofang/MoGoMoFangProviderImpl.kt | 22 +++++++++++++++++++ .../hmi/ui/mofang/MoFangStatusView.kt | 18 +++++++++++++++ .../devatools/mofang/IMoGoMoFangProvider.kt | 2 ++ 4 files changed, 57 insertions(+) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt index 2df75b8134..4176c72361 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt @@ -386,6 +386,11 @@ internal class MoFangCommandExecutor { fun handleSingleClick(keycode: Int) { + val isEnabled = CallerDevaToolsManager.mofang()?.isEnabled(1, keycode) ?: true + if (!isEnabled) { + Log.d(TAG, "输入 -> 单击 -> 按键:${keycode}被禁用...") + return + } if (keycode == KeyEvent.KEYCODE_A) { Log.d(TAG, "--- 单机键A --- 加速度每隔500ms减少1 ----") handler.removeMessages(MSG_WHAT_KEY_CODE_A) @@ -443,6 +448,11 @@ internal class MoFangCommandExecutor { } fun handleLongClick(keyCode: Int) { + val isEnabled = CallerDevaToolsManager.mofang()?.isEnabled(2, keyCode) ?: true + if (!isEnabled) { + Log.d(TAG, "输入 -> 长按 -> 按键:${keyCode}被禁用...") + return + } if (keyCode == KeyEvent.KEYCODE_A) { Log.d(TAG, "---- 长按键A ---- 加速度每隔500毫秒,减小2 ---") handler.removeMessages(MSG_WHAT_KEY_CODE_AL) @@ -477,6 +487,11 @@ internal class MoFangCommandExecutor { } fun handleCombineClick(vararg keyCodes: Int) { + val isEnabled = CallerDevaToolsManager.mofang()?.isEnabled(3, *keyCodes) ?: true + if (!isEnabled) { + Log.d(TAG, "输入 -> 组合 -> 按键:${keyCodes.joinToString(",")}被禁用...") + return + } if (isCombineEqual(KeyEvent.KEYCODE_A, KeyEvent.KEYCODE_B, *keyCodes)) { //AB组合键,加速度每隔500毫秒,增加1 Log.d(TAG, "---- 组合键AB ---- 按下, 加速度加1 ----") diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoGoMoFangProviderImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoGoMoFangProviderImpl.kt index 96e995ac69..9c34ca5d94 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoGoMoFangProviderImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoGoMoFangProviderImpl.kt @@ -17,9 +17,12 @@ import androidx.lifecycle.* import com.mogo.core.mofang.connect.MoFangManager import com.mogo.core.mofang.connect.device.* import com.mogo.core.mofang.connect.listener.* +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.devatools.mofang.* import com.mogo.eagle.core.function.api.devatools.mofang.IMoGoMoFangProvider.OnMoFangStatusListener import com.mogo.eagle.core.utilcode.floating.* +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.getMisChannelCode import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.eagle.core.utilcode.util.* @@ -320,4 +323,23 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SLEEP to "${System.currentTimeMillis()}")) linkedLog.record(mapOf("callback" to "onBluetoothKeyboardAbnormalDisconnected:$status")) } + + override fun isEnabled(inputType: Int, vararg keyCodes: Int): Boolean { + val mode = FunctionBuildConfig.appIdentityMode + val channel = AppIdentityModeUtils.getMisChannelCode(mode) + val isB1OrB2 = (channel == 11 || channel == 15) + val isM1 = AppIdentityModeUtils.isM1(mode) + if (isB1OrB2 || isM1) { + if (inputType == 1 && keyCodes.size == 1) { + // 单击 + val code = keyCodes[0] + if (code == KeyEvent.KEYCODE_C || code == KeyEvent.KEYCODE_D) { + return false + } + } + } + return true + } + + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/mofang/MoFangStatusView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/mofang/MoFangStatusView.kt index a4d58ffe20..3c953893a7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/mofang/MoFangStatusView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/mofang/MoFangStatusView.kt @@ -98,6 +98,12 @@ class MoFangStatusView : LinearLayout, OnMoFangStatusListener, IMoGoAutopilotSta return } + val enabled = CallerDevaToolsManager.mofang()?.isEnabled(1, keyCode) ?: true + if (!enabled) { + Log.d(TAG, "单击 -> 按键:${keyCode}被禁用...") + return + } + if (keyCode == KeyEvent.KEYCODE_A) { if (tv_icon_2?.tag != 2 && tv_icon_2?.isSelected == true) { tv_icon_2?.isSelected = false @@ -172,6 +178,13 @@ class MoFangStatusView : LinearLayout, OnMoFangStatusListener, IMoGoAutopilotSta ToastUtils.showShort("工控机连接异常,无法执行魔方命令") return } + + val isEnabled = CallerDevaToolsManager.mofang()?.isEnabled(2, keyCode) ?: true + if (!isEnabled) { + Log.d(TAG, "长按 -> 按键:${keyCode}被禁用...") + return + } + if (keyCode == KeyEvent.KEYCODE_A) { if (tv_icon_2?.tag != 2 && tv_icon_2?.isSelected == true) { tv_icon_2?.isSelected = false @@ -222,6 +235,11 @@ class MoFangStatusView : LinearLayout, OnMoFangStatusListener, IMoGoAutopilotSta if (keyCodes.size != 2) { return } + val isEnabled = CallerDevaToolsManager.mofang()?.isEnabled(3, *keyCodes) ?: true + if (!isEnabled) { + Log.d(TAG, "组合 -> 按键:${keyCodes.joinToString(",")}被禁用...") + return + } val key1 = keyCodes[0] val key2 = keyCodes[1] if (key1 == KeyEvent.KEYCODE_A && key2 == KeyEvent.KEYCODE_B || (key1 == KeyEvent.KEYCODE_B && key2 == KeyEvent.KEYCODE_A)) { diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/mofang/IMoGoMoFangProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/mofang/IMoGoMoFangProvider.kt index 4eb598c51d..0c7aaaacbe 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/mofang/IMoGoMoFangProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/mofang/IMoGoMoFangProvider.kt @@ -23,6 +23,8 @@ interface IMoGoMoFangProvider { fun unRegisterMoFangStatusListener(listener: OnMoFangStatusListener) + fun isEnabled(inputType: Int, vararg keyCodes: Int): Boolean + /** * 魔方状态监听器 */