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
|
package com.nova.brain.glass.model.data
|
||||||
|
|
||||||
|
import java.io.Serializable
|
||||||
|
|
||||||
data class CompositeLayupDetailItem(
|
data class CompositeLayupDetailItem(
|
||||||
val id: Long = 0,
|
val id: Long = 0,
|
||||||
val taskId: Long = 0,
|
val taskId: Long = 0,
|
||||||
@ -14,7 +16,7 @@ data class CompositeLayupDetailItem(
|
|||||||
val createdBy: String = "",
|
val createdBy: String = "",
|
||||||
val updatedBy: String = "",
|
val updatedBy: String = "",
|
||||||
val isDeleted: Long = 0
|
val isDeleted: Long = 0
|
||||||
)
|
) : Serializable
|
||||||
|
|
||||||
data class CompositeLayupTaskDetail(
|
data class CompositeLayupTaskDetail(
|
||||||
val id: Long = 0,
|
val id: Long = 0,
|
||||||
@ -36,7 +38,7 @@ data class CompositeLayupTaskDetail(
|
|||||||
val updatedBy: String = "",
|
val updatedBy: String = "",
|
||||||
val isDeleted: Long = 0,
|
val isDeleted: Long = 0,
|
||||||
val detailList: List<CompositeLayupDetailItem>? = null
|
val detailList: List<CompositeLayupDetailItem>? = null
|
||||||
)
|
) : Serializable
|
||||||
|
|
||||||
data class CompositeLayupTaskDetailResponse(
|
data class CompositeLayupTaskDetailResponse(
|
||||||
val code: Int = 0,
|
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.OfflineCmdListener
|
||||||
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
|
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
|
||||||
import com.nova.brain.glass.model.ItemItem
|
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.CompositeLayupResultState
|
||||||
import com.nova.brain.glass.viewmodel.CompositeLayupResultVM
|
import com.nova.brain.glass.viewmodel.CompositeLayupResultVM
|
||||||
import com.rokid.security.glass3.sdk.base.data.media.PhotoResolution
|
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 totalSteps: Int by lazy { intent.getIntExtra(EXTRA_TOTAL_STEPS, 1) }
|
||||||
private val direction: String by lazy { intent.getStringExtra(EXTRA_DIRECTION).orEmpty() }
|
private val direction: String by lazy { intent.getStringExtra(EXTRA_DIRECTION).orEmpty() }
|
||||||
private val vacuum: String by lazy { intent.getStringExtra(EXTRA_VACUUM).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 val uiHandler = Handler(Looper.getMainLooper())
|
||||||
|
|
||||||
private var isPhoto = false
|
private var isPhoto = false
|
||||||
@ -260,6 +265,7 @@ class CompositeLayupResultActivity : BaseActivity<ActivityCompositeLayupResultBi
|
|||||||
startActivity(Intent(this, CompositeLayupTaskActivity::class.java).apply {
|
startActivity(Intent(this, CompositeLayupTaskActivity::class.java).apply {
|
||||||
putExtra(CompositeLayupTaskActivity.EXTRA_TASK_NO, taskNo)
|
putExtra(CompositeLayupTaskActivity.EXTRA_TASK_NO, taskNo)
|
||||||
putExtra(CompositeLayupTaskActivity.EXTRA_STEP_SEQ, stepSeq + 1)
|
putExtra(CompositeLayupTaskActivity.EXTRA_STEP_SEQ, stepSeq + 1)
|
||||||
|
putExtra(CompositeLayupTaskActivity.EXTRA_TASK_DETAIL, taskDetail)
|
||||||
})
|
})
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
@ -329,5 +335,6 @@ class CompositeLayupResultActivity : BaseActivity<ActivityCompositeLayupResultBi
|
|||||||
const val EXTRA_TOTAL_STEPS = "extra_total_steps"
|
const val EXTRA_TOTAL_STEPS = "extra_total_steps"
|
||||||
const val EXTRA_DIRECTION = "extra_direction"
|
const val EXTRA_DIRECTION = "extra_direction"
|
||||||
const val EXTRA_VACUUM = "extra_vacuum"
|
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.OfflineCmdListener
|
||||||
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
|
import com.nova.brain.glass.helper.OfflineCmdServiceHelper
|
||||||
import com.nova.brain.glass.model.ItemItem
|
import com.nova.brain.glass.model.ItemItem
|
||||||
|
import com.nova.brain.glass.model.data.CompositeLayupTaskDetail
|
||||||
import com.nova.brain.glass.viewmodel.CompositeLayupTaskVM
|
import com.nova.brain.glass.viewmodel.CompositeLayupTaskVM
|
||||||
import com.rokid.security.glass3.sdk.base.data.media.PhotoResolution
|
import com.rokid.security.glass3.sdk.base.data.media.PhotoResolution
|
||||||
import com.rokid.security.system.server.media.callback.PhotoFileCallback
|
import com.rokid.security.system.server.media.callback.PhotoFileCallback
|
||||||
@ -34,6 +35,10 @@ class CompositeLayupTaskActivity :
|
|||||||
private val stepSeqFromIntent: Int by lazy {
|
private val stepSeqFromIntent: Int by lazy {
|
||||||
intent.getIntExtra(EXTRA_STEP_SEQ, 0)
|
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 isPhoto = false
|
||||||
private var isCaptureInFlight = false
|
private var isCaptureInFlight = false
|
||||||
@ -94,6 +99,7 @@ class CompositeLayupTaskActivity :
|
|||||||
putExtra(CompositeLayupResultActivity.EXTRA_TOTAL_STEPS, viewModel.totalSteps)
|
putExtra(CompositeLayupResultActivity.EXTRA_TOTAL_STEPS, viewModel.totalSteps)
|
||||||
putExtra(CompositeLayupResultActivity.EXTRA_DIRECTION, currentDetail?.direction.orEmpty())
|
putExtra(CompositeLayupResultActivity.EXTRA_DIRECTION, currentDetail?.direction.orEmpty())
|
||||||
putExtra(CompositeLayupResultActivity.EXTRA_VACUUM, currentDetail?.vacuum.orEmpty())
|
putExtra(CompositeLayupResultActivity.EXTRA_VACUUM, currentDetail?.vacuum.orEmpty())
|
||||||
|
putExtra(CompositeLayupResultActivity.EXTRA_TASK_DETAIL, taskDetail)
|
||||||
})
|
})
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
@ -119,6 +125,8 @@ class CompositeLayupTaskActivity :
|
|||||||
}
|
}
|
||||||
if (taskNoFromIntent.isBlank()) {
|
if (taskNoFromIntent.isBlank()) {
|
||||||
binding.hint.text = "任务编号缺失"
|
binding.hint.text = "任务编号缺失"
|
||||||
|
} else if (taskDetailFromIntent != null) {
|
||||||
|
viewModel.bindCachedTaskDetail(taskDetailFromIntent!!, stepSeqFromIntent.takeIf { it > 0 })
|
||||||
} else {
|
} else {
|
||||||
viewModel.loadTaskDetail(taskNoFromIntent, stepSeqFromIntent.takeIf { it > 0 })
|
viewModel.loadTaskDetail(taskNoFromIntent, stepSeqFromIntent.takeIf { it > 0 })
|
||||||
}
|
}
|
||||||
@ -189,5 +197,6 @@ class CompositeLayupTaskActivity :
|
|||||||
companion object {
|
companion object {
|
||||||
const val EXTRA_TASK_NO = "extra_task_no"
|
const val EXTRA_TASK_NO = "extra_task_no"
|
||||||
const val EXTRA_STEP_SEQ = "extra_step_seq"
|
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)
|
disposables.add(disposable)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun bindCachedTaskDetail(detail: CompositeLayupTaskDetail, stepOverride: Int? = null) {
|
||||||
|
bindTaskDetail(detail, stepOverride)
|
||||||
|
taskDetailError.value = ""
|
||||||
|
}
|
||||||
|
|
||||||
fun recognize(photoPath: String) {
|
fun recognize(photoPath: String) {
|
||||||
val file = File(photoPath)
|
val file = File(photoPath)
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户