From 7a756948ed2376d59d3cb1bcd8502bb126a8dfbc Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 9 Oct 2024 11:44:43 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.0]=E6=9B=B4=E5=A4=9A=E5=86=85=E5=AE=B9-?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E5=BC=B9=E7=AA=97UI=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=88AI=E6=95=B0=E6=8D=AE=E9=87=87=E9=9B=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevaToolsProvider.kt | 7 + .../badcase/BadCaseManager.kt | 21 ++ .../badcase/biz/AIDataCollectView.kt | 278 ++++++++++++++++++ .../badcase/biz/AIDataCollectWindow.kt | 2 +- .../biz/adapter/AiDataCollectAdapter.kt | 61 ++++ .../res/drawable-xhdpi/bg_custom_toast.png | Bin 0 -> 11201 bytes .../drawable-xhdpi/icon_ai_data_cancel.png | Bin 0 -> 8885 bytes .../drawable-xhdpi/icon_ai_data_report.png | Bin 0 -> 43372 bytes .../drawable-xhdpi/icon_ai_report_success.png | Bin 0 -> 18389 bytes .../main/res/layout/item_ai_data_collect.xml | 25 ++ .../main/res/layout/view_ai_data_collect.xml | 155 ++++++---- .../src/main/res/layout/view_custom_toast.xml | 42 +++ .../res/layout/window_ai_data_collect.xml | 84 ++++++ .../src/main/res/values/strings.xml | 1 + .../hmi/bone/toolkit/ToolKitDataManager.kt | 19 +- .../src/main/res/values/strings.xml | 3 +- .../api/devatools/IDevaToolsProvider.kt | 5 + .../call/devatools/CallerDevaToolsManager.kt | 7 + 18 files changed, 632 insertions(+), 78 deletions(-) create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectView.kt create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/AiDataCollectAdapter.kt create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/bg_custom_toast.png create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_ai_data_cancel.png create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_ai_data_report.png create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_ai_report_success.png create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_ai_data_collect.xml create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_custom_toast.xml create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/res/layout/window_ai_data_collect.xml diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 5b7a6b9b6a..b7b6b744f1 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -441,6 +441,13 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener { WorkOrderManager.workOrderManager.showTakeOverRecordView(context) } + /** + * 展示AI数据采集页面 + */ + override fun showAiDataCollectView(context: Context) { + BadCaseManager.showAiDataCollectView(context) + } + /** * 启动调用SSM停服命令超时检测 */ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt index 2f08b6bfa5..dac5762545 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt @@ -353,6 +353,27 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis } } + /** + * 展示AI数据采集页面 + */ + fun showAiDataCollectView(context: Context){ + val aiDataCollectView = AIDataCollectView(context) + aiDataCollectView.setOnClickListener(object: AIDataCollectView.ClickListener{ + override fun onClose() { + hideFloat?.invoke() + hideFloat = null + } + }) + context.enqueuePop( + aiDataCollectView, + AutoSizeUtils.dp2px(context, 1046f), + WindowManager.LayoutParams.MATCH_PARENT, + key = "BadCaseManagerView" + ).also { + hideFloat = it + } + } + fun onReceiveBadCaseRecord(msgBoxBean: MsgBoxBean, activity: Activity, countdown: Boolean) { CallerLogger.d("$M_DEVA$TAG", "收到录包结果回调${record}") CallerLogger.d("$M_DEVA$TAG", "开始创建被动录包弹窗,window num=${BadCaseConfig.windowNum}") diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectView.kt new file mode 100644 index 0000000000..7d563665fa --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectView.kt @@ -0,0 +1,278 @@ +package com.zhjt.mogo_core_function_devatools.badcase.biz + +import android.content.Context +import android.util.AttributeSet +import android.view.Gravity +import android.view.LayoutInflater +import android.view.View +import android.widget.Toast +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.app.AppConfigInfo +import com.mogo.eagle.core.data.deva.badcase.AiDataEntity +import com.mogo.eagle.core.data.deva.badcase.BagDescriptionEntity +import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener +import com.mogo.eagle.core.function.api.devatools.badcase.BadCaseNetListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsNetManager +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.mogo.toast.TipToast +import com.mogo.eagle.core.utilcode.util.AppStateManager +import com.mogo.eagle.core.utilcode.util.AppUtils +import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.eagle.core.utilcode.util.TimeUtils.getYMDFormat +import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.zhjt.mogo_core_function_devatools.R +import com.zhjt.mogo_core_function_devatools.badcase.biz.adapter.AiDataCollectAdapter +import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig +import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.BadCaseNetManager +import com.zhjt.mogo_core_function_devatools.badcase.repository.store.BadCaseReasonStore +import com.zhjt.mogo_core_function_devatools.workorder.adapter.BottomDecoration +import kotlinx.android.synthetic.main.view_ai_data_collect.view.collectGroup +import kotlinx.android.synthetic.main.view_ai_data_collect.view.ivDataCollectClose +import kotlinx.android.synthetic.main.view_ai_data_collect.view.rvDataCollectList +import kotlinx.android.synthetic.main.view_ai_data_collect.view.tvDataCollectDate +import kotlinx.android.synthetic.main.view_ai_data_collect.view.tvDataCollectNoData +import kotlinx.android.synthetic.main.view_ai_data_collect.view.tvDeleteSelect +import kotlinx.android.synthetic.main.view_ai_data_collect.view.tvUpload +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import me.jessyan.autosize.utils.AutoSizeUtils +import org.json.JSONArray +import org.json.JSONObject +import record_cache.RecordPanelOuterClass + +/** + * AI数据采集View + */ +class AIDataCollectView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), + IMoGoAutopilotRecordListener, BadCaseNetListener { + + companion object { + const val TAG = "AIDataCollectView" + } + + private var clickListener: ClickListener? = null + private var aiDataCollectAdapter: AiDataCollectAdapter?= null + @Volatile + private var recordKey: Long = 0 //录制bag包key + @Volatile + private var recordFileName: String? = null //录制文件包名 + private var bagManagerEntity: BagManagerEntity = BagManagerEntity() + private var collectReason: StringBuilder = StringBuilder() + private var collectList = ArrayList() + + private var aiDataList = ArrayList() + + private val presenter by lazy { + BadCasePresenter() + } + + init { + LayoutInflater.from(context).inflate(R.layout.view_ai_data_collect, this, true) + initView() + } + + private fun initView(){ + //关闭窗口 + ivDataCollectClose.setOnClickListener{ + clickListener?.onClose() + } + //接管记录日期 + tvDataCollectDate.text = millis2String(System.currentTimeMillis(), getYMDFormat()) + val linearLayoutManager = LinearLayoutManager(context) + linearLayoutManager.orientation = LinearLayoutManager.VERTICAL + rvDataCollectList?.layoutManager = linearLayoutManager + aiDataCollectAdapter = AiDataCollectAdapter() + aiDataCollectAdapter?.setListener(object: AiDataCollectAdapter.AiDataClickListener{ + override fun onClick(reason: String, isChecked: Boolean) { + if(isChecked){ + if(!collectList.contains(reason)){ + collectList.add(reason) + } + }else{ + if(collectList.contains(reason)){ + collectList.remove(reason) + } + } + } + }) + rvDataCollectList.addItemDecoration( + BottomDecoration( + AutoSizeUtils.dp2px(context, 194f) + ) + ) + rvDataCollectList?.adapter = aiDataCollectAdapter + //数据请求错误,使用缓存数据 + if(BadCaseReasonStore.getAiDataRecord().isNotEmpty()){ + val result = JSONArray(BadCaseReasonStore.getAiDataRecord()) + if(result.length()>0){ + for(i in 0 until result.length()){ + val jsonObject = result[i] as JSONObject + val id = jsonObject.optInt("id") + val name = jsonObject.optString("name") + val content = jsonObject.optString("content") + val entity = AiDataEntity(id, name, content,false) + aiDataList.add(entity) + } + } + if(aiDataList.isNotEmpty()){ + //刷新列表 + aiDataCollectAdapter?.setData(aiDataList) + tvDataCollectNoData.visibility = View.GONE + collectGroup.visibility = View.VISIBLE + } + } + + //上报 + tvUpload.setOnClickListener { + if(collectList.isEmpty()){ + ToastUtils.showShort("请选择最少一个原因") + return@setOnClickListener + } + collectReason.clear() + for(index in collectList.indices){ + if(index!=0){ + collectReason.append("&") + } + collectReason.append(collectList[index]) + } + //上报到工控机 + CallerAutoPilotControlManager.recordCause(recordKey.toString(),recordFileName,"", + collectReason.toString()) + GlobalScope.launch { + val uploadResult = presenter.upload(mutableMapOf().also { itx -> + itx["carLicense"] = AppConfigInfo.plateNumber //车牌号 + itx["filename"] = recordFileName ?: "" //bag包文件地址 + itx["filesize"] = "0" //bag包文件大小 + itx["key"] = recordKey.toString() //key + itx["reason"] = collectReason.toString() //采集原因 + itx["duration"] = "20" //采集时长,固定为20S + itx["startTime"] = System.currentTimeMillis().toString() //上报时间(时间戳格式) + itx["channel"] = "AI" //渠道 + itx["carSn"] = SharedPrefsMgr.getInstance().sn //SN + itx["userRole"] = "" //采集者角色 + itx["audioUrl"] = "" //音频COS地址 + itx["mapVersion"] = BadCaseConfig.dockerVersion ?: "" //工控机版本 + itx["eyeVersion"] = AppUtils.getAppVersionName() //鹰眼版本 + itx["coordinate"] = + "latitude:${CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude};longitude:${CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude}" //坐标 + + }) + if (uploadResult == null || uploadResult.code != 200) { + TipToast.shortTip("上报失败") + } else { + //上报成功 + ThreadUtils.runOnUiThread { + val customToastView = AppStateManager.currentActivity()?.layoutInflater?.inflate(R.layout.view_custom_toast,null) + val customToast = Toast(context.applicationContext) + customToast.duration = Toast.LENGTH_SHORT + customToast.view = customToastView + customToast.setGravity(Gravity.START,AutoSizeUtils.dp2px(context, 262f),0) + customToast.show() + //取消选择 + for(data in aiDataList){ + data.isChecked = false + } + collectReason.clear() + collectList.clear() + aiDataCollectAdapter?.setData(aiDataList) + } + //将上报BI的结果同步给工控机记录保存 + recordKey.let { + val descReqEntity = BagDescriptionEntity(collectReason.toString(),false,"",true) + bagManagerEntity.reqType = 5 + bagManagerEntity.keyReq = it + bagManagerEntity.descReq = descReqEntity + CallerAutoPilotControlManager.sendBagManagerCmd(bagManagerEntity) + } + } + + } + + } + + //取消 + tvDeleteSelect.setOnClickListener { + clickListener?.onClose() + } + } + + fun setOnClickListener(clickListener: ClickListener) { + this.clickListener = clickListener + } + + interface ClickListener { + fun onClose() + } + + override fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) { + CallerLogger.d("${M_DEVA}${TAG}", "-- 收到工控机录制任务回调 -- $recordPanel") + ThreadUtils.runOnUiThread { + recordKey = recordPanel.key + //开始录制 + if(recordPanel.stat == 300){ + BadCaseConfig.recordKeyList.add(recordPanel.key) + val aiDataSet = BadCaseConfig.getAiDataSet() + //保存录包状态 + aiDataSet.add(recordPanel.key.toString()) + BadCaseConfig.setAiDataSet(aiDataSet) + } + if (recordFileName == null) { + recordFileName = recordPanel.filename + } + } + + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + //采集结果回调监听 + CallerAutopilotRecordListenerManager.addListener(TAG, this) + //注册网络接口获取数据监听 + CallerDevaToolsNetManager.addListener(TAG,this) + //获取数据 + BadCaseNetManager.badCaseNetManager.getAiData() + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + //注销采集结果回调监听 + CallerAutopilotRecordListenerManager.removeListener(TAG) + //注销网络接口监听 + CallerDevaToolsNetManager.removeListener(TAG) + } + + override fun onAiDataResponse(list: List) { + ThreadUtils.runOnUiThread { + if(list.isEmpty()){ + tvDataCollectNoData.visibility = View.VISIBLE + collectGroup.visibility = View.GONE + }else{ + tvDataCollectNoData.visibility = View.GONE + collectGroup.visibility = View.VISIBLE + aiDataList = list as ArrayList + //刷新列表 + aiDataCollectAdapter?.setData(list) + } + } + } + + override fun onAiDataError() { + if(BadCaseReasonStore.getAiDataRecord().isEmpty()){ + ToastUtils.showShort("AI数据采集数据请求错误且无缓存数据可用") + } + } + + +} \ 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/badcase/biz/AIDataCollectWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt index 5faf9a28f0..86e0a5d304 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt @@ -100,7 +100,7 @@ class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener @SuppressLint("SetTextI18n") private fun initFloatWindow() { mFloatLayout = - LayoutInflater.from(mActivity).inflate(R.layout.view_ai_data_collect, null) as View + LayoutInflater.from(mActivity).inflate(R.layout.window_ai_data_collect, null) as View mFloatLayout.setOnTouchListener(this) tvCollectNum = mFloatLayout.findViewById(R.id.tvCollectNum) tvCollectTime = mFloatLayout.findViewById(R.id.tvCollectTime) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/AiDataCollectAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/AiDataCollectAdapter.kt new file mode 100644 index 0000000000..fe8a6b4263 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/AiDataCollectAdapter.kt @@ -0,0 +1,61 @@ +package com.zhjt.mogo_core_function_devatools.badcase.biz.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.CheckBox +import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.data.deva.badcase.AiDataEntity +import com.zhjt.mogo_core_function_devatools.R + +/** + * AI数据采集适配器 + */ +class AiDataCollectAdapter: RecyclerView.Adapter() { + + private var data:List ?= null + private var clickListener: AiDataClickListener ?= null + + fun setData(data: List){ + this.data = data + notifyDataSetChanged() + } + + fun setListener(listener: AiDataClickListener){ + clickListener = listener + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AiDataHolder { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_ai_data_collect, parent, false) + return AiDataHolder(view) + } + + override fun onBindViewHolder(holder: AiDataHolder, position: Int) { + data?.let { + val entity = it[position] + if(entity.content.isBlank()){ + holder.rbDataSelect.text = entity.name + }else{ + holder.rbDataSelect.text = "${entity.name}:${entity.content}" + } + holder.rbDataSelect.isChecked = entity.isChecked + holder.rbDataSelect.tag = entity + holder.rbDataSelect.setOnCheckedChangeListener { _, isChecked -> + clickListener?.onClick(holder.rbDataSelect.text.toString(),isChecked) + entity.isChecked = isChecked + } + } + } + + override fun getItemCount() = data?.size ?: 0 + + class AiDataHolder(itemView: View) : RecyclerView.ViewHolder(itemView){ + var rbDataSelect: CheckBox = itemView.findViewById(R.id.rb_data_select) + } + + interface AiDataClickListener{ + fun onClick(reason: String,isChecked: Boolean) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/bg_custom_toast.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/bg_custom_toast.png new file mode 100644 index 0000000000000000000000000000000000000000..2568d0dd63512b1a7ada9d6dcb1359e9d3281044 GIT binary patch literal 11201 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

xw!&U<6K#HhOT9O?N9*~h3SOKU` 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_ai_report_success.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xhdpi/icon_ai_report_success.png new file mode 100644 index 0000000000000000000000000000000000000000..e4d5d55d73ea5cdc8fa477e678dcf3174ccb47cd GIT binary patch literal 18389 zcmV)uK$gFWP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91jGzMm1ONa40RR91i~s-t02pS0CjbCI07*naRCod9eS5I4S6SZo?UR^< z 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_ai_data_collect.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_ai_data_collect.xml new file mode 100644 index 0000000000..c6bef564fa --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_ai_data_collect.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_ai_data_collect.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_ai_data_collect.xml index 9ce6809750..bf2819173e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_ai_data_collect.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_ai_data_collect.xml @@ -1,84 +1,123 @@ - + android:background="@drawable/bg_take_over_record"> + android:id="@+id/viewDataCollectLine" + android:layout_width="@dimen/dp_24" + android:layout_height="@dimen/dp_60" + android:layout_marginStart="@dimen/dp_80" + android:layout_marginTop="@dimen/dp_92" + android:background="@drawable/icon_take_over_label" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - + + + + + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_custom_toast.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_custom_toast.xml new file mode 100644 index 0000000000..3b41cc8e5a --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_custom_toast.xml @@ -0,0 +1,42 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/window_ai_data_collect.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/window_ai_data_collect.xml new file mode 100644 index 0000000000..9ce6809750 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/window_ai_data_collect.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml index 1c36489633..b7f06a8256 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml @@ -66,5 +66,6 @@ 取消 暂无内容 不能选则 + 上报 \ 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/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 642348482a..f9aebbf218 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 @@ -199,23 +199,8 @@ object ToolKitDataManager : IToolKitItemClickListener, IDataCenterBizListener { } ToolTypeEnum.AI_REPORT.name -> { - (ctx as? FragmentActivity)?.also { - if (NetworkUtils.isConnected()) { - if (BadCaseConfig.dockerVersion != null) { - val aiDataCollectWindow = AIDataCollectWindow(it) - aiDataCollectWindow.setClickListener(object : - AIDataCollectWindow.ClickListener { - override fun closeWindow() { - aiDataCollectWindow.hideFloatWindow() - } - }) - aiDataCollectWindow.showFloatWindow() - } else { - ToastUtils.showShort("工控机连接状态异常") - } - } else { - ToastUtils.showShort("网络异常,请检查网络") - } + ctx?.also { + CallerDevaToolsManager.showAiDataCollectView(it) } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index 1097775dc6..61244a3c46 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -209,9 +209,8 @@ 故障发生时间减少 故障发生时间增加 - 消息盒子吐司图标 - 红绿灯信号来源 + 已发起上报 diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index e968d741d7..8d1f2c14b0 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -152,6 +152,11 @@ interface IDevaToolsProvider : IProvider { */ fun showTakeOverRecordView(context: Context) + /** + * 展示AI数据采集页面 + */ + fun showAiDataCollectView(context: Context) + /** * 启动调用SSM停服命令超时检测 */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt index dee7003e0c..c674221c90 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -207,6 +207,13 @@ object CallerDevaToolsManager { devaToolsProviderApi?.showTakeOverRecordView(context) } + /** + * 展示AI数据采集页面 + */ + fun showAiDataCollectView(context: Context){ + devaToolsProviderApi?.showAiDataCollectView(context) + } + /** * 启动调用SSM停服命令超时检测 */