[6.6.0]数据闭环

This commit is contained in:
xuxinchao
2024-08-23 19:02:29 +08:00
parent 4f45b71284
commit 025f743ff5
12 changed files with 115 additions and 18 deletions

View File

@@ -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

View File

@@ -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")
}
}

View File

@@ -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)
}
//上报

View File

@@ -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<Ta
override fun onBindViewHolder(holder: TakeOverRecordHolder, position: Int) {
data?.let {
val recordEntity = it[position]
if(recordEntity.reportStatus){
holder.ivCannotCheck.visibility = View.VISIBLE
holder.cbRecordSelect.visibility = View.INVISIBLE
}else{
holder.ivCannotCheck.visibility = View.INVISIBLE
holder.cbRecordSelect.visibility = View.VISIBLE
}
holder.cbRecordSelect.setOnCheckedChangeListener { _, isChecked ->
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<Ta
class TakeOverRecordHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
val cbRecordSelect: CheckBox = itemView.findViewById(R.id.cbRecordSelect)
val ivCannotCheck: ImageView = itemView.findViewById(R.id.ivCannotCheck)
val tvFaultStartTime: TextView = itemView.findViewById(R.id.tvFaultStartTime)
val ivRecordStatusLabel: ImageView = itemView.findViewById(R.id.ivRecordStatusLabel)
val tvLineName: TextView = itemView.findViewById(R.id.tvLineName)

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -16,6 +16,20 @@
android:paddingEnd="@dimen/dp_10"
/>
<ImageView
android:id="@+id/ivCannotCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:paddingTop="@dimen/dp_30"
android:paddingBottom="@dimen/dp_30"
android:paddingEnd="@dimen/dp_10"
android:src="@drawable/icon_record_cannot_check"
android:contentDescription="@string/take_over_record_cannot_check"
android:visibility="gone"
/>
<TextView
android:id="@+id/tvFaultStartTime"
android:layout_width="wrap_content"

View File

@@ -249,13 +249,13 @@
<ImageView
android:id="@+id/ivNoteAudio"
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_59"
android:src="@drawable/icon_work_order_audio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_reason_audio_normal"
app:layout_constraintTop_toTopOf="@id/etNoteInput"
app:layout_constraintBottom_toBottomOf="@id/etNoteInput"
app:layout_constraintEnd_toEndOf="@id/etNoteInput"
android:layout_marginEnd="@dimen/dp_30"
android:padding="@dimen/dp_30"
android:contentDescription="@string/take_over_note_audio"
/>

View File

@@ -190,13 +190,13 @@
<ImageView
android:id="@+id/ivNoteAudio"
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_59"
android:src="@drawable/icon_work_order_audio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_reason_audio_normal"
app:layout_constraintTop_toTopOf="@id/etNoteInput"
app:layout_constraintBottom_toBottomOf="@id/etNoteInput"
app:layout_constraintEnd_toEndOf="@id/etNoteInput"
android:layout_marginEnd="@dimen/dp_30"
android:padding="@dimen/dp_30"
android:contentDescription="@string/take_over_note_audio"
/>

View File

@@ -65,5 +65,6 @@
<string name="take_over_save">保存</string>
<string name="take_over_cancel">取消</string>
<string name="take_over_record_no_data">暂无接管记录</string>
<string name="take_over_record_cannot_check">不能选则</string>
</resources>