From 183d821fe5651d91078eb01e45af7f66338ffc57 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Mon, 30 Dec 2024 19:27:21 +0800 Subject: [PATCH] =?UTF-8?q?[6.9.0]OTA=E5=8D=87=E7=BA=A7=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ota/OTAUpgradeConfig.kt | 3 + .../ota/OTAUpgradeManager.kt | 20 ++---- .../function/hmi/bone/tab/CarInfoTabView.kt | 44 ++++++++++++- .../core/function/hmi/ui/MoGoHmiProvider.kt | 21 ------ .../hmi/ui/tools/OTAUpgradeTipView.kt | 65 ------------------- .../function/hmi/ui/widget/ColdStartView.kt | 2 + .../src/main/res/layout/view_car_info_tab.xml | 13 ++-- .../main/res/layout/view_map_container.xml | 9 --- .../main/res/layout/view_ota_upgrade_tip.xml | 13 ---- .../api/hmi/warning/IMoGoHmiProvider.kt | 6 -- .../function/call/hmi/CallerHmiManager.kt | 7 -- 11 files changed, 60 insertions(+), 143 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OTAUpgradeTipView.kt delete mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_ota_upgrade_tip.xml diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeConfig.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeConfig.kt index b752cbbf6c..107e745d4e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeConfig.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeConfig.kt @@ -16,4 +16,7 @@ object OTAUpgradeConfig { //是否有订单 true有订单 false没有订单 @JvmField var inOrder: Boolean = false + //当前SSM版本是否支持OTA升级,默认不支持 + @JvmField + var supportOTA: Boolean = false } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeManager.kt index 741f8aabe0..416b035588 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeManager.kt @@ -87,16 +87,8 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, // 并toast提示“收到车辆部署任务,请在车辆空闲时发起升级” CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.DELAY) ToastUtils.showLong("收到车辆部署任务,请在车辆空闲时发起升级") - //展示OTA升级提示 - CallerHmiManager.showOTAUpgradeTipView(true) } - }else{ - //展示OTA升级提示 - CallerHmiManager.showOTAUpgradeTipView(true) } - }else{ - //隐藏OTA升级提示 - CallerHmiManager.showOTAUpgradeTipView(false) } //解析JSON var upgradeComplete = true @@ -135,6 +127,9 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, //// 状态 0:默认(未开始), 1:下载中, 2:下载完成, 3:升级完成, 4:升级失败 if(productStatus == 0 || productStatus == 1 || productStatus == 2){ upgradeComplete = false + CallerOTAManager.invokeOtaDownloadStatus(true) + }else{ + CallerOTAManager.invokeOtaDownloadStatus(false) } val otaUpgradeInfo = OtaUpgradeInfo(token, productStatus,failReason,upgradeReason, @@ -167,13 +162,7 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, OTAUpgradeConfig.otaToken = status.otaInfo.otaToken //触发升级提示 CallerHmiManager.showOTAUpgradeDialog(true) - }else{ - //展示OTA升级提示 - CallerHmiManager.showOTAUpgradeTipView(true) } - }else{ - //隐藏OTA升级提示 - CallerHmiManager.showOTAUpgradeTipView(false) } //解析JSON @@ -213,6 +202,9 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, //// 状态 0:默认(未开始), 1:下载中, 2:下载完成, 3:升级完成, 4:升级失败 if(productStatus == 0 || productStatus == 1 || productStatus == 2){ upgradeComplete = false + CallerOTAManager.invokeOtaDownloadStatus(true) + }else{ + CallerOTAManager.invokeOtaDownloadStatus(false) } if(productStatus == 4){ upgradeResult = false diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt index ba203427fd..5081ad941c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.hmi.bone.tab import android.content.Context import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.commons.debug.DebugConfig @@ -11,13 +12,16 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizListener import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener +import com.mogo.eagle.core.function.api.devatools.IOTAListener import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.och.CallerOchCustomViewManager import com.mogo.eagle.core.function.hmi.R @@ -31,9 +35,11 @@ import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.map.MogoData +import com.zhjt.mogo_core_function_devatools.ota.OTAUpgradeConfig import kotlinx.android.synthetic.main.view_car_info_tab.view.clBind import kotlinx.android.synthetic.main.view_car_info_tab.view.ivCarType import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADMapVersion +import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADUpdate import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADVersionName import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarExit import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarLoginInfo @@ -59,7 +65,7 @@ class CarInfoTabView @JvmOverloads constructor( attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoCheckAutoPilotBtnListener, - IMoGoAutopilotStatusListener, IMoGoDevaToolsListener, IDataCenterBizListener { + IMoGoAutopilotStatusListener, IMoGoDevaToolsListener, IDataCenterBizListener, IOTAListener { companion object { private const val TAG = "CarInfoTabView" @@ -125,7 +131,19 @@ class CarInfoTabView @JvmOverloads constructor( } } } - + //域控OTA升级 检查更新 + tvADUpdate.setOnClickListener { + HmiActionLog.hmiAction( + "${SceneConstant.M_HMI}${TAG}", + "ad version view clicked" + ) + if(OTAUpgradeConfig.supportOTA){ + //查询OTA状态 + CallerAutoPilotControlManager.sendSsmFuncOtaStatusQuery(OTAUpgradeConfig.otaToken) + }else{ + ToastUtils.showLong("当前域控版本不支持OTA升级") + } + } tvHDMapVersion.text = tvHDMapVersion.text.toString() + DebugConfig.getMapVersion() //高精地图 检查更新 tvHDMapUpdate.setOnClickListener { @@ -262,4 +280,26 @@ class CarInfoTabView @JvmOverloads constructor( updateAdHdMapVersion() } + /** + * SSM发送OTA升级提示请求,主动触发 + * @param request SSM发送OTA升级提示内容 + */ + override fun onOtaDownloadRequest(request: SsmInfo.OtaDownloadRequest) { + super.onOtaDownloadRequest(request) + Log.i(TAG,"onOtaDownloadRequest otaToken"+request.otaToken) + Log.i(TAG,"onOtaDownloadRequest productName"+request.productName) + if(request.otaToken.isNotEmpty()){ + //冷启动已完成(包括成功/失败),且驾驶状态为非自驾状态,且当前无订单进行强提示,否则为弱提示 + if(OTAUpgradeConfig.coldStartCompleted && !OTAUpgradeConfig.autopilotStatus + && !OTAUpgradeConfig.inOrder){ + //触发强提示升级 + CallerHmiManager.showOTAUpgradeDialog(true) + }else{ + ToastUtils.showLong("请结束订单后触发升级") + } + }else{ + ToastUtils.showLong("暂无待升级任务!") + } + } + } \ 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/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 466e4ba159..881f47c690 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -12,7 +12,6 @@ import android.view.animation.AccelerateDecelerateInterpolator import android.widget.FrameLayout import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat -import androidx.core.view.doOnAttach import androidx.lifecycle.ProcessLifecycleOwner import androidx.lifecycle.lifecycleScope import androidx.transition.Slide @@ -43,7 +42,6 @@ import com.mogo.eagle.core.function.api.och.toolkit.IToolKitItemClickListener import com.mogo.eagle.core.function.api.och.toolkit.ToolKitCustomItemAddParam import com.mogo.eagle.core.function.api.och.toolkit.ToolKitDefaultItemAddParam import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager -import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager import com.mogo.eagle.core.function.hmi.R @@ -62,7 +60,6 @@ import com.mogo.eagle.core.function.hmi.ui.tools.ModifyBindingCarDialog import com.mogo.eagle.core.function.hmi.ui.tools.OTADownloadStatusDialog import com.mogo.eagle.core.function.hmi.ui.tools.OTAUpgradeDialog import com.mogo.eagle.core.function.hmi.ui.tools.OTAUpgradeResultDialog -import com.mogo.eagle.core.function.hmi.ui.tools.OTAUpgradeTipView import com.mogo.eagle.core.function.hmi.ui.tools.ToBindingCarDialog import com.mogo.eagle.core.function.hmi.ui.tools.UpgradeAppDialog import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog @@ -667,7 +664,6 @@ class MoGoHmiProvider : IMoGoHmiProvider { private var otaUpgradeDialog: OTAUpgradeDialog ?= null private var otaDownloadStatusDialog: OTADownloadStatusDialog ?= null private var otaUpgradeResultDialog: OTAUpgradeResultDialog ?= null - private var otaUpgradeTipView: OTAUpgradeTipView ?= null /** * 展示OTA升级弹窗 @@ -711,23 +707,6 @@ class MoGoHmiProvider : IMoGoHmiProvider { } } - /** - * 展示OTA升级提示 - * @param visible 设置是否可见 - */ - override fun showOTAUpgradeTipView(visible: Boolean) { - ThreadUtils.runOnUiThread{ - if(otaUpgradeDialog?.isShowing == true){ - return@runOnUiThread - } - if(otaUpgradeTipView == null){ - context?.let { - otaUpgradeTipView = OTAUpgradeTipView(it) - } - } - otaUpgradeTipView?.setDisplayStatus(visible) - } - } /** * 展示OTA升级结果弹窗 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OTAUpgradeTipView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OTAUpgradeTipView.kt deleted file mode 100644 index 36ad679404..0000000000 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OTAUpgradeTipView.kt +++ /dev/null @@ -1,65 +0,0 @@ -package com.mogo.eagle.core.function.hmi.ui.tools - -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import android.view.View -import androidx.constraintlayout.widget.ConstraintLayout -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager -import com.mogo.eagle.core.function.hmi.R -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.zhjt.mogo_core_function_devatools.ota.OTAUpgradeConfig -import kotlinx.android.synthetic.main.view_ota_upgrade_tip.view.btn_upgrade - -/** - * OTA升级任务标记提示 - */ -class OTAUpgradeTipView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr){ - - companion object { - private const val TAG = "OTAUpgradeTipView" - } - - init { - LayoutInflater.from(context).inflate(R.layout.view_ota_upgrade_tip, this, true) - initView() - } - - private fun initView(){ - btn_upgrade.setOnClickListener { - //冷启动已完成(包括成功/失败),且驾驶状态为非自驾状态,且当前无订单进行强提示,否则为弱提示 - if(OTAUpgradeConfig.coldStartCompleted && !OTAUpgradeConfig.autopilotStatus - && !OTAUpgradeConfig.inOrder){ - //触发强提示升级 - CallerHmiManager.showOTAUpgradeDialog(true) - }else{ - ToastUtils.showLong("请结束订单后触发升级") - } - } - } - - /** - * 设置视图是否可见 - * @param visible 是否可见 - */ - fun setDisplayStatus(visible: Boolean){ - if(visible){ - if(this@OTAUpgradeTipView.visibility == View.VISIBLE){ - return - }else{ - this@OTAUpgradeTipView.visibility = View.VISIBLE - } - }else{ - if(this@OTAUpgradeTipView.visibility != View.VISIBLE){ - return - }else{ - this@OTAUpgradeTipView.visibility = View.GONE - } - } - } - -} \ 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/widget/ColdStartView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt index ba47e9f56c..54d8f0617c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt @@ -279,6 +279,8 @@ class ColdStartView @JvmOverloads constructor( ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis()) } } + //判断当前SSM版本是否支持OTA升级 + OTAUpgradeConfig.supportOTA = parseVersion(true, statusInf.masterVersion) >= 40800 } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_car_info_tab.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_car_info_tab.xml index 25e5385f85..8cea603631 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_car_info_tab.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_car_info_tab.xml @@ -171,25 +171,26 @@ + app:layout_constraintTop_toBottomOf="@+id/tvPadVersion" + android:layout_marginEnd="@dimen/dp_10" + /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_map_container.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_map_container.xml index 8882c9730d..4c98733a4b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_map_container.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_map_container.xml @@ -141,15 +141,6 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> - - - -