diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt index 0917bac5be..e5ff7af426 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt @@ -293,12 +293,21 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, //问题描述录音 ivNoteAudio.setOnClickListener { audioStatus = !audioStatus + if(audioStatus){ + ivNoteAudio.setImageDrawable(ContextCompat.getDrawable( + mActivity, + R.drawable.icon_reason_audio_pressed + )) + }else{ + ivNoteAudio.setImageDrawable(ContextCompat.getDrawable( + mActivity, + R.drawable.icon_reason_audio_normal + )) + } setAudio(audioStatus) } //上报 tvFaultReport.setOnClickListener{ - CallerOrderListenerManager.invokeOrderLineUpdate("测试") - val geocodeSearch = GeocodeSearch(mActivity) geocodeSearch.setOnGeocodeSearchListener(object: GeocodeSearch.OnGeocodeSearchListener { override fun onRegeocodeSearched(regeocodeResult: RegeocodeResult?, p1: Int) { @@ -344,9 +353,7 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, } //开始录音,展示放大缩小动效 val scaleAnimation = ScaleAnimation( - 1.0f, 0.8f, 1.0f, 0.8f, - Animation.RELATIVE_TO_SELF, 0.8f, Animation.RELATIVE_TO_SELF, 0.8f - ) + 1.0f, 0.8f, 1.0f, 0.8f) scaleAnimation.duration = 1000 scaleAnimation.repeatCount = -1 ivNoteAudio.startAnimation(scaleAnimation) @@ -502,6 +509,10 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener, super.problemPadAddSuccess() //显示上报成功页面,短暂停留关闭弹窗 ThreadUtils.runOnUiThread { + if(ivNoteAudio.hasTransientState()){ + //结束动画 + ivNoteAudio.clearAnimation() + } rvFaultList.visibility = View.GONE tvUploadSuccess.visibility = View.VISIBLE faultReasonGroup.visibility = View.GONE diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt index af5a73474b..494914ba77 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt @@ -16,7 +16,9 @@ import android.widget.ImageView import android.widget.TextView import androidx.appcompat.widget.AppCompatTextView import androidx.constraintlayout.widget.Group +import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.ToastUtils @@ -30,7 +32,7 @@ import kotlin.math.round * 上报类型选择,包括一键上报及上报类型选择:故障类、接管类 * 一键上报和类型选择互斥,当点击弹出上报类型选择时,一键上报隐藏 */ -class ReportTypeWindow constructor(activity: Activity) { +class ReportTypeWindow constructor(activity: Activity): IMoGoDevaToolsListener { companion object{ const val TAG = "ReportTypeWindow" @@ -85,6 +87,7 @@ class ReportTypeWindow constructor(activity: Activity) { } private fun initEvent(){ + CallerDevaToolsListenerManager.addListener(TAG, this) if(isOneClickType){ oneClickGroup.visibility = View.VISIBLE reportTypeGroup.visibility = View.GONE @@ -114,6 +117,8 @@ class ReportTypeWindow constructor(activity: Activity) { ivOneClickReport.setOnClickListener { hasReportOperate = true //TODO + + CallerDevaToolsListenerManager.invokeProblemPadAddSuccess() } //故障类 tvReportTypeFault.setOnClickListener { @@ -128,6 +133,7 @@ class ReportTypeWindow constructor(activity: Activity) { BadCaseConfig.totalDuration, BadCaseConfig.previousDuration) if(response){ //已发起录包 + oneClickGroup.visibility = View.GONE reportTypeGroup.visibility = View.GONE tvReportSuccess.visibility = View.VISIBLE tvReportSuccess.text = mActivity.resources.getString(R.string.record_success) @@ -137,6 +143,7 @@ class ReportTypeWindow constructor(activity: Activity) { },1500) }else{ ToastUtils.showShort("主动录包命令下发失败") + clickListener?.closeWindow() } } @@ -154,6 +161,7 @@ class ReportTypeWindow constructor(activity: Activity) { } fun hideFloatWindow() { + CallerDevaToolsListenerManager.removeListener(TAG) if (mFloatLayout.parent != null){ mWindowManager!!.removeView(mFloatLayout) } @@ -167,4 +175,26 @@ class ReportTypeWindow constructor(activity: Activity) { fun closeWindow() } + /** + * 故障上报成功 + */ + override fun problemPadAddSuccess() { + //显示上报成功页面,短暂停留关闭弹窗 + ThreadUtils.runOnUiThread { + oneClickGroup.visibility = View.GONE + reportTypeGroup.visibility = View.GONE + tvReportSuccess.visibility = View.VISIBLE + tvReportSuccess.text = mActivity.resources.getString(R.string.report_success) + val successHandler = Handler(Looper.getMainLooper()) + successHandler.postDelayed({ + clickListener?.closeWindow() + },1500) + } + } + + override fun problemPadAddError(msg: String) { + super.problemPadAddError(msg) + ToastUtils.showShort("故障原因上报失败$msg") + } + } \ 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/workorder/TakeOverReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt index 6d2e5dd8d7..da5e546bc0 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt @@ -249,6 +249,17 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene //问题描述录音 ivNoteAudio.setOnClickListener { audioStatus = !audioStatus + if(audioStatus){ + ivNoteAudio.setImageDrawable(ContextCompat.getDrawable( + mActivity, + R.drawable.icon_reason_audio_pressed + )) + }else{ + ivNoteAudio.setImageDrawable(ContextCompat.getDrawable( + mActivity, + R.drawable.icon_reason_audio_normal + )) + } setAudio(audioStatus) } //上报 diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt index 280ca9898b..8b50828017 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt @@ -7,10 +7,12 @@ import android.view.ViewGroup import android.widget.CheckBox import android.widget.ImageView import android.widget.TextView +import androidx.appcompat.content.res.AppCompatResources import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.data.deva.report.TakeOverRecordInfo import com.mogo.eagle.core.utilcode.util.TimeUtils +import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinSecondFormat import com.mogo.eagle.core.utilcode.util.ToastUtils import com.zhjt.mogo_core_function_devatools.R @@ -36,12 +38,27 @@ class TakeOverListAdapter(private val context: Context): RecyclerView.Adapter clickListener?.onSelectRecord(recordEntity,isChecked) } - holder.tvFaultStartTime.text = TimeUtils.millis2String(recordEntity.faultStartTime) + holder.ivCannotCheck.setOnClickListener { + ToastUtils.showShort("该条记录已上传,不可选择") + } + holder.tvFaultStartTime.text = TimeUtils.millis2String(recordEntity.faultStartTime,getHourMinSecondFormat()) holder.tvLineName.text = recordEntity.lineName - holder.tvTakeOverReason.text = recordEntity.reportNote + //TODO 还应该判断类型和原因 + if(recordEntity.reportNote.isEmpty()){ + holder.tvTakeOverReason.text = "原因:空" + }else{ + holder.tvTakeOverReason.text = "原因:${recordEntity.reportNote}" + } if(recordEntity.reportStatus){ //已上报 holder.ivRecordStatusLabel.setImageDrawable( @@ -72,6 +89,7 @@ class TakeOverListAdapter(private val context: Context): RecyclerView.Adapter + + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml index 55140a6af9..9dda0c1899 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml @@ -190,13 +190,13 @@ 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 8a3a241e52..0df48d8bae 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 @@ -65,5 +65,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/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 1664812221..7d41978c3f 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 @@ -14,6 +14,7 @@ import com.mogo.commons.env.ProjectUtils import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig +import com.mogo.eagle.core.data.deva.report.TakeOverRecordInfo import com.mogo.eagle.core.data.temp.EventLogout import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener @@ -21,6 +22,7 @@ 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.CallerAutopilotCarConfigListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +import com.mogo.eagle.core.function.call.takeover.CallerTakeOverManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.utils.KeyBoardUtil import com.mogo.eagle.core.function.msgbox.MsgBoxConfig @@ -133,10 +135,20 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( clickListener?.onClose(it) } rlKillLayout.setOnClickListener { - killApp() +// killApp() + val takeOverRecordInfo = TakeOverRecordInfo( + System.currentTimeMillis(),"地址1",1,2,3,"测试路线2", + "",false + ) + CallerTakeOverManager.insertRecord(context,takeOverRecordInfo) } sopLayout.setOnClickListener { - clickListener?.showSOPSettingView() +// clickListener?.showSOPSettingView() + val takeOverRecordInfo = TakeOverRecordInfo( + System.currentTimeMillis(),"地址1",1,2,3,"测试路线3", + "",true + ) + CallerTakeOverManager.insertRecord(context,takeOverRecordInfo) } //录包 CallerDevaToolsManager.initBadCase(badCaseReportLayout)