diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/toolkit/ToolKitDataManager.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/toolkit/ToolKitDataManager.kt index 8b2d385855..340be81c9b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/toolkit/ToolKitDataManager.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/toolkit/ToolKitDataManager.kt @@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.och.IToolKitItemClickListener import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.function.hmi.bone.toolkit.custom.ToolDriverRomaView import com.mogo.eagle.core.function.hmi.bone.toolkit.custom.ToolRestartSystemView import com.mogo.eagle.core.function.hmi.bone.toolkit.custom.ToolStopServiceView import com.mogo.eagle.core.function.hmi.ui.setting.SopView @@ -34,7 +35,8 @@ object ToolKitDataManager : IToolKitItemClickListener { KILL_APP, //杀死 APP RESTART_SYSTEM, //重启系统 STOP_SERVICE, //停止服务 - AI_REPORT //AI数据采集 + AI_REPORT, //AI数据采集 + ROMA, //漫游 } private val listeners by lazy { ConcurrentHashMap() } @@ -98,6 +100,15 @@ object ToolKitDataManager : IToolKitItemClickListener { ToolTypeEnum.AI_REPORT.name, getDefaultItemView(ctx, "上报", R.drawable.icon_toolkit_item_ai_report) ) + // 按照目前RomaTaxiView添加限制:bus业务司机端,taxi业务司机端 展示漫游按钮 + if (AppIdentityModeUtils.isBusDriver(FunctionBuildConfig.appIdentityMode) + || AppIdentityModeUtils.isTaxiDriver(FunctionBuildConfig.appIdentityMode) + ) { + it += ToolKitBean( + ToolTypeEnum.ROMA.name, + getRoamItemView(ctx) + ) + } } addListener(TAG, this) } @@ -133,6 +144,13 @@ object ToolKitDataManager : IToolKitItemClickListener { return ToolRestartSystemView(context) } + /** + * 漫游 自定义view + */ + private fun getRoamItemView(context: Context): View { + return ToolDriverRomaView(context) + } + override fun onItemClick(toolTag: String, ctx: Context?) { //ToastUtils.showShort(toolTag) when (toolTag) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/toolkit/custom/ToolDriverRomaView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/toolkit/custom/ToolDriverRomaView.kt new file mode 100644 index 0000000000..2763634338 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/toolkit/custom/ToolDriverRomaView.kt @@ -0,0 +1,95 @@ +package com.mogo.eagle.core.function.hmi.bone.toolkit.custom + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.commons.module.status.MogoStatusManager +import com.mogo.eagle.core.function.api.map.roma.IMoGoRomaListener +import com.mogo.eagle.core.function.call.map.CallerMapIdentifyManager.romaTrigger +import com.mogo.eagle.core.function.call.map.CallerMapRomaListener +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.util.ClickUtils +import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import kotlinx.android.synthetic.main.view_tool_driver_roma.view.ivRomaView + +class ToolDriverRomaView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoRomaListener { + + companion object { + private const val TAG = "ToolDriverRomaView" + } + + @Volatile + private var romaMode = false + + @Volatile + private var click = true + + init { + LayoutInflater.from(context).inflate(R.layout.view_tool_driver_roma, this, true) + val a = context.obtainStyledAttributes( + attrs, + R.styleable.RomaView, + defStyleAttr, + 0 + ) + + setOnClickListener { + if (ClickUtils.isClickTooFrequent(this, 2500)) { + ToastUtils.showShort("不要频繁点击哦~") + return@setOnClickListener + } + if (!click) { + return@setOnClickListener + } + if (!MogoStatusManager.getInstance().isSocketOnLine) { + ToastUtils.showShort("长链状态异常,请检查链接后开启漫游") + return@setOnClickListener + } + click = false + romaMode = !romaMode + //司机屏不控制乘客屏漫游,独自漫游 + romaTrigger(romaMode) + } + } + + override fun romaViewStatus(status: Boolean) { + ThreadUtils.runOnUiThread { + if (status) { + this.visibility = View.VISIBLE + } else { + this.visibility = View.GONE + } + } + } + + override fun romaStatus(status: Boolean) { + ThreadUtils.runOnUiThread { + click = true + if (status) { + romaMode = true + ivRomaView.setBackgroundResource(R.drawable.icon_toolkit_item_roma_selected) + } else { + romaMode = false + ivRomaView.setBackgroundResource(R.drawable.tool_driver_roma_select_bg) + } + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerMapRomaListener.addListener(TAG, this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerMapRomaListener.removeListener(TAG) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_toolkit_item_roma_default.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_toolkit_item_roma_default.png new file mode 100644 index 0000000000..b9b0b63d6a Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_toolkit_item_roma_default.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_toolkit_item_roma_selected.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_toolkit_item_roma_selected.png new file mode 100644 index 0000000000..47d9a82deb Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_toolkit_item_roma_selected.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/tool_driver_roma_select_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/tool_driver_roma_select_bg.xml new file mode 100644 index 0000000000..611c9de738 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/tool_driver_roma_select_bg.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_tool_driver_roma.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_tool_driver_roma.xml new file mode 100644 index 0000000000..24338356e1 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_tool_driver_roma.xml @@ -0,0 +1,31 @@ + + + + + + + \ No newline at end of file