feat(composite-layup): 添加任务详情序列化传递功能
- 在 CompositeLayupApiData 中为数据类实现 Serializable 接口 - 在 CompositeLayupResultActivity 中添加任务详情传递逻辑 - 在 CompositeLayupTaskActivity 中接收并缓存任务详情数据 - 添加 EXTRA_TASK_DETAIL 常量用于 Intent 数据传递 - 实现 bindCachedTaskDetail 方法支持本地任务详情绑定
这个提交包含在:
父节点
ade4513cdf
当前提交
d03d123140
@ -1,5 +1,7 @@
|
||||
package com.nova.brain.glass.model.data
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
data class CompositeLayupDetailItem(
|
||||
val id: Long = 0,
|
||||
val taskId: Long = 0,
|
||||
@ -14,7 +16,7 @@ data class CompositeLayupDetailItem(
|
||||
val createdBy: String = "",
|
||||
val updatedBy: String = "",
|
||||
val isDeleted: Long = 0
|
||||
)
|
||||
) : Serializable
|
||||
|
||||
data class CompositeLayupTaskDetail(
|
||||
val id: Long = 0,
|
||||
@ -36,7 +38,7 @@ data class CompositeLayupTaskDetail(
|
||||
val updatedBy: String = "",
|
||||
val isDeleted: Long = 0,
|
||||
val detailList: List<CompositeLayupDetailItem>? = null
|
||||
)
|
||||
) : Serializable
|
||||
|
||||
data class CompositeLayupTaskDetailResponse(
|
||||
val code: Int = 0,
|
||||
|
||||
@ -13,6 +13,7 @@ import com.nova.brain.glass.helper.GlassMediaServiceHelper
|
||||
import com.nova.brain.glass.helper.OfflineCmdListener
|
||||
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
|
||||
import com.nova.brain.glass.model.ItemItem
|
||||
import com.nova.brain.glass.model.data.CompositeLayupTaskDetail
|
||||
import com.nova.brain.glass.viewmodel.CompositeLayupResultState
|
||||
import com.nova.brain.glass.viewmodel.CompositeLayupResultVM
|
||||
import com.rokid.security.glass3.sdk.base.data.media.PhotoResolution
|
||||
@ -50,6 +51,10 @@ class CompositeLayupResultActivity : BaseActivity<ActivityCompositeLayupResultBi
|
||||
private val totalSteps: Int by lazy { intent.getIntExtra(EXTRA_TOTAL_STEPS, 1) }
|
||||
private val direction: String by lazy { intent.getStringExtra(EXTRA_DIRECTION).orEmpty() }
|
||||
private val vacuum: String by lazy { intent.getStringExtra(EXTRA_VACUUM).orEmpty() }
|
||||
private val taskDetail: CompositeLayupTaskDetail? by lazy {
|
||||
@Suppress("DEPRECATION")
|
||||
intent.getSerializableExtra(EXTRA_TASK_DETAIL) as? CompositeLayupTaskDetail
|
||||
}
|
||||
private val uiHandler = Handler(Looper.getMainLooper())
|
||||
|
||||
private var isPhoto = false
|
||||
@ -260,6 +265,7 @@ class CompositeLayupResultActivity : BaseActivity<ActivityCompositeLayupResultBi
|
||||
startActivity(Intent(this, CompositeLayupTaskActivity::class.java).apply {
|
||||
putExtra(CompositeLayupTaskActivity.EXTRA_TASK_NO, taskNo)
|
||||
putExtra(CompositeLayupTaskActivity.EXTRA_STEP_SEQ, stepSeq + 1)
|
||||
putExtra(CompositeLayupTaskActivity.EXTRA_TASK_DETAIL, taskDetail)
|
||||
})
|
||||
finish()
|
||||
}
|
||||
@ -329,5 +335,6 @@ class CompositeLayupResultActivity : BaseActivity<ActivityCompositeLayupResultBi
|
||||
const val EXTRA_TOTAL_STEPS = "extra_total_steps"
|
||||
const val EXTRA_DIRECTION = "extra_direction"
|
||||
const val EXTRA_VACUUM = "extra_vacuum"
|
||||
const val EXTRA_TASK_DETAIL = "extra_task_detail"
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import com.nova.brain.glass.helper.GlassMediaServiceHelper
|
||||
import com.nova.brain.glass.helper.OfflineCmdListener
|
||||
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
|
||||
import com.nova.brain.glass.model.ItemItem
|
||||
import com.nova.brain.glass.model.data.CompositeLayupTaskDetail
|
||||
import com.nova.brain.glass.viewmodel.CompositeLayupTaskVM
|
||||
import com.rokid.security.glass3.sdk.base.data.media.PhotoResolution
|
||||
import com.rokid.security.system.server.media.callback.PhotoFileCallback
|
||||
@ -34,6 +35,10 @@ class CompositeLayupTaskActivity :
|
||||
private val stepSeqFromIntent: Int by lazy {
|
||||
intent.getIntExtra(EXTRA_STEP_SEQ, 0)
|
||||
}
|
||||
private val taskDetailFromIntent: CompositeLayupTaskDetail? by lazy {
|
||||
@Suppress("DEPRECATION")
|
||||
intent.getSerializableExtra(EXTRA_TASK_DETAIL) as? CompositeLayupTaskDetail
|
||||
}
|
||||
|
||||
private var isPhoto = false
|
||||
private var isCaptureInFlight = false
|
||||
@ -94,6 +99,7 @@ class CompositeLayupTaskActivity :
|
||||
putExtra(CompositeLayupResultActivity.EXTRA_TOTAL_STEPS, viewModel.totalSteps)
|
||||
putExtra(CompositeLayupResultActivity.EXTRA_DIRECTION, currentDetail?.direction.orEmpty())
|
||||
putExtra(CompositeLayupResultActivity.EXTRA_VACUUM, currentDetail?.vacuum.orEmpty())
|
||||
putExtra(CompositeLayupResultActivity.EXTRA_TASK_DETAIL, taskDetail)
|
||||
})
|
||||
finish()
|
||||
}
|
||||
@ -119,6 +125,8 @@ class CompositeLayupTaskActivity :
|
||||
}
|
||||
if (taskNoFromIntent.isBlank()) {
|
||||
binding.hint.text = "任务编号缺失"
|
||||
} else if (taskDetailFromIntent != null) {
|
||||
viewModel.bindCachedTaskDetail(taskDetailFromIntent!!, stepSeqFromIntent.takeIf { it > 0 })
|
||||
} else {
|
||||
viewModel.loadTaskDetail(taskNoFromIntent, stepSeqFromIntent.takeIf { it > 0 })
|
||||
}
|
||||
@ -189,5 +197,6 @@ class CompositeLayupTaskActivity :
|
||||
companion object {
|
||||
const val EXTRA_TASK_NO = "extra_task_no"
|
||||
const val EXTRA_STEP_SEQ = "extra_step_seq"
|
||||
const val EXTRA_TASK_DETAIL = "extra_task_detail"
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,6 +60,11 @@ class CompositeLayupTaskVM : BaseListViewModel<ItemItem>() {
|
||||
disposables.add(disposable)
|
||||
}
|
||||
|
||||
fun bindCachedTaskDetail(detail: CompositeLayupTaskDetail, stepOverride: Int? = null) {
|
||||
bindTaskDetail(detail, stepOverride)
|
||||
taskDetailError.value = ""
|
||||
}
|
||||
|
||||
fun recognize(photoPath: String) {
|
||||
val file = File(photoPath)
|
||||
if (!file.exists()) {
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户