diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt index dd9306a..fb43a2b 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt @@ -6,7 +6,6 @@ import android.os.Bundle import android.os.Handler import android.os.Message -import android.util.Log import android.view.KeyEvent import android.view.SurfaceHolder import android.view.WindowManager @@ -25,6 +24,7 @@ import com.casic.br.ar.app.utils.LocaleConstant import com.casic.br.ar.app.utils.RuntimeCache import com.casic.br.ar.app.vm.AlarmViewModel +import com.casic.br.ar.app.vm.CheckManifestViewModel import com.casic.br.ar.app.vm.ConfigViewModel import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel @@ -34,7 +34,6 @@ import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToDate import com.pengxh.kt.lite.extensions.timestampToTime -import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -62,9 +61,13 @@ private lateinit var configViewModel: ConfigViewModel private lateinit var imageFileViewModel: ImageFileViewModel private lateinit var alarmViewModel: AlarmViewModel + private lateinit var checkManifestViewModel: CheckManifestViewModel private var mainDicModels: MutableList = ArrayList() + private var sceneDicModels: MutableList = ArrayList() private var isDetectTarget = false private var alarmCode = "" + private var checkItemCount = 0 + private var troubleCount = 0 override fun initOnCreate(savedInstanceState: Bundle?) { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) @@ -107,6 +110,15 @@ } } + //detectedScene转为字典值 + configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] + configViewModel.getDictionaryByCode(this, "securityScene") + configViewModel.dictionary.observe(this) { + if (it.code == 200) { + sceneDicModels = it.data + } + } + imageFileViewModel = ViewModelProvider(this)[ImageFileViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] imageFileViewModel.resultModel.observe(this) { @@ -114,13 +126,19 @@ alarmViewModel.uploadDetectTargetAlarm(context, alarmCode, it.data.toString()) } } + + checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] + checkManifestViewModel.sceneManifestResult.observe(this) { + if (it.code == 200) { + checkItemCount = it.data.size + binding.noCheckCountView.text = "${checkItemCount}项" + } + } } override fun initEvent() { binding.stopCheckButton.setOnClickListener { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } binding.addHiddenTroubleButton.setOnClickListener { @@ -145,11 +163,30 @@ } + private fun stopCheck() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("温馨提示") + .setMessage("所有检查均已完成,共${targetSet.size}项通过,存在${troubleCount}项隐患,是否结束检查?") + .setNegativeButton("取消") + .setPositiveButton("结束检查") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + Intent(context, CheckResultActivity::class.java).also { + stopTaskLauncher.launch(it) + } + } + + override fun onCancelClick() { + + } + }).build().show() + } + override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { if (keyCode == 4) { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } return super.onKeyDown(keyCode, event) } @@ -194,7 +231,6 @@ segmentationOutput.forEach { segmentationResults.add(it.convert2YoloResult(this)) } - Log.d(kTag, "onSegmentation: ${segmentationResults.toJson()}") val detectResults = ArrayList() detectOutput.forEach { @@ -207,6 +243,10 @@ val label = LocaleConstant.CLASS_NAMES_ARRAY[it.type] if (label.isInScene(RuntimeCache.sceneName)) { targetSet.add(label) + lifecycleScope.launch(Dispatchers.Main) { + binding.checkedCountView.text = "${targetSet.size}项" + binding.noCheckCountView.text = "${checkItemCount - targetSet.size}项" + } } } @@ -386,7 +426,6 @@ } override fun onDetect(output: ArrayList) { - Log.d(kTag, "onDetect: ${output.toJson()}") if (output.isEmpty()) { return } @@ -426,12 +465,22 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { + //暂停算法 + yolov8ncnn.onPause() + RuntimeCache.sceneName = scene detectedSceneSet.add(scene) binding.sceneNameView.text = scene - //暂停算法 - yolov8ncnn.onPause() + //获取检查清单数目 + for (dic in sceneDicModels) { + if (dic.name == scene) { + checkManifestViewModel.getCheckManifestByScene( + context, dic.value + ) + return + } + } isDetectTarget = true //调用多模型 @@ -462,6 +511,9 @@ override fun onConfirmClick(file: File) { imageFileViewModel.uploadImage(file) detectedTargetSet.add(target) + + troubleCount++ + binding.troubleCountView.text = "${troubleCount}项" } }).show() } diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt index dd9306a..fb43a2b 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt @@ -6,7 +6,6 @@ import android.os.Bundle import android.os.Handler import android.os.Message -import android.util.Log import android.view.KeyEvent import android.view.SurfaceHolder import android.view.WindowManager @@ -25,6 +24,7 @@ import com.casic.br.ar.app.utils.LocaleConstant import com.casic.br.ar.app.utils.RuntimeCache import com.casic.br.ar.app.vm.AlarmViewModel +import com.casic.br.ar.app.vm.CheckManifestViewModel import com.casic.br.ar.app.vm.ConfigViewModel import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel @@ -34,7 +34,6 @@ import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.extensions.timestampToDate import com.pengxh.kt.lite.extensions.timestampToTime -import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog @@ -62,9 +61,13 @@ private lateinit var configViewModel: ConfigViewModel private lateinit var imageFileViewModel: ImageFileViewModel private lateinit var alarmViewModel: AlarmViewModel + private lateinit var checkManifestViewModel: CheckManifestViewModel private var mainDicModels: MutableList = ArrayList() + private var sceneDicModels: MutableList = ArrayList() private var isDetectTarget = false private var alarmCode = "" + private var checkItemCount = 0 + private var troubleCount = 0 override fun initOnCreate(savedInstanceState: Bundle?) { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) @@ -107,6 +110,15 @@ } } + //detectedScene转为字典值 + configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] + configViewModel.getDictionaryByCode(this, "securityScene") + configViewModel.dictionary.observe(this) { + if (it.code == 200) { + sceneDicModels = it.data + } + } + imageFileViewModel = ViewModelProvider(this)[ImageFileViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] imageFileViewModel.resultModel.observe(this) { @@ -114,13 +126,19 @@ alarmViewModel.uploadDetectTargetAlarm(context, alarmCode, it.data.toString()) } } + + checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] + checkManifestViewModel.sceneManifestResult.observe(this) { + if (it.code == 200) { + checkItemCount = it.data.size + binding.noCheckCountView.text = "${checkItemCount}项" + } + } } override fun initEvent() { binding.stopCheckButton.setOnClickListener { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } binding.addHiddenTroubleButton.setOnClickListener { @@ -145,11 +163,30 @@ } + private fun stopCheck() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("温馨提示") + .setMessage("所有检查均已完成,共${targetSet.size}项通过,存在${troubleCount}项隐患,是否结束检查?") + .setNegativeButton("取消") + .setPositiveButton("结束检查") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + Intent(context, CheckResultActivity::class.java).also { + stopTaskLauncher.launch(it) + } + } + + override fun onCancelClick() { + + } + }).build().show() + } + override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { if (keyCode == 4) { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } return super.onKeyDown(keyCode, event) } @@ -194,7 +231,6 @@ segmentationOutput.forEach { segmentationResults.add(it.convert2YoloResult(this)) } - Log.d(kTag, "onSegmentation: ${segmentationResults.toJson()}") val detectResults = ArrayList() detectOutput.forEach { @@ -207,6 +243,10 @@ val label = LocaleConstant.CLASS_NAMES_ARRAY[it.type] if (label.isInScene(RuntimeCache.sceneName)) { targetSet.add(label) + lifecycleScope.launch(Dispatchers.Main) { + binding.checkedCountView.text = "${targetSet.size}项" + binding.noCheckCountView.text = "${checkItemCount - targetSet.size}项" + } } } @@ -386,7 +426,6 @@ } override fun onDetect(output: ArrayList) { - Log.d(kTag, "onDetect: ${output.toJson()}") if (output.isEmpty()) { return } @@ -426,12 +465,22 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { + //暂停算法 + yolov8ncnn.onPause() + RuntimeCache.sceneName = scene detectedSceneSet.add(scene) binding.sceneNameView.text = scene - //暂停算法 - yolov8ncnn.onPause() + //获取检查清单数目 + for (dic in sceneDicModels) { + if (dic.name == scene) { + checkManifestViewModel.getCheckManifestByScene( + context, dic.value + ) + return + } + } isDetectTarget = true //调用多模型 @@ -462,6 +511,9 @@ override fun onConfirmClick(file: File) { imageFileViewModel.uploadImage(file) detectedTargetSet.add(target) + + troubleCount++ + binding.troubleCountView.text = "${troubleCount}项" } }).show() } diff --git a/app/src/main/res/drawable/ic_check_no.xml b/app/src/main/res/drawable/ic_check_no.xml index ad1de77..1628343 100644 --- a/app/src/main/res/drawable/ic_check_no.xml +++ b/app/src/main/res/drawable/ic_check_no.xml @@ -1,6 +1,6 @@ = ArrayList() + private var sceneDicModels: MutableList = ArrayList() private var isDetectTarget = false private var alarmCode = "" + private var checkItemCount = 0 + private var troubleCount = 0 override fun initOnCreate(savedInstanceState: Bundle?) { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) @@ -107,6 +110,15 @@ } } + //detectedScene转为字典值 + configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] + configViewModel.getDictionaryByCode(this, "securityScene") + configViewModel.dictionary.observe(this) { + if (it.code == 200) { + sceneDicModels = it.data + } + } + imageFileViewModel = ViewModelProvider(this)[ImageFileViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] imageFileViewModel.resultModel.observe(this) { @@ -114,13 +126,19 @@ alarmViewModel.uploadDetectTargetAlarm(context, alarmCode, it.data.toString()) } } + + checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] + checkManifestViewModel.sceneManifestResult.observe(this) { + if (it.code == 200) { + checkItemCount = it.data.size + binding.noCheckCountView.text = "${checkItemCount}项" + } + } } override fun initEvent() { binding.stopCheckButton.setOnClickListener { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } binding.addHiddenTroubleButton.setOnClickListener { @@ -145,11 +163,30 @@ } + private fun stopCheck() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("温馨提示") + .setMessage("所有检查均已完成,共${targetSet.size}项通过,存在${troubleCount}项隐患,是否结束检查?") + .setNegativeButton("取消") + .setPositiveButton("结束检查") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + Intent(context, CheckResultActivity::class.java).also { + stopTaskLauncher.launch(it) + } + } + + override fun onCancelClick() { + + } + }).build().show() + } + override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { if (keyCode == 4) { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } return super.onKeyDown(keyCode, event) } @@ -194,7 +231,6 @@ segmentationOutput.forEach { segmentationResults.add(it.convert2YoloResult(this)) } - Log.d(kTag, "onSegmentation: ${segmentationResults.toJson()}") val detectResults = ArrayList() detectOutput.forEach { @@ -207,6 +243,10 @@ val label = LocaleConstant.CLASS_NAMES_ARRAY[it.type] if (label.isInScene(RuntimeCache.sceneName)) { targetSet.add(label) + lifecycleScope.launch(Dispatchers.Main) { + binding.checkedCountView.text = "${targetSet.size}项" + binding.noCheckCountView.text = "${checkItemCount - targetSet.size}项" + } } } @@ -386,7 +426,6 @@ } override fun onDetect(output: ArrayList) { - Log.d(kTag, "onDetect: ${output.toJson()}") if (output.isEmpty()) { return } @@ -426,12 +465,22 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { + //暂停算法 + yolov8ncnn.onPause() + RuntimeCache.sceneName = scene detectedSceneSet.add(scene) binding.sceneNameView.text = scene - //暂停算法 - yolov8ncnn.onPause() + //获取检查清单数目 + for (dic in sceneDicModels) { + if (dic.name == scene) { + checkManifestViewModel.getCheckManifestByScene( + context, dic.value + ) + return + } + } isDetectTarget = true //调用多模型 @@ -462,6 +511,9 @@ override fun onConfirmClick(file: File) { imageFileViewModel.uploadImage(file) detectedTargetSet.add(target) + + troubleCount++ + binding.troubleCountView.text = "${troubleCount}项" } }).show() } diff --git a/app/src/main/res/drawable/ic_check_no.xml b/app/src/main/res/drawable/ic_check_no.xml index ad1de77..1628343 100644 --- a/app/src/main/res/drawable/ic_check_no.xml +++ b/app/src/main/res/drawable/ic_check_no.xml @@ -1,6 +1,6 @@ = ArrayList() + private var sceneDicModels: MutableList = ArrayList() private var isDetectTarget = false private var alarmCode = "" + private var checkItemCount = 0 + private var troubleCount = 0 override fun initOnCreate(savedInstanceState: Bundle?) { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) @@ -107,6 +110,15 @@ } } + //detectedScene转为字典值 + configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] + configViewModel.getDictionaryByCode(this, "securityScene") + configViewModel.dictionary.observe(this) { + if (it.code == 200) { + sceneDicModels = it.data + } + } + imageFileViewModel = ViewModelProvider(this)[ImageFileViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] imageFileViewModel.resultModel.observe(this) { @@ -114,13 +126,19 @@ alarmViewModel.uploadDetectTargetAlarm(context, alarmCode, it.data.toString()) } } + + checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] + checkManifestViewModel.sceneManifestResult.observe(this) { + if (it.code == 200) { + checkItemCount = it.data.size + binding.noCheckCountView.text = "${checkItemCount}项" + } + } } override fun initEvent() { binding.stopCheckButton.setOnClickListener { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } binding.addHiddenTroubleButton.setOnClickListener { @@ -145,11 +163,30 @@ } + private fun stopCheck() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("温馨提示") + .setMessage("所有检查均已完成,共${targetSet.size}项通过,存在${troubleCount}项隐患,是否结束检查?") + .setNegativeButton("取消") + .setPositiveButton("结束检查") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + Intent(context, CheckResultActivity::class.java).also { + stopTaskLauncher.launch(it) + } + } + + override fun onCancelClick() { + + } + }).build().show() + } + override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { if (keyCode == 4) { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } return super.onKeyDown(keyCode, event) } @@ -194,7 +231,6 @@ segmentationOutput.forEach { segmentationResults.add(it.convert2YoloResult(this)) } - Log.d(kTag, "onSegmentation: ${segmentationResults.toJson()}") val detectResults = ArrayList() detectOutput.forEach { @@ -207,6 +243,10 @@ val label = LocaleConstant.CLASS_NAMES_ARRAY[it.type] if (label.isInScene(RuntimeCache.sceneName)) { targetSet.add(label) + lifecycleScope.launch(Dispatchers.Main) { + binding.checkedCountView.text = "${targetSet.size}项" + binding.noCheckCountView.text = "${checkItemCount - targetSet.size}项" + } } } @@ -386,7 +426,6 @@ } override fun onDetect(output: ArrayList) { - Log.d(kTag, "onDetect: ${output.toJson()}") if (output.isEmpty()) { return } @@ -426,12 +465,22 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { + //暂停算法 + yolov8ncnn.onPause() + RuntimeCache.sceneName = scene detectedSceneSet.add(scene) binding.sceneNameView.text = scene - //暂停算法 - yolov8ncnn.onPause() + //获取检查清单数目 + for (dic in sceneDicModels) { + if (dic.name == scene) { + checkManifestViewModel.getCheckManifestByScene( + context, dic.value + ) + return + } + } isDetectTarget = true //调用多模型 @@ -462,6 +511,9 @@ override fun onConfirmClick(file: File) { imageFileViewModel.uploadImage(file) detectedTargetSet.add(target) + + troubleCount++ + binding.troubleCountView.text = "${troubleCount}项" } }).show() } diff --git a/app/src/main/res/drawable/ic_check_no.xml b/app/src/main/res/drawable/ic_check_no.xml index ad1de77..1628343 100644 --- a/app/src/main/res/drawable/ic_check_no.xml +++ b/app/src/main/res/drawable/ic_check_no.xml @@ -1,6 +1,6 @@ = ArrayList() + private var sceneDicModels: MutableList = ArrayList() private var isDetectTarget = false private var alarmCode = "" + private var checkItemCount = 0 + private var troubleCount = 0 override fun initOnCreate(savedInstanceState: Bundle?) { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) @@ -107,6 +110,15 @@ } } + //detectedScene转为字典值 + configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java] + configViewModel.getDictionaryByCode(this, "securityScene") + configViewModel.dictionary.observe(this) { + if (it.code == 200) { + sceneDicModels = it.data + } + } + imageFileViewModel = ViewModelProvider(this)[ImageFileViewModel::class.java] alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] imageFileViewModel.resultModel.observe(this) { @@ -114,13 +126,19 @@ alarmViewModel.uploadDetectTargetAlarm(context, alarmCode, it.data.toString()) } } + + checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java] + checkManifestViewModel.sceneManifestResult.observe(this) { + if (it.code == 200) { + checkItemCount = it.data.size + binding.noCheckCountView.text = "${checkItemCount}项" + } + } } override fun initEvent() { binding.stopCheckButton.setOnClickListener { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } binding.addHiddenTroubleButton.setOnClickListener { @@ -145,11 +163,30 @@ } + private fun stopCheck() { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("温馨提示") + .setMessage("所有检查均已完成,共${targetSet.size}项通过,存在${troubleCount}项隐患,是否结束检查?") + .setNegativeButton("取消") + .setPositiveButton("结束检查") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + Intent(context, CheckResultActivity::class.java).also { + stopTaskLauncher.launch(it) + } + } + + override fun onCancelClick() { + + } + }).build().show() + } + override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { if (keyCode == 4) { - Intent(this, CheckResultActivity::class.java).also { - stopTaskLauncher.launch(it) - } + stopCheck() } return super.onKeyDown(keyCode, event) } @@ -194,7 +231,6 @@ segmentationOutput.forEach { segmentationResults.add(it.convert2YoloResult(this)) } - Log.d(kTag, "onSegmentation: ${segmentationResults.toJson()}") val detectResults = ArrayList() detectOutput.forEach { @@ -207,6 +243,10 @@ val label = LocaleConstant.CLASS_NAMES_ARRAY[it.type] if (label.isInScene(RuntimeCache.sceneName)) { targetSet.add(label) + lifecycleScope.launch(Dispatchers.Main) { + binding.checkedCountView.text = "${targetSet.size}项" + binding.noCheckCountView.text = "${checkItemCount - targetSet.size}项" + } } } @@ -386,7 +426,6 @@ } override fun onDetect(output: ArrayList) { - Log.d(kTag, "onDetect: ${output.toJson()}") if (output.isEmpty()) { return } @@ -426,12 +465,22 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { + //暂停算法 + yolov8ncnn.onPause() + RuntimeCache.sceneName = scene detectedSceneSet.add(scene) binding.sceneNameView.text = scene - //暂停算法 - yolov8ncnn.onPause() + //获取检查清单数目 + for (dic in sceneDicModels) { + if (dic.name == scene) { + checkManifestViewModel.getCheckManifestByScene( + context, dic.value + ) + return + } + } isDetectTarget = true //调用多模型 @@ -462,6 +511,9 @@ override fun onConfirmClick(file: File) { imageFileViewModel.uploadImage(file) detectedTargetSet.add(target) + + troubleCount++ + binding.troubleCountView.text = "${troubleCount}项" } }).show() } diff --git a/app/src/main/res/drawable/ic_check_no.xml b/app/src/main/res/drawable/ic_check_no.xml index ad1de77..1628343 100644 --- a/app/src/main/res/drawable/ic_check_no.xml +++ b/app/src/main/res/drawable/ic_check_no.xml @@ -1,6 +1,6 @@ -