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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } 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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt index 6c614dd..a9ee287 100644 --- a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt +++ b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt @@ -103,7 +103,10 @@ dismiss() } - binding.cancelButton.setOnClickListener { dismiss() } + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } } fun initDialogContentView(listener: OnDialogButtonClickListener): AddHiddenTroubleDialog { @@ -116,5 +119,7 @@ mainType: DictionaryModel.DataModel, subType: DictionaryModel.DataModel, troubleName: String, troubleContent: String ) + + fun onCancelClick() } } \ No newline at end of file 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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt index 6c614dd..a9ee287 100644 --- a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt +++ b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt @@ -103,7 +103,10 @@ dismiss() } - binding.cancelButton.setOnClickListener { dismiss() } + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } } fun initDialogContentView(listener: OnDialogButtonClickListener): AddHiddenTroubleDialog { @@ -116,5 +119,7 @@ mainType: DictionaryModel.DataModel, subType: DictionaryModel.DataModel, troubleName: String, troubleContent: String ) + + fun onCancelClick() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt new file mode 100644 index 0000000..c383773 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt @@ -0,0 +1,43 @@ +package com.casic.br.ar.app.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import com.casic.br.ar.app.databinding.DialogCheckItemBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams + +class CheckItemDialog(context: Context) : Dialog(context) { + + private val kTag = "CheckItemDialog" + private val binding: DialogCheckItemBinding by binding() + private lateinit var item: String + private lateinit var listener: OnDialogButtonClickListener + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initDialogLayoutParams(0.8f) + + binding.checkPassButton.setOnClickListener { + listener.onCheckPassClick() + dismiss() + } + + binding.haveTroubleButton.setOnClickListener { + listener.onHaveTroubleClick() + dismiss() + } + } + + fun updateCheckItemView(item: String, listener: OnDialogButtonClickListener): CheckItemDialog { + this.item = item + this.listener = listener + binding.messageView.text = item + return this + } + + interface OnDialogButtonClickListener { + fun onCheckPassClick() + fun onHaveTroubleClick() + } +} \ No newline at end of file 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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt index 6c614dd..a9ee287 100644 --- a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt +++ b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt @@ -103,7 +103,10 @@ dismiss() } - binding.cancelButton.setOnClickListener { dismiss() } + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } } fun initDialogContentView(listener: OnDialogButtonClickListener): AddHiddenTroubleDialog { @@ -116,5 +119,7 @@ mainType: DictionaryModel.DataModel, subType: DictionaryModel.DataModel, troubleName: String, troubleContent: String ) + + fun onCancelClick() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt new file mode 100644 index 0000000..c383773 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt @@ -0,0 +1,43 @@ +package com.casic.br.ar.app.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import com.casic.br.ar.app.databinding.DialogCheckItemBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams + +class CheckItemDialog(context: Context) : Dialog(context) { + + private val kTag = "CheckItemDialog" + private val binding: DialogCheckItemBinding by binding() + private lateinit var item: String + private lateinit var listener: OnDialogButtonClickListener + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initDialogLayoutParams(0.8f) + + binding.checkPassButton.setOnClickListener { + listener.onCheckPassClick() + dismiss() + } + + binding.haveTroubleButton.setOnClickListener { + listener.onHaveTroubleClick() + dismiss() + } + } + + fun updateCheckItemView(item: String, listener: OnDialogButtonClickListener): CheckItemDialog { + this.item = item + this.listener = listener + binding.messageView.text = item + return this + } + + interface OnDialogButtonClickListener { + fun onCheckPassClick() + fun onHaveTroubleClick() + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_25.xml b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml new file mode 100644 index 0000000..a08ba62 --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + 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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt index 6c614dd..a9ee287 100644 --- a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt +++ b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt @@ -103,7 +103,10 @@ dismiss() } - binding.cancelButton.setOnClickListener { dismiss() } + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } } fun initDialogContentView(listener: OnDialogButtonClickListener): AddHiddenTroubleDialog { @@ -116,5 +119,7 @@ mainType: DictionaryModel.DataModel, subType: DictionaryModel.DataModel, troubleName: String, troubleContent: String ) + + fun onCancelClick() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt new file mode 100644 index 0000000..c383773 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt @@ -0,0 +1,43 @@ +package com.casic.br.ar.app.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import com.casic.br.ar.app.databinding.DialogCheckItemBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams + +class CheckItemDialog(context: Context) : Dialog(context) { + + private val kTag = "CheckItemDialog" + private val binding: DialogCheckItemBinding by binding() + private lateinit var item: String + private lateinit var listener: OnDialogButtonClickListener + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initDialogLayoutParams(0.8f) + + binding.checkPassButton.setOnClickListener { + listener.onCheckPassClick() + dismiss() + } + + binding.haveTroubleButton.setOnClickListener { + listener.onHaveTroubleClick() + dismiss() + } + } + + fun updateCheckItemView(item: String, listener: OnDialogButtonClickListener): CheckItemDialog { + this.item = item + this.listener = listener + binding.messageView.text = item + return this + } + + interface OnDialogButtonClickListener { + fun onCheckPassClick() + fun onHaveTroubleClick() + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_25.xml b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml new file mode 100644 index 0000000..a08ba62 --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml b/app/src/main/res/drawable/button_dialog_selector_purple_5.xml deleted file mode 100644 index ece8881..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file 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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt index 6c614dd..a9ee287 100644 --- a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt +++ b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt @@ -103,7 +103,10 @@ dismiss() } - binding.cancelButton.setOnClickListener { dismiss() } + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } } fun initDialogContentView(listener: OnDialogButtonClickListener): AddHiddenTroubleDialog { @@ -116,5 +119,7 @@ mainType: DictionaryModel.DataModel, subType: DictionaryModel.DataModel, troubleName: String, troubleContent: String ) + + fun onCancelClick() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt new file mode 100644 index 0000000..c383773 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt @@ -0,0 +1,43 @@ +package com.casic.br.ar.app.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import com.casic.br.ar.app.databinding.DialogCheckItemBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams + +class CheckItemDialog(context: Context) : Dialog(context) { + + private val kTag = "CheckItemDialog" + private val binding: DialogCheckItemBinding by binding() + private lateinit var item: String + private lateinit var listener: OnDialogButtonClickListener + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initDialogLayoutParams(0.8f) + + binding.checkPassButton.setOnClickListener { + listener.onCheckPassClick() + dismiss() + } + + binding.haveTroubleButton.setOnClickListener { + listener.onHaveTroubleClick() + dismiss() + } + } + + fun updateCheckItemView(item: String, listener: OnDialogButtonClickListener): CheckItemDialog { + this.item = item + this.listener = listener + binding.messageView.text = item + return this + } + + interface OnDialogButtonClickListener { + fun onCheckPassClick() + fun onHaveTroubleClick() + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_25.xml b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml new file mode 100644 index 0000000..a08ba62 --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml b/app/src/main/res/drawable/button_dialog_selector_purple_5.xml deleted file mode 100644 index ece8881..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_red_25.xml b/app/src/main/res/drawable/button_dialog_selector_red_25.xml new file mode 100644 index 0000000..ade797e --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_red_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + 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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt index 6c614dd..a9ee287 100644 --- a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt +++ b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt @@ -103,7 +103,10 @@ dismiss() } - binding.cancelButton.setOnClickListener { dismiss() } + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } } fun initDialogContentView(listener: OnDialogButtonClickListener): AddHiddenTroubleDialog { @@ -116,5 +119,7 @@ mainType: DictionaryModel.DataModel, subType: DictionaryModel.DataModel, troubleName: String, troubleContent: String ) + + fun onCancelClick() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt new file mode 100644 index 0000000..c383773 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt @@ -0,0 +1,43 @@ +package com.casic.br.ar.app.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import com.casic.br.ar.app.databinding.DialogCheckItemBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams + +class CheckItemDialog(context: Context) : Dialog(context) { + + private val kTag = "CheckItemDialog" + private val binding: DialogCheckItemBinding by binding() + private lateinit var item: String + private lateinit var listener: OnDialogButtonClickListener + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initDialogLayoutParams(0.8f) + + binding.checkPassButton.setOnClickListener { + listener.onCheckPassClick() + dismiss() + } + + binding.haveTroubleButton.setOnClickListener { + listener.onHaveTroubleClick() + dismiss() + } + } + + fun updateCheckItemView(item: String, listener: OnDialogButtonClickListener): CheckItemDialog { + this.item = item + this.listener = listener + binding.messageView.text = item + return this + } + + interface OnDialogButtonClickListener { + fun onCheckPassClick() + fun onHaveTroubleClick() + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_25.xml b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml new file mode 100644 index 0000000..a08ba62 --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml b/app/src/main/res/drawable/button_dialog_selector_purple_5.xml deleted file mode 100644 index ece8881..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_red_25.xml b/app/src/main/res/drawable/button_dialog_selector_red_25.xml new file mode 100644 index 0000000..ade797e --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_red_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_red_5.xml b/app/src/main/res/drawable/button_dialog_selector_red_5.xml deleted file mode 100644 index a19439e..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_red_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file 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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt index 6c614dd..a9ee287 100644 --- a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt +++ b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt @@ -103,7 +103,10 @@ dismiss() } - binding.cancelButton.setOnClickListener { dismiss() } + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } } fun initDialogContentView(listener: OnDialogButtonClickListener): AddHiddenTroubleDialog { @@ -116,5 +119,7 @@ mainType: DictionaryModel.DataModel, subType: DictionaryModel.DataModel, troubleName: String, troubleContent: String ) + + fun onCancelClick() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt new file mode 100644 index 0000000..c383773 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt @@ -0,0 +1,43 @@ +package com.casic.br.ar.app.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import com.casic.br.ar.app.databinding.DialogCheckItemBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams + +class CheckItemDialog(context: Context) : Dialog(context) { + + private val kTag = "CheckItemDialog" + private val binding: DialogCheckItemBinding by binding() + private lateinit var item: String + private lateinit var listener: OnDialogButtonClickListener + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initDialogLayoutParams(0.8f) + + binding.checkPassButton.setOnClickListener { + listener.onCheckPassClick() + dismiss() + } + + binding.haveTroubleButton.setOnClickListener { + listener.onHaveTroubleClick() + dismiss() + } + } + + fun updateCheckItemView(item: String, listener: OnDialogButtonClickListener): CheckItemDialog { + this.item = item + this.listener = listener + binding.messageView.text = item + return this + } + + interface OnDialogButtonClickListener { + fun onCheckPassClick() + fun onHaveTroubleClick() + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_25.xml b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml new file mode 100644 index 0000000..a08ba62 --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml b/app/src/main/res/drawable/button_dialog_selector_purple_5.xml deleted file mode 100644 index ece8881..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_red_25.xml b/app/src/main/res/drawable/button_dialog_selector_red_25.xml new file mode 100644 index 0000000..ade797e --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_red_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_red_5.xml b/app/src/main/res/drawable/button_dialog_selector_red_5.xml deleted file mode 100644 index a19439e..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_red_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_check_result.xml b/app/src/main/res/layout/activity_check_result.xml index 2acf577..c9a82ee 100644 --- a/app/src/main/res/layout/activity_check_result.xml +++ b/app/src/main/res/layout/activity_check_result.xml @@ -63,7 +63,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" - android:background="@drawable/button_dialog_selector_blue" + android:background="@drawable/button_dialog_selector_purple_25" android:text="确认,检查结束" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> @@ -74,7 +74,7 @@ android:layout_height="match_parent" android:layout_marginStart="@dimen/dp_15" android:layout_weight="1" - android:background="@drawable/button_dialog_selector_red_5" + android:background="@drawable/button_dialog_selector_red_25" android:text="返回" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> 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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt index 6c614dd..a9ee287 100644 --- a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt +++ b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt @@ -103,7 +103,10 @@ dismiss() } - binding.cancelButton.setOnClickListener { dismiss() } + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } } fun initDialogContentView(listener: OnDialogButtonClickListener): AddHiddenTroubleDialog { @@ -116,5 +119,7 @@ mainType: DictionaryModel.DataModel, subType: DictionaryModel.DataModel, troubleName: String, troubleContent: String ) + + fun onCancelClick() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt new file mode 100644 index 0000000..c383773 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt @@ -0,0 +1,43 @@ +package com.casic.br.ar.app.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import com.casic.br.ar.app.databinding.DialogCheckItemBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams + +class CheckItemDialog(context: Context) : Dialog(context) { + + private val kTag = "CheckItemDialog" + private val binding: DialogCheckItemBinding by binding() + private lateinit var item: String + private lateinit var listener: OnDialogButtonClickListener + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initDialogLayoutParams(0.8f) + + binding.checkPassButton.setOnClickListener { + listener.onCheckPassClick() + dismiss() + } + + binding.haveTroubleButton.setOnClickListener { + listener.onHaveTroubleClick() + dismiss() + } + } + + fun updateCheckItemView(item: String, listener: OnDialogButtonClickListener): CheckItemDialog { + this.item = item + this.listener = listener + binding.messageView.text = item + return this + } + + interface OnDialogButtonClickListener { + fun onCheckPassClick() + fun onHaveTroubleClick() + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_25.xml b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml new file mode 100644 index 0000000..a08ba62 --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml b/app/src/main/res/drawable/button_dialog_selector_purple_5.xml deleted file mode 100644 index ece8881..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_red_25.xml b/app/src/main/res/drawable/button_dialog_selector_red_25.xml new file mode 100644 index 0000000..ade797e --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_red_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_red_5.xml b/app/src/main/res/drawable/button_dialog_selector_red_5.xml deleted file mode 100644 index a19439e..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_red_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_check_result.xml b/app/src/main/res/layout/activity_check_result.xml index 2acf577..c9a82ee 100644 --- a/app/src/main/res/layout/activity_check_result.xml +++ b/app/src/main/res/layout/activity_check_result.xml @@ -63,7 +63,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" - android:background="@drawable/button_dialog_selector_blue" + android:background="@drawable/button_dialog_selector_purple_25" android:text="确认,检查结束" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> @@ -74,7 +74,7 @@ android:layout_height="match_parent" android:layout_marginStart="@dimen/dp_15" android:layout_weight="1" - android:background="@drawable/button_dialog_selector_red_5" + android:background="@drawable/button_dialog_selector_red_25" android:text="返回" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> diff --git a/app/src/main/res/layout/dialog_add_hidden_trouble.xml b/app/src/main/res/layout/dialog_add_hidden_trouble.xml index a23723d..5bcb36f 100644 --- a/app/src/main/res/layout/dialog_add_hidden_trouble.xml +++ b/app/src/main/res/layout/dialog_add_hidden_trouble.xml @@ -134,7 +134,7 @@ android:layout_height="match_parent" android:layout_marginEnd="@dimen/dp_15" android:layout_weight="1" - android:background="@drawable/button_dialog_selector_purple_5" + android:background="@drawable/button_dialog_selector_purple_25" android:text="确定" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> @@ -145,7 +145,7 @@ android:layout_height="match_parent" android:layout_marginStart="@dimen/dp_15" android:layout_weight="1" - android:background="@drawable/button_dialog_selector_red_5" + android:background="@drawable/button_dialog_selector_red_25" android:text="取消" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> 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 1c9bd24..d365fb8 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 @@ -32,6 +32,7 @@ import com.casic.br.ar.app.vm.ImageFileViewModel import com.casic.br.ar.app.vm.InspectionViewModel import com.casic.br.ar.app.widgets.AddHiddenTroubleDialog +import com.casic.br.ar.app.widgets.CheckItemDialog import com.casic.br.ar.app.widgets.DetectResultDialog import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo @@ -63,6 +64,7 @@ private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private val checkItemDialog by lazy { CheckItemDialog(this) } private val addHiddenTroubleDialog by lazy { AddHiddenTroubleDialog(this) } private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel @@ -70,6 +72,7 @@ private lateinit var alarmViewModel: AlarmViewModel private lateinit var checkManifestViewModel: CheckManifestViewModel private lateinit var hiddenTroubleViewModel: HiddenTroubleViewModel + private lateinit var headItem: SceneCheckManifestModel.DataModel private lateinit var timer: Timer private var checkItemLinkedList = LinkedList() private var isDetectTarget = false @@ -163,36 +166,30 @@ if (!detectResultDialog.isShowing) { isConfirmedByUser = false //取出队列头部元素 - val headItem = checkItemLinkedList.poll() - if (headItem != null) { - if (mat.width() > 0 || mat.height() > 0) { - detectResultDialog.updateDialogContentView( - headItem.checkItem, mat, - object : DetectResultDialog.OnDialogButtonClickListener { - override fun onCheckPassClick(file: File) { - checkPassCount++ - binding.checkedCountView.text = - "${checkPassCount}项" - binding.noCheckCountView.text = - "${checkItemLinkedList.size}项" - if (checkItemLinkedList.isEmpty()) { - stopCheck() - } - isConfirmedByUser = true - } + headItem = checkItemLinkedList.poll()!! + checkItemDialog.updateCheckItemView(headItem.checkItem, + object : CheckItemDialog.OnDialogButtonClickListener { + override fun onCheckPassClick() { + checkPassCount++ + binding.checkedCountView.text = "${checkPassCount}项" + binding.noCheckCountView.text = + "${checkItemLinkedList.size}项" + if (checkItemLinkedList.isEmpty()) { + stopCheck() + } + isConfirmedByUser = true + } - override fun onHaveTroubleClick(file: File) { - //弹新的框 - showAddHiddenTroubleDialog() - } - }).show() - } - } + override fun onHaveTroubleClick() { + //弹新的框 + showAddHiddenTroubleDialog() + } + }).show() } } } } - }, 1000, 3000) + }, 1000, 5000) } private fun showAddHiddenTroubleDialog() { @@ -219,6 +216,12 @@ arrayOf() ) } + + override fun onCancelClick() { + //将取消的那一项重新添加进队列 + checkItemLinkedList.offer(headItem) + isConfirmedByUser = true + } }).show() } @@ -232,6 +235,10 @@ } binding.checkManifestButton.setOnClickListener { + if (RuntimeCache.sceneName == "") { + "请先识别场景".show(this) + return@setOnClickListener + } navigatePageTo() } } diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt index 6c614dd..a9ee287 100644 --- a/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt +++ b/app/src/main/java/com/casic/br/ar/app/widgets/AddHiddenTroubleDialog.kt @@ -103,7 +103,10 @@ dismiss() } - binding.cancelButton.setOnClickListener { dismiss() } + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } } fun initDialogContentView(listener: OnDialogButtonClickListener): AddHiddenTroubleDialog { @@ -116,5 +119,7 @@ mainType: DictionaryModel.DataModel, subType: DictionaryModel.DataModel, troubleName: String, troubleContent: String ) + + fun onCancelClick() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt new file mode 100644 index 0000000..c383773 --- /dev/null +++ b/app/src/main/java/com/casic/br/ar/app/widgets/CheckItemDialog.kt @@ -0,0 +1,43 @@ +package com.casic.br.ar.app.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import com.casic.br.ar.app.databinding.DialogCheckItemBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams + +class CheckItemDialog(context: Context) : Dialog(context) { + + private val kTag = "CheckItemDialog" + private val binding: DialogCheckItemBinding by binding() + private lateinit var item: String + private lateinit var listener: OnDialogButtonClickListener + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initDialogLayoutParams(0.8f) + + binding.checkPassButton.setOnClickListener { + listener.onCheckPassClick() + dismiss() + } + + binding.haveTroubleButton.setOnClickListener { + listener.onHaveTroubleClick() + dismiss() + } + } + + fun updateCheckItemView(item: String, listener: OnDialogButtonClickListener): CheckItemDialog { + this.item = item + this.listener = listener + binding.messageView.text = item + return this + } + + interface OnDialogButtonClickListener { + fun onCheckPassClick() + fun onHaveTroubleClick() + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_25.xml b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml new file mode 100644 index 0000000..a08ba62 --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_purple_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml b/app/src/main/res/drawable/button_dialog_selector_purple_5.xml deleted file mode 100644 index ece8881..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_purple_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/button_dialog_selector_red_25.xml b/app/src/main/res/drawable/button_dialog_selector_red_25.xml new file mode 100644 index 0000000..ade797e --- /dev/null +++ b/app/src/main/res/drawable/button_dialog_selector_red_25.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/button_dialog_selector_red_5.xml b/app/src/main/res/drawable/button_dialog_selector_red_5.xml deleted file mode 100644 index a19439e..0000000 --- a/app/src/main/res/drawable/button_dialog_selector_red_5.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_check_result.xml b/app/src/main/res/layout/activity_check_result.xml index 2acf577..c9a82ee 100644 --- a/app/src/main/res/layout/activity_check_result.xml +++ b/app/src/main/res/layout/activity_check_result.xml @@ -63,7 +63,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" - android:background="@drawable/button_dialog_selector_blue" + android:background="@drawable/button_dialog_selector_purple_25" android:text="确认,检查结束" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> @@ -74,7 +74,7 @@ android:layout_height="match_parent" android:layout_marginStart="@dimen/dp_15" android:layout_weight="1" - android:background="@drawable/button_dialog_selector_red_5" + android:background="@drawable/button_dialog_selector_red_25" android:text="返回" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> diff --git a/app/src/main/res/layout/dialog_add_hidden_trouble.xml b/app/src/main/res/layout/dialog_add_hidden_trouble.xml index a23723d..5bcb36f 100644 --- a/app/src/main/res/layout/dialog_add_hidden_trouble.xml +++ b/app/src/main/res/layout/dialog_add_hidden_trouble.xml @@ -134,7 +134,7 @@ android:layout_height="match_parent" android:layout_marginEnd="@dimen/dp_15" android:layout_weight="1" - android:background="@drawable/button_dialog_selector_purple_5" + android:background="@drawable/button_dialog_selector_purple_25" android:text="确定" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> @@ -145,7 +145,7 @@ android:layout_height="match_parent" android:layout_marginStart="@dimen/dp_15" android:layout_weight="1" - android:background="@drawable/button_dialog_selector_red_5" + android:background="@drawable/button_dialog_selector_red_25" android:text="取消" android:textColor="@color/white" android:textSize="@dimen/lib_sp_16" /> diff --git a/app/src/main/res/layout/dialog_check_item.xml b/app/src/main/res/layout/dialog_check_item.xml new file mode 100644 index 0000000..a985d63 --- /dev/null +++ b/app/src/main/res/layout/dialog_check_item.xml @@ -0,0 +1,50 @@ + + + + + + + +