From 96303ebc35bd73010d02e4e9ad6f80227b281c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Tue, 14 Apr 2026 21:57:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(spraying):=20=E4=BC=98=E5=8C=96=E5=96=B7?= =?UTF-8?q?=E6=B6=82OCR=E5=92=8C=E7=BB=93=E6=9E=9C=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在拍照前取消倒计时避免内存泄漏 - 将结果页面倒计时从10秒调整为5秒 - 结果页面跳转后自动关闭当前页面释放资源 - 更新结果页面使用专用的ViewModel和水平滚动布局 - 替换适配器使用菜单项布局并添加拍照、结束任务等功能选项 - 移除背景颜色配置文件中的填充色属性 - 新增照片选择器正常状态背景和菜单项布局文件 --- .../brain/glass/ui/SprayingOCRActivity.kt | 5 +- .../brain/glass/ui/SprayingResultActivity.kt | 37 ++++++--- .../brain/glass/viewmodel/SprayingResultVM.kt | 18 +++++ app/src/main/res/drawable/bg_normal.xml | 1 - app/src/main/res/drawable/bg_photo_l.xml | 5 ++ app/src/main/res/drawable/bg_photo_normal.xml | 5 ++ app/src/main/res/drawable/bg_selected.xml | 1 - app/src/main/res/layout/item_menu.xml | 77 +++++++++++++++++++ 8 files changed, 136 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/com/nova/brain/glass/viewmodel/SprayingResultVM.kt create mode 100644 app/src/main/res/drawable/bg_photo_l.xml create mode 100644 app/src/main/res/drawable/bg_photo_normal.xml create mode 100644 app/src/main/res/layout/item_menu.xml 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 3e3e039..5ef06d2 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 @@ -53,6 +53,8 @@ class SprayingOCRActivity : } fun takePhoto() { + resultCountdown?.cancel() + resultCountdown = null val fileName = "test_${System.currentTimeMillis()}.png" val publicPicturesDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) val file = File(publicPicturesDir, fileName) @@ -137,7 +139,7 @@ class SprayingOCRActivity : private fun restartResultCountdown(path: String) { resultCountdown?.cancel() - resultCountdown = object : CountDownTimer(10_000, 1_000) { + resultCountdown = object : CountDownTimer(5_000, 1_000) { override fun onTick(millisUntilFinished: Long) { } @@ -145,6 +147,7 @@ class SprayingOCRActivity : startActivity(Intent(this@SprayingOCRActivity, SprayingResultActivity::class.java).apply { putExtra("path", path) }) + finish() } }.start() } 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 b52f86c..f40515a 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 @@ -6,12 +6,11 @@ import android.os.Environment import android.view.WindowManager import androidx.recyclerview.widget.RecyclerView import com.nova.brain.glass.R -import com.nova.brain.glass.databinding.ActivitySprayingBinding import com.nova.brain.glass.databinding.ActivitySprayingResultBinding 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.viewmodel.SprayingVM +import com.nova.brain.glass.viewmodel.SprayingResultVM import com.rokid.security.glass3.open.sdk.GlassSdk import com.rokid.security.glass3.sdk.base.data.media.PhotoResolution import com.rokid.security.system.server.media.callback.PhotoFileCallback @@ -25,11 +24,11 @@ import java.io.File import java.util.UUID class SprayingResultActivity : - BaseListFormLayoutNormalActivity() { + BaseListFormLayoutNormalActivity() { override fun getLayoutId(): Int = R.layout.activity_spraying_result override fun fullscreen(): Boolean = true - override fun getRecyclerOrientation(): Int = RecyclerView.VERTICAL + override fun getRecyclerOrientation(): Int = RecyclerView.HORIZONTAL private val listener = object : OfflineCmdListener { override fun onOfflineCmd(cmd: String) { @@ -85,9 +84,12 @@ class SprayingResultActivity : "相机异常".showMessage() } } else { - startActivity(Intent(this@SprayingResultActivity, SprayingOCRActivity::class.java).apply { - putExtra("path", path) - }) + startActivity( + Intent( + this@SprayingResultActivity, SprayingOCRActivity::class.java + ).apply { + putExtra("path", path) + }) finish() } } @@ -111,18 +113,33 @@ class SprayingResultActivity : } private var isPhoto = false - private val adapter = object : CommonPagedAdapter(R.layout.item_photo) { + private val adapter = object : CommonPagedAdapter(R.layout.item_menu) { override fun convert(holder: ViewHolder, item: ItemItem, position: Int) { - holder + holder.setText( + when (position) { + 1 -> R.id.text + else -> R.id.text2 + }, item.text + ) + .setVisibility(when (position) { + 1 -> R.id.da + else -> R.id.xiao + },true) .setClickListener(R.id.photo) { when (item.text) { - "拍照" -> { + "继续拍摄" -> { runOnUiThread { binding.hint.text = "拍照中,请稍后..." } isPhoto = true takePhoto() } + + "结束任务" -> { + } + + "人工更正结果" -> { + } } } } diff --git a/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingResultVM.kt b/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingResultVM.kt new file mode 100644 index 0000000..50f63c0 --- /dev/null +++ b/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingResultVM.kt @@ -0,0 +1,18 @@ +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 SprayingResultVM: BaseListViewModel() { + override fun loadData( + page: Int, + onResponse: Response + ) { + onResponse.onResponse(arrayListOf().apply { + add(ItemItem("继续拍摄")) + add(ItemItem("结束任务")) + add(ItemItem("人工更正结果")) + }) + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_normal.xml b/app/src/main/res/drawable/bg_normal.xml index aaf1996..64a02c5 100644 --- a/app/src/main/res/drawable/bg_normal.xml +++ b/app/src/main/res/drawable/bg_normal.xml @@ -1,7 +1,6 @@ - diff --git a/app/src/main/res/drawable/bg_photo_l.xml b/app/src/main/res/drawable/bg_photo_l.xml new file mode 100644 index 0000000..ad07b53 --- /dev/null +++ b/app/src/main/res/drawable/bg_photo_l.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_photo_normal.xml b/app/src/main/res/drawable/bg_photo_normal.xml new file mode 100644 index 0000000..a3eacad --- /dev/null +++ b/app/src/main/res/drawable/bg_photo_normal.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable/bg_selected.xml b/app/src/main/res/drawable/bg_selected.xml index 6ac30e8..92af70f 100644 --- a/app/src/main/res/drawable/bg_selected.xml +++ b/app/src/main/res/drawable/bg_selected.xml @@ -1,7 +1,6 @@ - diff --git a/app/src/main/res/layout/item_menu.xml b/app/src/main/res/layout/item_menu.xml new file mode 100644 index 0000000..e4971d8 --- /dev/null +++ b/app/src/main/res/layout/item_menu.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + +