diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f329398..3658d39 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -87,6 +87,9 @@
+
() {
OfflineCmdServiceHelper.addOnLineListener(listener)
}
- override fun onDestroy() {
- super.onDestroy()
+
+ override fun onPause() {
+ super.onPause()
OfflineCmdServiceHelper.removeOnLineListener(listener)
}
}
diff --git a/app/src/main/java/com/nova/brain/glass/ui/InspectionActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/InspectionActivity.kt
index 9cd31a2..4b3b9e4 100644
--- a/app/src/main/java/com/nova/brain/glass/ui/InspectionActivity.kt
+++ b/app/src/main/java/com/nova/brain/glass/ui/InspectionActivity.kt
@@ -38,11 +38,15 @@ class InspectionActivity : BaseListFormLayoutNormalActivity() {
+ override fun getLayoutId(): Int = R.layout.activity_spraying_manual_result
+ override fun fullscreen(): Boolean = true
+
+ override fun getRecyclerOrientation(): Int = RecyclerView.VERTICAL
+
+ private val listener = object : OfflineCmdListener {
+ override fun onOfflineCmd(cmd: String) {
+ runOnUiThread {
+ when (cmd) {
+ "合格", "改为合格", "设置为合格" -> chooseResult(RESULT_PASS)
+ "不合格", "改为不合格", "设置为不合格" -> chooseResult(RESULT_FAIL)
+ "取消", "取消修改", "返回", "退回", "退出" -> finish()
+ }
+ }
+ }
+ }
+
+ override fun initData() {
+ super.initData()
+ OfflineCmdServiceHelper.addOnLineListener(listener)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ OfflineCmdServiceHelper.removeOnLineListener(listener)
+ }
+
+ private val adapter = object : CommonPagedAdapter(R.layout.item_manual_result_action) {
+ override fun convert(holder: ViewHolder, item: ItemItem, position: Int) {
+ holder
+ .setText(R.id.text, item.text)
+ .setClickListener(R.id.actionRoot) {
+ when (item.text) {
+ "合格" -> chooseResult(RESULT_PASS)
+ "不合格" -> chooseResult(RESULT_FAIL)
+ "取消" -> finish()
+ }
+ }
+ }
+ }
+
+ override fun adapter(): BasePagedAdapter = adapter
+
+ private fun chooseResult(result: String) {
+ setResult(Activity.RESULT_OK, Intent().apply {
+ putExtra(EXTRA_MANUAL_RESULT, result)
+ })
+ finish()
+ }
+
+ companion object {
+ const val EXTRA_MANUAL_RESULT = "extra_manual_result"
+ const val RESULT_PASS = "pass"
+ const val RESULT_FAIL = "fail"
+ }
+}
diff --git a/app/src/main/java/com/nova/brain/glass/ui/SprayingOCRActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/SprayingOCRActivity.kt
index 5ef06d2..b7b55e4 100644
--- a/app/src/main/java/com/nova/brain/glass/ui/SprayingOCRActivity.kt
+++ b/app/src/main/java/com/nova/brain/glass/ui/SprayingOCRActivity.kt
@@ -97,15 +97,19 @@ class SprayingOCRActivity :
override fun initData() {
super.initData()
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
- OfflineCmdServiceHelper.addOnLineListener(listener)
- GlassSdk.getGlassMediaService()?.addPhotoCallback(mPhotoFileCallback)
intent.getStringExtra("path")?.apply {
showPhoto(this)
}
}
- override fun onDestroy() {
- super.onDestroy()
+ override fun onResume() {
+ super.onResume()
+
+ OfflineCmdServiceHelper.addOnLineListener(listener)
+ GlassSdk.getGlassMediaService()?.addPhotoCallback(mPhotoFileCallback)
+ }
+ override fun onPause() {
+ super.onPause()
resultCountdown?.cancel()
OfflineCmdServiceHelper.removeOnLineListener(listener)
GlassSdk.getGlassMediaService()?.removePhotoCallback(mPhotoFileCallback)
diff --git a/app/src/main/java/com/nova/brain/glass/ui/SprayingResultActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/SprayingResultActivity.kt
index 9c4238c..36595e7 100644
--- a/app/src/main/java/com/nova/brain/glass/ui/SprayingResultActivity.kt
+++ b/app/src/main/java/com/nova/brain/glass/ui/SprayingResultActivity.kt
@@ -1,10 +1,12 @@
package com.nova.brain.glass.ui
+import android.app.Activity
import android.content.Intent
import android.graphics.BitmapFactory
import android.graphics.Paint
import android.os.Environment
import android.view.WindowManager
+import androidx.activity.result.contract.ActivityResultContracts
import androidx.recyclerview.widget.RecyclerView
import com.nova.brain.glass.R
import com.nova.brain.glass.databinding.ActivitySprayingResultBinding
@@ -31,6 +33,24 @@ class SprayingResultActivity :
override fun getRecyclerOrientation(): Int = RecyclerView.HORIZONTAL
private var status = true
+ private val manualResultLauncher =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
+ if (result.resultCode != Activity.RESULT_OK) {
+ return@registerForActivityResult
+ }
+ when (result.data?.getStringExtra(SprayingManualResultActivity.EXTRA_MANUAL_RESULT)) {
+ SprayingManualResultActivity.RESULT_PASS -> {
+ status = true
+ setStatusImage()
+ }
+
+ SprayingManualResultActivity.RESULT_FAIL -> {
+ status = false
+ setStatusImage()
+ }
+ }
+ }
+
private val listener = object : OfflineCmdListener {
override fun onOfflineCmd(cmd: String) {
runOnUiThread {
@@ -66,7 +86,7 @@ class SprayingResultActivity :
}
fun rest() {
-
+ manualResultLauncher.launch(Intent(this, SprayingManualResultActivity::class.java))
}
private val photoCallbackId = UUID.randomUUID().toString()
@@ -108,31 +128,42 @@ class SprayingResultActivity :
override fun initData() {
super.initData()
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
- OfflineCmdServiceHelper.addOnLineListener(listener)
- GlassSdk.getGlassMediaService()?.addPhotoCallback(mPhotoFileCallback)
intent.getStringExtra("path")?.apply {
binding.iv.setImageBitmap(BitmapFactory.decodeFile(this))
setStatusImage()
}
}
-fun setStatusImage(){
- binding.tvTaskHeader.text = if (status) "OCR识别结果:合格" else "OCR识别结果:不合格"
- binding.status.setImageResource(if (status) R.mipmap.ocr_true else R.mipmap.ocr_false)
- if (status){
- binding.value1.paintFlags = binding.value1.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
- binding.value2.paintFlags = binding.value2.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
- binding.value3.paintFlags = binding.value3.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
- }else{
- binding.value1.paintFlags = binding.value1.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
- binding.value2.paintFlags = binding.value2.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
- binding.value3.paintFlags = binding.value3.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
+
+ fun setStatusImage() {
+ binding.tvTaskHeader.text = if (status) "OCR识别结果:合格" else "OCR识别结果:不合格"
+ binding.status.setImageResource(if (status) R.mipmap.ocr_true else R.mipmap.ocr_false)
+ if (status) {
+ binding.value1.paintFlags =
+ binding.value1.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
+ binding.value2.paintFlags =
+ binding.value2.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
+ binding.value3.paintFlags =
+ binding.value3.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
+ } else {
+ binding.value1.paintFlags = binding.value1.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
+ binding.value2.paintFlags = binding.value2.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
+ binding.value3.paintFlags = binding.value3.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
+ }
}
-}
- override fun onDestroy() {
- super.onDestroy()
+
+ override fun onResume() {
+ super.onResume()
+ OfflineCmdServiceHelper.addOnLineListener(listener)
+ GlassSdk.getGlassMediaService()?.addPhotoCallback(mPhotoFileCallback)
+ }
+ override fun onPause() {
+ super.onPause()
OfflineCmdServiceHelper.removeOnLineListener(listener)
GlassSdk.getGlassMediaService()?.removePhotoCallback(mPhotoFileCallback)
}
+ override fun onDestroy() {
+ super.onDestroy()
+ }
private var isPhoto = false
private val adapter = object : CommonPagedAdapter(R.layout.item_menu) {
diff --git a/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt
index 7b2667c..3933839 100644
--- a/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt
+++ b/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt
@@ -172,6 +172,7 @@ class TaskListActivity :
override fun onResume() {
super.onResume()
+ LogHelper.d(">>>>>>>>>>>>--------------------")
OfflineCmdServiceHelper.addOnLineListener(offlineCmdListener)
}
diff --git a/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingManualResultVM.kt b/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingManualResultVM.kt
new file mode 100644
index 0000000..8f8b2e9
--- /dev/null
+++ b/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingManualResultVM.kt
@@ -0,0 +1,20 @@
+package com.nova.brain.glass.viewmodel
+
+import com.nova.brain.glass.model.ItemItem
+import com.xuqm.base.viewmodel.BaseListViewModel
+import com.xuqm.base.viewmodel.callback.Response
+
+class SprayingManualResultVM : BaseListViewModel() {
+ override fun loadData(
+ page: Int,
+ onResponse: Response
+ ) {
+ onResponse.onResponse(
+ arrayListOf().apply {
+ add(ItemItem("合格"))
+ add(ItemItem("不合格"))
+ add(ItemItem("取消"))
+ }
+ )
+ }
+}
diff --git a/app/src/main/res/layout/activity_spraying_manual_result.xml b/app/src/main/res/layout/activity_spraying_manual_result.xml
new file mode 100644
index 0000000..c37a56a
--- /dev/null
+++ b/app/src/main/res/layout/activity_spraying_manual_result.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_manual_result_action.xml b/app/src/main/res/layout/item_manual_result_action.xml
new file mode 100644
index 0000000..ff7493e
--- /dev/null
+++ b/app/src/main/res/layout/item_manual_result_action.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+