diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index b4ad81e21b..0cf6b4e746 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -79,6 +79,7 @@ import com.mogo.eagle.core.function.hmi.ui.notice.NoticeNormalBannerView import com.mogo.eagle.core.function.hmi.ui.setting.DebugSettingView import com.mogo.eagle.core.function.hmi.ui.setting.IPCReportWindow import com.mogo.eagle.core.function.hmi.ui.setting.ReportListFloatWindow +import com.mogo.eagle.core.function.hmi.ui.setting.SOPSettingView import com.mogo.eagle.core.function.hmi.ui.tools.AdUpgradeDialog import com.mogo.eagle.core.function.hmi.ui.tools.AutoPilotAndCheckView import com.mogo.eagle.core.function.hmi.ui.tools.MaskView @@ -127,6 +128,9 @@ class MoGoHmiFragment : MvpFragment(), private var mDebugSettingViewFloat: WarningFloat.Builder? = null private var mDebugSettingView: DebugSettingView? = null + //SOPSettingView + private var mSOPSettingViewFloat: WarningFloat.Builder? = null + private var mSOPSettingView: SOPSettingView? = null private var mNoticeFloat: WarningFloat.Builder? = null @@ -447,6 +451,10 @@ class MoGoHmiFragment : MvpFragment(), dismissToolsFloatView() CallerDevaToolsManager.showFeedbackView(it) } + + override fun showSOPSettingView() { + toggleSOPView() + } }) } toolsViewFloat = WarningFloat.with(it) @@ -660,6 +668,58 @@ class MoGoHmiFragment : MvpFragment(), } } + + override fun toggleSOPView() { + activity?.let{ + if(mSOPSettingViewFloat!= null){ + WarningFloat.dismiss(mSOPSettingViewFloat!!.config.floatTag, false) + mSOPSettingViewFloat = null + mSOPSettingView = null + }else{ + if (mSOPSettingView == null){ + mSOPSettingView = SOPSettingView(it) + } + var side = RIGHT + var gravity = Gravity.RIGHT + //调试窗默认靠右显示,Bus的乘客端右端有视图覆盖,调试窗靠左显示 + if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) + ) { + side = LEFT + gravity = Gravity.LEFT + } + mSOPSettingViewFloat = WarningFloat.with(it) + .setTag("mSOPSettingView") + .setLayout(mSOPSettingView!!) + .setSidePattern(side) + .setGravity(gravity, offsetY = 70) + .setImmersionStatusBar(true) + .setAnimator(object : DefaultAnimator() { + override fun enterAnim( + view: View, + params: LayoutParams, + windowManager: WindowManager, + sidePattern: SidePattern + ): Animator? = + super.enterAnim(view, params, windowManager, sidePattern) + ?.apply { + interpolator = OvershootInterpolator() + } + + override fun exitAnim( + view: View, + params: LayoutParams, + windowManager: WindowManager, + sidePattern: SidePattern + ): Animator? = + super.exitAnim(view, params, windowManager, sidePattern) + ?.setDuration(200) + }) + .show() + } + } + } + /** * 展示VR下V2X预警 * diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt index 26c294afd6..a41a6c77d8 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt @@ -101,6 +101,9 @@ class AutoPilotAndCheckView @JvmOverloads constructor( rlKillLayout.setOnClickListener { killApp() } + sopLayout.setOnClickListener { + clickListener?.showSOPSettingView() + } viewCheckStatus.setOnClickListener { clickListener?.go2CheckPage() } @@ -220,6 +223,7 @@ class AutoPilotAndCheckView @JvmOverloads constructor( fun onClose(v: View) fun showDebugPanelView() fun showFeedbackView() + fun showSOPSettingView() } override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/debug_icon_sop.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/debug_icon_sop.png new file mode 100644 index 0000000000..85809efdf3 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/debug_icon_sop.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml index fb2eaba745..ade0a7ce16 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml @@ -144,6 +144,32 @@ + + + + + + + + + app:layout_constraintTop_toBottomOf="@id/sopLayout" /> + app:layout_constraintTop_toBottomOf="@id/sopLayout" /> 车辆检测 调试面板 录包设置 + 运营面板 车速设置 账户信息 系统运行 diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt index aba129710c..da734fb58f 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt @@ -68,6 +68,11 @@ interface IMoGoWaringProvider : IMoGoHmiViewProxy { */ fun toggleDebugView() + /** + * 开关SOPSettingView + */ + fun toggleSOPView() + /** * 展示VR下V2X预警 *