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 069984d250..38120a957b 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 @@ -15,7 +15,9 @@ import com.mogo.eagle.core.function.api.devatools.mofang.IMoGoMoFangProvider.OnM import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.eagle.core.utilcode.util.Utils import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicInteger +import java.util.concurrent.atomic.AtomicReference internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListener { @@ -31,6 +33,18 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen private val linkedLog by lazy { MoFangLinkedLog().also { executor.setLinkedLog(it) } } + private val isTest by lazy { AtomicBoolean(false) } + + private val toast by lazy { AtomicReference() } + + override fun enableTest(enable: Boolean) { + isTest.set(enable) + } + + override fun isEnableTest(): Boolean { + return isTest.get() + } + override fun init(app: Application) { try { linkedLog.record(mapOf("init" to "start")) @@ -135,6 +149,13 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen } override fun onBluetoothKeyBoardCombineClicked(vararg keyCodes: Int) { + if (isTest.get()) { + toast.get()?.cancel() + Toast.makeText(Utils.getApp(), "组合键[${keyCodes.joinToString(",") { KeyEvent.keyCodeToString(it) }}]触发了\n[正式使用时,请关闭运营面板上的\"魔方指令\"测试开关]", Toast.LENGTH_SHORT).also { + toast.set(it) + }.show() + return + } try { linkedLog.record(mapOf("command" to "combine_clicked: ${keyCodes.joinToString(",") { KeyEvent.keyCodeToString(it) } }")) executor.handleCombineClick(*keyCodes) @@ -146,6 +167,13 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen } override fun onBluetoothKeyBoardLongClicked(keyCode: Int) { + if (isTest.get()) { + toast.get()?.cancel() + Toast.makeText(Utils.getApp(), "长按键[${KeyEvent.keyCodeToString(keyCode)}]触发了\n[正式使用时,请关闭运营面板上的\"魔方指令\"测试开关]", Toast.LENGTH_SHORT).also { + toast.set(it) + }.show() + return + } try { linkedLog.record(mapOf("command" to "long_clicked: ${ KeyEvent.keyCodeToString(keyCode) }")) executor.handleLongClick(keyCode) @@ -159,6 +187,13 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen } override fun onBluetoothKeyboardClicked(keyCode: Int) { + if (isTest.get()) { + toast.get()?.cancel() + Toast.makeText(Utils.getApp(), "单击键[${KeyEvent.keyCodeToString(keyCode)}]触发了\n[正式使用时,请关闭运营面板上的\"魔方指令\"测试开关]", Toast.LENGTH_SHORT).also { + toast.set(it) + }.show() + return + } try { linkedLog.record(mapOf("command" to "clicked: ${ KeyEvent.keyCodeToString(keyCode) }")) executor.handleSingleClick(keyCode) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index a8aa3e9d36..6d1dd0dcaa 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -324,15 +324,15 @@ internal class DebugSettingView @JvmOverloads constructor( /** * 蘑方点击事件 */ - tbMojie.setOnCheckedChangeListener { buttonView, isChecked -> - if (isChecked) { - buttonView.setCompoundDrawables(null, null, iconDown, null) - tbOpenMfView.visibility = View.VISIBLE - } else { - buttonView.setCompoundDrawables(null, null, iconRight, null) - tbOpenMfView.visibility = View.GONE - } - } +// tbMojie.setOnCheckedChangeListener { buttonView, isChecked -> +// if (isChecked) { +// buttonView.setCompoundDrawables(null, null, iconDown, null) +// tbOpenMfView.visibility = View.VISIBLE +// } else { +// buttonView.setCompoundDrawables(null, null, iconRight, null) +// tbOpenMfView.visibility = View.GONE +// } +// } /** * APP升级点击事件 @@ -349,13 +349,13 @@ internal class DebugSettingView @JvmOverloads constructor( } } - /** - * 蘑方控制 默认关闭 - */ - tbOpenMfView.isChecked = HmiBuildConfig.isShowMfToastView - tbOpenMfView.setOnCheckedChangeListener { _, isChecked -> - HmiBuildConfig.isShowMfToastView = isChecked - } +// /** +// * 蘑方控制 默认关闭 +// */ +// tbOpenMfView.isChecked = HmiBuildConfig.isShowMfToastView +// tbOpenMfView.setOnCheckedChangeListener { _, isChecked -> +// HmiBuildConfig.isShowMfToastView = isChecked +// } /** * 版本信息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index 3f5ee43335..5fde15f7d2 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -286,8 +286,9 @@ internal class SOPSettingView @JvmOverloads constructor( btnSpeedSet.visibility = View.GONE } - - mfStatusLayout.setClickEnabled(false) + /** + * 魔方sop运营相关配置 + */ if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { val mf = CallerDevaToolsManager.mofang() if (mf != null) { @@ -318,6 +319,15 @@ internal class SOPSettingView @JvmOverloads constructor( } } } + + mfTest.isEnabled = true + mfTest.isChecked = mf?.isEnableTest() ?: false + mfTest.setOnCheckedChangeListener { _, isChecked -> + mf?.enableTest(isChecked) + } + } else { + mfStatusLayout.setClickEnabled(false) + mfTest.isEnabled = false } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml index 7fce010454..e873f653fb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml @@ -290,32 +290,6 @@ android:textOn="关闭obu预警融合" android:textSize="@dimen/dp_24" /> - - - - - - - + android:layout_marginEnd="15dp" > + + + + + + \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt index ff3d5738af..e86241a695 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt @@ -49,13 +49,6 @@ object HmiBuildConfig { @Volatile var isShowCloudWeaknessTrafficView = false - /** - * 是否展示蘑方的toast - */ - @JvmField - @Volatile - var isShowMfToastView = false - /** * 是否展示obu的v2v */ 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 6597a15391..4eb598c51d 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 @@ -13,6 +13,10 @@ interface IMoGoMoFangProvider { fun isConnected(): Boolean + fun enableTest(enable: Boolean) + + fun isEnableTest(): Boolean + fun provideWindowCallback(delegate: Window.Callback?): Window.Callback fun registerMoFangStatusListener(tag: String, listener: OnMoFangStatusListener)