diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 607ca75..922f1f1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,12 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 607ca75..922f1f1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,12 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
index 5e070c9..0b86273 100644
--- a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
@@ -1,6 +1,5 @@
package com.casic.br.app.view
-import android.R
import android.os.Bundle
import android.util.Log
import android.view.View
@@ -93,11 +92,11 @@
mainDicModels.forEach {
mainTypeArray.add(it.name)
}
- val mainTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, mainTypeArray)
+ val mainTypeAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, mainTypeArray)
binding.mainTypeSpinner.adapter = mainTypeAdapter
configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
- configViewModel.getDictionaryByCode(context, "pitfallSmallType")
+ configViewModel.getDictionaryByCode(this, "pitfallSmallType")
configViewModel.dictionary.observe(this) {
if (it.code == 200) {
subDicModels = it.data
@@ -105,7 +104,9 @@
subDicModels.forEach { dic ->
subTypeArray.add(dic.name)
}
- val subTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, subTypeArray)
+ val subTypeAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, subTypeArray
+ )
binding.subTypeSpinner.adapter = subTypeAdapter
}
}
@@ -181,7 +182,7 @@
}
})
- binding.dialogConfirmButton.setOnClickListener {
+ binding.confirmButton.setOnClickListener {
hiddenTroubleViewModel.addHiddenTrouble(
this,
selectedMainTypePosition.toString(),
@@ -192,7 +193,7 @@
)
}
- binding.dialogCancelButton.setOnClickListener { finish() }
+ binding.cancelButton.setOnClickListener { finish() }
}
private fun selectPicture() {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 607ca75..922f1f1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,12 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
index 5e070c9..0b86273 100644
--- a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
@@ -1,6 +1,5 @@
package com.casic.br.app.view
-import android.R
import android.os.Bundle
import android.util.Log
import android.view.View
@@ -93,11 +92,11 @@
mainDicModels.forEach {
mainTypeArray.add(it.name)
}
- val mainTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, mainTypeArray)
+ val mainTypeAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, mainTypeArray)
binding.mainTypeSpinner.adapter = mainTypeAdapter
configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
- configViewModel.getDictionaryByCode(context, "pitfallSmallType")
+ configViewModel.getDictionaryByCode(this, "pitfallSmallType")
configViewModel.dictionary.observe(this) {
if (it.code == 200) {
subDicModels = it.data
@@ -105,7 +104,9 @@
subDicModels.forEach { dic ->
subTypeArray.add(dic.name)
}
- val subTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, subTypeArray)
+ val subTypeAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, subTypeArray
+ )
binding.subTypeSpinner.adapter = subTypeAdapter
}
}
@@ -181,7 +182,7 @@
}
})
- binding.dialogConfirmButton.setOnClickListener {
+ binding.confirmButton.setOnClickListener {
hiddenTroubleViewModel.addHiddenTrouble(
this,
selectedMainTypePosition.toString(),
@@ -192,7 +193,7 @@
)
}
- binding.dialogCancelButton.setOnClickListener { finish() }
+ binding.cancelButton.setOnClickListener { finish() }
}
private fun selectPicture() {
diff --git a/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
new file mode 100644
index 0000000..3056cba
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
@@ -0,0 +1,77 @@
+package com.casic.br.app.view
+
+import android.content.Intent
+import android.os.Bundle
+import android.view.View
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.app.databinding.ActivitySelectSceneBinding
+import com.casic.br.app.model.DictionaryModel
+import com.casic.br.app.vm.ConfigViewModel
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+
+class SelectSceneActivity : KotlinBaseActivity() {
+
+ private var selectedValue = ""
+ private var sceneDicModels: MutableList = ArrayList()
+ private lateinit var configViewModel: ConfigViewModel
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
+ configViewModel.getDictionaryByCode(this, "securityScene")
+ configViewModel.dictionary.observe(this) {
+ if (it.code == 200) {
+ sceneDicModels = it.data
+ val sceneArray = ArrayList()
+ sceneDicModels.forEach { dic ->
+ sceneArray.add(dic.name)
+ }
+ val sceneAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, sceneArray
+ )
+ binding.sceneSpinner.adapter = sceneAdapter
+ }
+ }
+
+ binding.sceneSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(
+ parent: AdapterView<*>?, view: View?, position: Int, id: Long
+ ) {
+ selectedValue = sceneDicModels[position].name
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+
+ }
+ }
+
+ binding.confirmButton.setOnClickListener {
+ if (selectedValue == "") {
+ "场景选择错误,请检查!".show(this)
+ return@setOnClickListener
+ }
+
+ val intent = Intent()
+ intent.putExtra("sceneName", selectedValue)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+
+ override fun initViewBinding(): ActivitySelectSceneBinding {
+ return ActivitySelectSceneBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 607ca75..922f1f1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,12 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
index 5e070c9..0b86273 100644
--- a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
@@ -1,6 +1,5 @@
package com.casic.br.app.view
-import android.R
import android.os.Bundle
import android.util.Log
import android.view.View
@@ -93,11 +92,11 @@
mainDicModels.forEach {
mainTypeArray.add(it.name)
}
- val mainTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, mainTypeArray)
+ val mainTypeAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, mainTypeArray)
binding.mainTypeSpinner.adapter = mainTypeAdapter
configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
- configViewModel.getDictionaryByCode(context, "pitfallSmallType")
+ configViewModel.getDictionaryByCode(this, "pitfallSmallType")
configViewModel.dictionary.observe(this) {
if (it.code == 200) {
subDicModels = it.data
@@ -105,7 +104,9 @@
subDicModels.forEach { dic ->
subTypeArray.add(dic.name)
}
- val subTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, subTypeArray)
+ val subTypeAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, subTypeArray
+ )
binding.subTypeSpinner.adapter = subTypeAdapter
}
}
@@ -181,7 +182,7 @@
}
})
- binding.dialogConfirmButton.setOnClickListener {
+ binding.confirmButton.setOnClickListener {
hiddenTroubleViewModel.addHiddenTrouble(
this,
selectedMainTypePosition.toString(),
@@ -192,7 +193,7 @@
)
}
- binding.dialogCancelButton.setOnClickListener { finish() }
+ binding.cancelButton.setOnClickListener { finish() }
}
private fun selectPicture() {
diff --git a/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
new file mode 100644
index 0000000..3056cba
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
@@ -0,0 +1,77 @@
+package com.casic.br.app.view
+
+import android.content.Intent
+import android.os.Bundle
+import android.view.View
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.app.databinding.ActivitySelectSceneBinding
+import com.casic.br.app.model.DictionaryModel
+import com.casic.br.app.vm.ConfigViewModel
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+
+class SelectSceneActivity : KotlinBaseActivity() {
+
+ private var selectedValue = ""
+ private var sceneDicModels: MutableList = ArrayList()
+ private lateinit var configViewModel: ConfigViewModel
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
+ configViewModel.getDictionaryByCode(this, "securityScene")
+ configViewModel.dictionary.observe(this) {
+ if (it.code == 200) {
+ sceneDicModels = it.data
+ val sceneArray = ArrayList()
+ sceneDicModels.forEach { dic ->
+ sceneArray.add(dic.name)
+ }
+ val sceneAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, sceneArray
+ )
+ binding.sceneSpinner.adapter = sceneAdapter
+ }
+ }
+
+ binding.sceneSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(
+ parent: AdapterView<*>?, view: View?, position: Int, id: Long
+ ) {
+ selectedValue = sceneDicModels[position].name
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+
+ }
+ }
+
+ binding.confirmButton.setOnClickListener {
+ if (selectedValue == "") {
+ "场景选择错误,请检查!".show(this)
+ return@setOnClickListener
+ }
+
+ val intent = Intent()
+ intent.putExtra("sceneName", selectedValue)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+
+ override fun initViewBinding(): ActivitySelectSceneBinding {
+ return ActivitySelectSceneBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
index 1e66f4d..fc946dd 100644
--- a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
@@ -1,5 +1,7 @@
package com.casic.br.app.view
+import android.app.Activity
+import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.ImageFormat
@@ -11,6 +13,8 @@
import android.util.DisplayMetrics
import android.util.Log
import android.view.Surface
+import androidx.activity.result.ActivityResultCallback
+import androidx.activity.result.contract.ActivityResultContracts
import androidx.camera.core.AspectRatio
import androidx.camera.core.CameraSelector
import androidx.camera.core.CameraState
@@ -26,8 +30,6 @@
import com.casic.br.app.model.DictionaryModel
import com.casic.br.app.vm.ConfigViewModel
import com.casic.br.app.vm.ImageFileViewModel
-import com.casic.br.app.widgets.CheckResultDialog
-import com.casic.br.app.widgets.SelectSceneDialog
import com.google.common.util.concurrent.ListenableFuture
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
@@ -94,7 +96,7 @@
cameraProviderFuture.addListener({
try {
//TODO 暂时注掉
- bindPreview(cameraProviderFuture.get())
+// bindPreview(cameraProviderFuture.get())
} catch (e: ExecutionException) {
e.printStackTrace()
} catch (e: InterruptedException) {
@@ -154,7 +156,7 @@
camera.cameraInfo.cameraState.observe(this) {
//开始预览之后才人脸检测
if (it.type == CameraState.Type.OPEN) {
-// imageAnalysis.setAnalyzer(cameraExecutor, imageAnalyzer)
+ imageAnalysis.setAnalyzer(cameraExecutor, imageAnalyzer)
}
}
} catch (e: Exception) {
@@ -226,7 +228,7 @@
override fun initEvent() {
binding.stopButton.setOnClickListener {
- CheckResultDialog(this).show()
+ navigatePageTo()
}
binding.tipsButton.setOnClickListener {
@@ -258,19 +260,23 @@
}
override fun onRightClick() {
- SelectSceneDialog.Builder()
- .setContext(context)
- .setPositiveButton("保存")
- .setOnDialogButtonClickListener(object :
- SelectSceneDialog.OnDialogButtonClickListener {
- override fun onConfirmClick(value: String) {
- binding.titleView.setTitle(value)
- }
- }).build().show()
+ val intent = Intent(context, SelectSceneActivity::class.java)
+ selectSceneLauncher.launch(intent)
}
})
}
+ private val selectSceneLauncher =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult(),
+ ActivityResultCallback {
+ if (it.resultCode == Activity.RESULT_OK) {
+ val data = it.data ?: return@ActivityResultCallback
+ val sceneName = data.getStringExtra("sceneName").toString()
+ binding.titleView.setTitle(sceneName)
+ }
+ }
+ )
+
private fun aspectRatio(width: Int, height: Int): Int {
val ratio = width.coerceAtLeast(height).toDouble() / width.coerceAtMost(height)
return if (abs(ratio - RATIO_4_3_VALUE) <= abs(ratio - RATIO_16_9_VALUE)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 607ca75..922f1f1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,12 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
index 5e070c9..0b86273 100644
--- a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
@@ -1,6 +1,5 @@
package com.casic.br.app.view
-import android.R
import android.os.Bundle
import android.util.Log
import android.view.View
@@ -93,11 +92,11 @@
mainDicModels.forEach {
mainTypeArray.add(it.name)
}
- val mainTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, mainTypeArray)
+ val mainTypeAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, mainTypeArray)
binding.mainTypeSpinner.adapter = mainTypeAdapter
configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
- configViewModel.getDictionaryByCode(context, "pitfallSmallType")
+ configViewModel.getDictionaryByCode(this, "pitfallSmallType")
configViewModel.dictionary.observe(this) {
if (it.code == 200) {
subDicModels = it.data
@@ -105,7 +104,9 @@
subDicModels.forEach { dic ->
subTypeArray.add(dic.name)
}
- val subTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, subTypeArray)
+ val subTypeAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, subTypeArray
+ )
binding.subTypeSpinner.adapter = subTypeAdapter
}
}
@@ -181,7 +182,7 @@
}
})
- binding.dialogConfirmButton.setOnClickListener {
+ binding.confirmButton.setOnClickListener {
hiddenTroubleViewModel.addHiddenTrouble(
this,
selectedMainTypePosition.toString(),
@@ -192,7 +193,7 @@
)
}
- binding.dialogCancelButton.setOnClickListener { finish() }
+ binding.cancelButton.setOnClickListener { finish() }
}
private fun selectPicture() {
diff --git a/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
new file mode 100644
index 0000000..3056cba
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
@@ -0,0 +1,77 @@
+package com.casic.br.app.view
+
+import android.content.Intent
+import android.os.Bundle
+import android.view.View
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.app.databinding.ActivitySelectSceneBinding
+import com.casic.br.app.model.DictionaryModel
+import com.casic.br.app.vm.ConfigViewModel
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+
+class SelectSceneActivity : KotlinBaseActivity() {
+
+ private var selectedValue = ""
+ private var sceneDicModels: MutableList = ArrayList()
+ private lateinit var configViewModel: ConfigViewModel
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
+ configViewModel.getDictionaryByCode(this, "securityScene")
+ configViewModel.dictionary.observe(this) {
+ if (it.code == 200) {
+ sceneDicModels = it.data
+ val sceneArray = ArrayList()
+ sceneDicModels.forEach { dic ->
+ sceneArray.add(dic.name)
+ }
+ val sceneAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, sceneArray
+ )
+ binding.sceneSpinner.adapter = sceneAdapter
+ }
+ }
+
+ binding.sceneSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(
+ parent: AdapterView<*>?, view: View?, position: Int, id: Long
+ ) {
+ selectedValue = sceneDicModels[position].name
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+
+ }
+ }
+
+ binding.confirmButton.setOnClickListener {
+ if (selectedValue == "") {
+ "场景选择错误,请检查!".show(this)
+ return@setOnClickListener
+ }
+
+ val intent = Intent()
+ intent.putExtra("sceneName", selectedValue)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+
+ override fun initViewBinding(): ActivitySelectSceneBinding {
+ return ActivitySelectSceneBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
index 1e66f4d..fc946dd 100644
--- a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
@@ -1,5 +1,7 @@
package com.casic.br.app.view
+import android.app.Activity
+import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.ImageFormat
@@ -11,6 +13,8 @@
import android.util.DisplayMetrics
import android.util.Log
import android.view.Surface
+import androidx.activity.result.ActivityResultCallback
+import androidx.activity.result.contract.ActivityResultContracts
import androidx.camera.core.AspectRatio
import androidx.camera.core.CameraSelector
import androidx.camera.core.CameraState
@@ -26,8 +30,6 @@
import com.casic.br.app.model.DictionaryModel
import com.casic.br.app.vm.ConfigViewModel
import com.casic.br.app.vm.ImageFileViewModel
-import com.casic.br.app.widgets.CheckResultDialog
-import com.casic.br.app.widgets.SelectSceneDialog
import com.google.common.util.concurrent.ListenableFuture
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
@@ -94,7 +96,7 @@
cameraProviderFuture.addListener({
try {
//TODO 暂时注掉
- bindPreview(cameraProviderFuture.get())
+// bindPreview(cameraProviderFuture.get())
} catch (e: ExecutionException) {
e.printStackTrace()
} catch (e: InterruptedException) {
@@ -154,7 +156,7 @@
camera.cameraInfo.cameraState.observe(this) {
//开始预览之后才人脸检测
if (it.type == CameraState.Type.OPEN) {
-// imageAnalysis.setAnalyzer(cameraExecutor, imageAnalyzer)
+ imageAnalysis.setAnalyzer(cameraExecutor, imageAnalyzer)
}
}
} catch (e: Exception) {
@@ -226,7 +228,7 @@
override fun initEvent() {
binding.stopButton.setOnClickListener {
- CheckResultDialog(this).show()
+ navigatePageTo()
}
binding.tipsButton.setOnClickListener {
@@ -258,19 +260,23 @@
}
override fun onRightClick() {
- SelectSceneDialog.Builder()
- .setContext(context)
- .setPositiveButton("保存")
- .setOnDialogButtonClickListener(object :
- SelectSceneDialog.OnDialogButtonClickListener {
- override fun onConfirmClick(value: String) {
- binding.titleView.setTitle(value)
- }
- }).build().show()
+ val intent = Intent(context, SelectSceneActivity::class.java)
+ selectSceneLauncher.launch(intent)
}
})
}
+ private val selectSceneLauncher =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult(),
+ ActivityResultCallback {
+ if (it.resultCode == Activity.RESULT_OK) {
+ val data = it.data ?: return@ActivityResultCallback
+ val sceneName = data.getStringExtra("sceneName").toString()
+ binding.titleView.setTitle(sceneName)
+ }
+ }
+ )
+
private fun aspectRatio(width: Int, height: Int): Int {
val ratio = width.coerceAtLeast(height).toDouble() / width.coerceAtMost(height)
return if (abs(ratio - RATIO_4_3_VALUE) <= abs(ratio - RATIO_16_9_VALUE)
diff --git a/app/src/main/java/com/casic/br/app/widgets/SelectSceneDialog.kt b/app/src/main/java/com/casic/br/app/widgets/SelectSceneDialog.kt
deleted file mode 100644
index adad748..0000000
--- a/app/src/main/java/com/casic/br/app/widgets/SelectSceneDialog.kt
+++ /dev/null
@@ -1,85 +0,0 @@
-package com.casic.br.app.widgets
-
-import android.app.Dialog
-import android.content.Context
-import android.os.Bundle
-import android.view.View
-import android.widget.AdapterView
-import com.casic.br.app.R
-import com.casic.br.app.databinding.DialogSelectSceneBinding
-import com.pengxh.kt.lite.extensions.binding
-import com.pengxh.kt.lite.extensions.initDialogLayoutParams
-import com.pengxh.kt.lite.extensions.show
-
-class SelectSceneDialog private constructor(builder: Builder) : Dialog(
- builder.context, R.style.UserDefinedDialogStyle
-) {
- private val context = builder.context
- private val positiveBtn = builder.positiveBtn
- private val listener = builder.listener
-
- class Builder {
- lateinit var context: Context
- lateinit var positiveBtn: String
- lateinit var listener: OnDialogButtonClickListener
-
- fun setContext(context: Context): Builder {
- this.context = context
- return this
- }
-
- fun setPositiveButton(name: String): Builder {
- positiveBtn = name
- return this
- }
-
- fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder {
- this.listener = listener
- return this
- }
-
- fun build(): SelectSceneDialog {
- return SelectSceneDialog(this)
- }
- }
-
- private val binding: DialogSelectSceneBinding by binding()
- private var selectedValue = "请选择场景"
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- this.initDialogLayoutParams(0.85f)
- setCanceledOnTouchOutside(true)
-
- val sceneArray = context.resources.getStringArray(R.array.scene_data)
-
- if (positiveBtn.isNotBlank()) {
- binding.dialogConfirmButton.text = positiveBtn
- }
-
- binding.sceneSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(
- parent: AdapterView<*>?, view: View?, position: Int, id: Long
- ) {
- selectedValue = sceneArray[position]
- }
-
- override fun onNothingSelected(parent: AdapterView<*>?) {
-
- }
- }
-
- binding.dialogConfirmButton.setOnClickListener {
- if (selectedValue == "请选择场景") {
- "场景选择错误,请检查!".show(context)
- return@setOnClickListener
- }
- listener.onConfirmClick(selectedValue)
- dismiss()
- }
- }
-
- interface OnDialogButtonClickListener {
- fun onConfirmClick(value: String)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 607ca75..922f1f1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,12 @@
+
+
diff --git a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
index 5e070c9..0b86273 100644
--- a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
@@ -1,6 +1,5 @@
package com.casic.br.app.view
-import android.R
import android.os.Bundle
import android.util.Log
import android.view.View
@@ -93,11 +92,11 @@
mainDicModels.forEach {
mainTypeArray.add(it.name)
}
- val mainTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, mainTypeArray)
+ val mainTypeAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, mainTypeArray)
binding.mainTypeSpinner.adapter = mainTypeAdapter
configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
- configViewModel.getDictionaryByCode(context, "pitfallSmallType")
+ configViewModel.getDictionaryByCode(this, "pitfallSmallType")
configViewModel.dictionary.observe(this) {
if (it.code == 200) {
subDicModels = it.data
@@ -105,7 +104,9 @@
subDicModels.forEach { dic ->
subTypeArray.add(dic.name)
}
- val subTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, subTypeArray)
+ val subTypeAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, subTypeArray
+ )
binding.subTypeSpinner.adapter = subTypeAdapter
}
}
@@ -181,7 +182,7 @@
}
})
- binding.dialogConfirmButton.setOnClickListener {
+ binding.confirmButton.setOnClickListener {
hiddenTroubleViewModel.addHiddenTrouble(
this,
selectedMainTypePosition.toString(),
@@ -192,7 +193,7 @@
)
}
- binding.dialogCancelButton.setOnClickListener { finish() }
+ binding.cancelButton.setOnClickListener { finish() }
}
private fun selectPicture() {
diff --git a/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
new file mode 100644
index 0000000..3056cba
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
@@ -0,0 +1,77 @@
+package com.casic.br.app.view
+
+import android.content.Intent
+import android.os.Bundle
+import android.view.View
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.app.databinding.ActivitySelectSceneBinding
+import com.casic.br.app.model.DictionaryModel
+import com.casic.br.app.vm.ConfigViewModel
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+
+class SelectSceneActivity : KotlinBaseActivity() {
+
+ private var selectedValue = ""
+ private var sceneDicModels: MutableList = ArrayList()
+ private lateinit var configViewModel: ConfigViewModel
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
+ configViewModel.getDictionaryByCode(this, "securityScene")
+ configViewModel.dictionary.observe(this) {
+ if (it.code == 200) {
+ sceneDicModels = it.data
+ val sceneArray = ArrayList()
+ sceneDicModels.forEach { dic ->
+ sceneArray.add(dic.name)
+ }
+ val sceneAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, sceneArray
+ )
+ binding.sceneSpinner.adapter = sceneAdapter
+ }
+ }
+
+ binding.sceneSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(
+ parent: AdapterView<*>?, view: View?, position: Int, id: Long
+ ) {
+ selectedValue = sceneDicModels[position].name
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+
+ }
+ }
+
+ binding.confirmButton.setOnClickListener {
+ if (selectedValue == "") {
+ "场景选择错误,请检查!".show(this)
+ return@setOnClickListener
+ }
+
+ val intent = Intent()
+ intent.putExtra("sceneName", selectedValue)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+
+ override fun initViewBinding(): ActivitySelectSceneBinding {
+ return ActivitySelectSceneBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
index 1e66f4d..fc946dd 100644
--- a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
@@ -1,5 +1,7 @@
package com.casic.br.app.view
+import android.app.Activity
+import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.ImageFormat
@@ -11,6 +13,8 @@
import android.util.DisplayMetrics
import android.util.Log
import android.view.Surface
+import androidx.activity.result.ActivityResultCallback
+import androidx.activity.result.contract.ActivityResultContracts
import androidx.camera.core.AspectRatio
import androidx.camera.core.CameraSelector
import androidx.camera.core.CameraState
@@ -26,8 +30,6 @@
import com.casic.br.app.model.DictionaryModel
import com.casic.br.app.vm.ConfigViewModel
import com.casic.br.app.vm.ImageFileViewModel
-import com.casic.br.app.widgets.CheckResultDialog
-import com.casic.br.app.widgets.SelectSceneDialog
import com.google.common.util.concurrent.ListenableFuture
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
@@ -94,7 +96,7 @@
cameraProviderFuture.addListener({
try {
//TODO 暂时注掉
- bindPreview(cameraProviderFuture.get())
+// bindPreview(cameraProviderFuture.get())
} catch (e: ExecutionException) {
e.printStackTrace()
} catch (e: InterruptedException) {
@@ -154,7 +156,7 @@
camera.cameraInfo.cameraState.observe(this) {
//开始预览之后才人脸检测
if (it.type == CameraState.Type.OPEN) {
-// imageAnalysis.setAnalyzer(cameraExecutor, imageAnalyzer)
+ imageAnalysis.setAnalyzer(cameraExecutor, imageAnalyzer)
}
}
} catch (e: Exception) {
@@ -226,7 +228,7 @@
override fun initEvent() {
binding.stopButton.setOnClickListener {
- CheckResultDialog(this).show()
+ navigatePageTo()
}
binding.tipsButton.setOnClickListener {
@@ -258,19 +260,23 @@
}
override fun onRightClick() {
- SelectSceneDialog.Builder()
- .setContext(context)
- .setPositiveButton("保存")
- .setOnDialogButtonClickListener(object :
- SelectSceneDialog.OnDialogButtonClickListener {
- override fun onConfirmClick(value: String) {
- binding.titleView.setTitle(value)
- }
- }).build().show()
+ val intent = Intent(context, SelectSceneActivity::class.java)
+ selectSceneLauncher.launch(intent)
}
})
}
+ private val selectSceneLauncher =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult(),
+ ActivityResultCallback {
+ if (it.resultCode == Activity.RESULT_OK) {
+ val data = it.data ?: return@ActivityResultCallback
+ val sceneName = data.getStringExtra("sceneName").toString()
+ binding.titleView.setTitle(sceneName)
+ }
+ }
+ )
+
private fun aspectRatio(width: Int, height: Int): Int {
val ratio = width.coerceAtLeast(height).toDouble() / width.coerceAtMost(height)
return if (abs(ratio - RATIO_4_3_VALUE) <= abs(ratio - RATIO_16_9_VALUE)
diff --git a/app/src/main/java/com/casic/br/app/widgets/SelectSceneDialog.kt b/app/src/main/java/com/casic/br/app/widgets/SelectSceneDialog.kt
deleted file mode 100644
index adad748..0000000
--- a/app/src/main/java/com/casic/br/app/widgets/SelectSceneDialog.kt
+++ /dev/null
@@ -1,85 +0,0 @@
-package com.casic.br.app.widgets
-
-import android.app.Dialog
-import android.content.Context
-import android.os.Bundle
-import android.view.View
-import android.widget.AdapterView
-import com.casic.br.app.R
-import com.casic.br.app.databinding.DialogSelectSceneBinding
-import com.pengxh.kt.lite.extensions.binding
-import com.pengxh.kt.lite.extensions.initDialogLayoutParams
-import com.pengxh.kt.lite.extensions.show
-
-class SelectSceneDialog private constructor(builder: Builder) : Dialog(
- builder.context, R.style.UserDefinedDialogStyle
-) {
- private val context = builder.context
- private val positiveBtn = builder.positiveBtn
- private val listener = builder.listener
-
- class Builder {
- lateinit var context: Context
- lateinit var positiveBtn: String
- lateinit var listener: OnDialogButtonClickListener
-
- fun setContext(context: Context): Builder {
- this.context = context
- return this
- }
-
- fun setPositiveButton(name: String): Builder {
- positiveBtn = name
- return this
- }
-
- fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder {
- this.listener = listener
- return this
- }
-
- fun build(): SelectSceneDialog {
- return SelectSceneDialog(this)
- }
- }
-
- private val binding: DialogSelectSceneBinding by binding()
- private var selectedValue = "请选择场景"
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- this.initDialogLayoutParams(0.85f)
- setCanceledOnTouchOutside(true)
-
- val sceneArray = context.resources.getStringArray(R.array.scene_data)
-
- if (positiveBtn.isNotBlank()) {
- binding.dialogConfirmButton.text = positiveBtn
- }
-
- binding.sceneSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(
- parent: AdapterView<*>?, view: View?, position: Int, id: Long
- ) {
- selectedValue = sceneArray[position]
- }
-
- override fun onNothingSelected(parent: AdapterView<*>?) {
-
- }
- }
-
- binding.dialogConfirmButton.setOnClickListener {
- if (selectedValue == "请选择场景") {
- "场景选择错误,请检查!".show(context)
- return@setOnClickListener
- }
- listener.onConfirmClick(selectedValue)
- dismiss()
- }
- }
-
- interface OnDialogButtonClickListener {
- fun onConfirmClick(value: String)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_hidden_trouble.xml b/app/src/main/res/layout/activity_add_hidden_trouble.xml
index 0d20fc5..98ba5ca 100644
--- a/app/src/main/res/layout/activity_add_hidden_trouble.xml
+++ b/app/src/main/res/layout/activity_add_hidden_trouble.xml
@@ -165,7 +165,7 @@
android:orientation="horizontal">
+
+
diff --git a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
index 5e070c9..0b86273 100644
--- a/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/AddHiddenTroubleActivity.kt
@@ -1,6 +1,5 @@
package com.casic.br.app.view
-import android.R
import android.os.Bundle
import android.util.Log
import android.view.View
@@ -93,11 +92,11 @@
mainDicModels.forEach {
mainTypeArray.add(it.name)
}
- val mainTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, mainTypeArray)
+ val mainTypeAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, mainTypeArray)
binding.mainTypeSpinner.adapter = mainTypeAdapter
configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
- configViewModel.getDictionaryByCode(context, "pitfallSmallType")
+ configViewModel.getDictionaryByCode(this, "pitfallSmallType")
configViewModel.dictionary.observe(this) {
if (it.code == 200) {
subDicModels = it.data
@@ -105,7 +104,9 @@
subDicModels.forEach { dic ->
subTypeArray.add(dic.name)
}
- val subTypeAdapter = ArrayAdapter(this, R.layout.simple_list_item_1, subTypeArray)
+ val subTypeAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, subTypeArray
+ )
binding.subTypeSpinner.adapter = subTypeAdapter
}
}
@@ -181,7 +182,7 @@
}
})
- binding.dialogConfirmButton.setOnClickListener {
+ binding.confirmButton.setOnClickListener {
hiddenTroubleViewModel.addHiddenTrouble(
this,
selectedMainTypePosition.toString(),
@@ -192,7 +193,7 @@
)
}
- binding.dialogCancelButton.setOnClickListener { finish() }
+ binding.cancelButton.setOnClickListener { finish() }
}
private fun selectPicture() {
diff --git a/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
new file mode 100644
index 0000000..3056cba
--- /dev/null
+++ b/app/src/main/java/com/casic/br/app/view/SelectSceneActivity.kt
@@ -0,0 +1,77 @@
+package com.casic.br.app.view
+
+import android.content.Intent
+import android.os.Bundle
+import android.view.View
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.app.databinding.ActivitySelectSceneBinding
+import com.casic.br.app.model.DictionaryModel
+import com.casic.br.app.vm.ConfigViewModel
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+
+class SelectSceneActivity : KotlinBaseActivity() {
+
+ private var selectedValue = ""
+ private var sceneDicModels: MutableList = ArrayList()
+ private lateinit var configViewModel: ConfigViewModel
+ override fun initEvent() {
+
+ }
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ configViewModel = ViewModelProvider(this)[ConfigViewModel::class.java]
+ configViewModel.getDictionaryByCode(this, "securityScene")
+ configViewModel.dictionary.observe(this) {
+ if (it.code == 200) {
+ sceneDicModels = it.data
+ val sceneArray = ArrayList()
+ sceneDicModels.forEach { dic ->
+ sceneArray.add(dic.name)
+ }
+ val sceneAdapter = ArrayAdapter(
+ this, android.R.layout.simple_list_item_1, sceneArray
+ )
+ binding.sceneSpinner.adapter = sceneAdapter
+ }
+ }
+
+ binding.sceneSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(
+ parent: AdapterView<*>?, view: View?, position: Int, id: Long
+ ) {
+ selectedValue = sceneDicModels[position].name
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+
+ }
+ }
+
+ binding.confirmButton.setOnClickListener {
+ if (selectedValue == "") {
+ "场景选择错误,请检查!".show(this)
+ return@setOnClickListener
+ }
+
+ val intent = Intent()
+ intent.putExtra("sceneName", selectedValue)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+
+ override fun initViewBinding(): ActivitySelectSceneBinding {
+ return ActivitySelectSceneBinding.inflate(layoutInflater)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
index 1e66f4d..fc946dd 100644
--- a/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/StartCheckActivity.kt
@@ -1,5 +1,7 @@
package com.casic.br.app.view
+import android.app.Activity
+import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.ImageFormat
@@ -11,6 +13,8 @@
import android.util.DisplayMetrics
import android.util.Log
import android.view.Surface
+import androidx.activity.result.ActivityResultCallback
+import androidx.activity.result.contract.ActivityResultContracts
import androidx.camera.core.AspectRatio
import androidx.camera.core.CameraSelector
import androidx.camera.core.CameraState
@@ -26,8 +30,6 @@
import com.casic.br.app.model.DictionaryModel
import com.casic.br.app.vm.ConfigViewModel
import com.casic.br.app.vm.ImageFileViewModel
-import com.casic.br.app.widgets.CheckResultDialog
-import com.casic.br.app.widgets.SelectSceneDialog
import com.google.common.util.concurrent.ListenableFuture
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
@@ -94,7 +96,7 @@
cameraProviderFuture.addListener({
try {
//TODO 暂时注掉
- bindPreview(cameraProviderFuture.get())
+// bindPreview(cameraProviderFuture.get())
} catch (e: ExecutionException) {
e.printStackTrace()
} catch (e: InterruptedException) {
@@ -154,7 +156,7 @@
camera.cameraInfo.cameraState.observe(this) {
//开始预览之后才人脸检测
if (it.type == CameraState.Type.OPEN) {
-// imageAnalysis.setAnalyzer(cameraExecutor, imageAnalyzer)
+ imageAnalysis.setAnalyzer(cameraExecutor, imageAnalyzer)
}
}
} catch (e: Exception) {
@@ -226,7 +228,7 @@
override fun initEvent() {
binding.stopButton.setOnClickListener {
- CheckResultDialog(this).show()
+ navigatePageTo()
}
binding.tipsButton.setOnClickListener {
@@ -258,19 +260,23 @@
}
override fun onRightClick() {
- SelectSceneDialog.Builder()
- .setContext(context)
- .setPositiveButton("保存")
- .setOnDialogButtonClickListener(object :
- SelectSceneDialog.OnDialogButtonClickListener {
- override fun onConfirmClick(value: String) {
- binding.titleView.setTitle(value)
- }
- }).build().show()
+ val intent = Intent(context, SelectSceneActivity::class.java)
+ selectSceneLauncher.launch(intent)
}
})
}
+ private val selectSceneLauncher =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult(),
+ ActivityResultCallback {
+ if (it.resultCode == Activity.RESULT_OK) {
+ val data = it.data ?: return@ActivityResultCallback
+ val sceneName = data.getStringExtra("sceneName").toString()
+ binding.titleView.setTitle(sceneName)
+ }
+ }
+ )
+
private fun aspectRatio(width: Int, height: Int): Int {
val ratio = width.coerceAtLeast(height).toDouble() / width.coerceAtMost(height)
return if (abs(ratio - RATIO_4_3_VALUE) <= abs(ratio - RATIO_16_9_VALUE)
diff --git a/app/src/main/java/com/casic/br/app/widgets/SelectSceneDialog.kt b/app/src/main/java/com/casic/br/app/widgets/SelectSceneDialog.kt
deleted file mode 100644
index adad748..0000000
--- a/app/src/main/java/com/casic/br/app/widgets/SelectSceneDialog.kt
+++ /dev/null
@@ -1,85 +0,0 @@
-package com.casic.br.app.widgets
-
-import android.app.Dialog
-import android.content.Context
-import android.os.Bundle
-import android.view.View
-import android.widget.AdapterView
-import com.casic.br.app.R
-import com.casic.br.app.databinding.DialogSelectSceneBinding
-import com.pengxh.kt.lite.extensions.binding
-import com.pengxh.kt.lite.extensions.initDialogLayoutParams
-import com.pengxh.kt.lite.extensions.show
-
-class SelectSceneDialog private constructor(builder: Builder) : Dialog(
- builder.context, R.style.UserDefinedDialogStyle
-) {
- private val context = builder.context
- private val positiveBtn = builder.positiveBtn
- private val listener = builder.listener
-
- class Builder {
- lateinit var context: Context
- lateinit var positiveBtn: String
- lateinit var listener: OnDialogButtonClickListener
-
- fun setContext(context: Context): Builder {
- this.context = context
- return this
- }
-
- fun setPositiveButton(name: String): Builder {
- positiveBtn = name
- return this
- }
-
- fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder {
- this.listener = listener
- return this
- }
-
- fun build(): SelectSceneDialog {
- return SelectSceneDialog(this)
- }
- }
-
- private val binding: DialogSelectSceneBinding by binding()
- private var selectedValue = "请选择场景"
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- this.initDialogLayoutParams(0.85f)
- setCanceledOnTouchOutside(true)
-
- val sceneArray = context.resources.getStringArray(R.array.scene_data)
-
- if (positiveBtn.isNotBlank()) {
- binding.dialogConfirmButton.text = positiveBtn
- }
-
- binding.sceneSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(
- parent: AdapterView<*>?, view: View?, position: Int, id: Long
- ) {
- selectedValue = sceneArray[position]
- }
-
- override fun onNothingSelected(parent: AdapterView<*>?) {
-
- }
- }
-
- binding.dialogConfirmButton.setOnClickListener {
- if (selectedValue == "请选择场景") {
- "场景选择错误,请检查!".show(context)
- return@setOnClickListener
- }
- listener.onConfirmClick(selectedValue)
- dismiss()
- }
- }
-
- interface OnDialogButtonClickListener {
- fun onConfirmClick(value: String)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_hidden_trouble.xml b/app/src/main/res/layout/activity_add_hidden_trouble.xml
index 0d20fc5..98ba5ca 100644
--- a/app/src/main/res/layout/activity_add_hidden_trouble.xml
+++ b/app/src/main/res/layout/activity_add_hidden_trouble.xml
@@ -165,7 +165,7 @@
android:orientation="horizontal">