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 8b48da0..ebe0009 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 @@ -4,6 +4,7 @@ import android.os.Bundle import android.util.Log import android.view.View +import android.widget.AdapterView import android.widget.ArrayAdapter import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope @@ -51,6 +52,8 @@ private lateinit var configViewModel: ConfigViewModel private var mainDicModels: MutableList = ArrayList() private var subDicModels: MutableList = ArrayList() + private var selectedMainTypePosition = 0 + private var selectedSubTypePosition = 0 override fun initViewBinding(): ActivityAddHiddenTroubleBinding { return ActivityAddHiddenTroubleBinding.inflate(layoutInflater) @@ -115,6 +118,33 @@ } override fun initEvent() { + binding.mainTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + selectedMainTypePosition = position + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + + } + + } + + binding.subTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + selectedSubTypePosition = position + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + + } + } + imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { selectPicture() @@ -132,6 +162,8 @@ }) binding.dialogConfirmButton.setOnClickListener { + Log.d(kTag, selectedMainTypePosition.toString()) + Log.d(kTag, selectedSubTypePosition.toString()) Log.d(kTag, imagePaths.toJson()) } 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 8b48da0..ebe0009 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 @@ -4,6 +4,7 @@ import android.os.Bundle import android.util.Log import android.view.View +import android.widget.AdapterView import android.widget.ArrayAdapter import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope @@ -51,6 +52,8 @@ private lateinit var configViewModel: ConfigViewModel private var mainDicModels: MutableList = ArrayList() private var subDicModels: MutableList = ArrayList() + private var selectedMainTypePosition = 0 + private var selectedSubTypePosition = 0 override fun initViewBinding(): ActivityAddHiddenTroubleBinding { return ActivityAddHiddenTroubleBinding.inflate(layoutInflater) @@ -115,6 +118,33 @@ } override fun initEvent() { + binding.mainTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + selectedMainTypePosition = position + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + + } + + } + + binding.subTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + selectedSubTypePosition = position + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + + } + } + imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { selectPicture() @@ -132,6 +162,8 @@ }) binding.dialogConfirmButton.setOnClickListener { + Log.d(kTag, selectedMainTypePosition.toString()) + Log.d(kTag, selectedSubTypePosition.toString()) Log.d(kTag, imagePaths.toJson()) } 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 6df0bec..1e66f4d 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 @@ -25,7 +25,7 @@ import com.casic.br.app.extensions.initImmersionBar import com.casic.br.app.model.DictionaryModel import com.casic.br.app.vm.ConfigViewModel -import com.casic.br.app.vm.FileUploadViewModel +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 @@ -65,7 +65,7 @@ private lateinit var imageCapture: ImageCapture private lateinit var imageAnalysis: ImageAnalysis private lateinit var configViewModel: ConfigViewModel - private lateinit var fileUploadViewModel: FileUploadViewModel + private lateinit var imageFileViewModel: ImageFileViewModel private var isRecognizing = false private var mainDicModels: MutableList = ArrayList() @@ -78,8 +78,8 @@ } } - fileUploadViewModel = ViewModelProvider(this)[FileUploadViewModel::class.java] - fileUploadViewModel.recognizeResult.observe(this) { + imageFileViewModel = ViewModelProvider(this)[ImageFileViewModel::class.java] + imageFileViewModel.recognizeResult.observe(this) { if (it.code == 200) { binding.titleView.setTitle(it.scene) binding.detectView.updateTargetPosition(it.result) @@ -199,7 +199,7 @@ val bitmap = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size) val base64 = bitmap.rotateImage(90).encodeToBase64() - fileUploadViewModel.getRecognizeResult(context, base64, "建筑消防") + imageFileViewModel.getRecognizeResult(context, base64, "建筑消防") } } //检测完之后close就会继续生成下一帧图片,否则就会被阻塞不会继续生成下一帧 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 8b48da0..ebe0009 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 @@ -4,6 +4,7 @@ import android.os.Bundle import android.util.Log import android.view.View +import android.widget.AdapterView import android.widget.ArrayAdapter import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope @@ -51,6 +52,8 @@ private lateinit var configViewModel: ConfigViewModel private var mainDicModels: MutableList = ArrayList() private var subDicModels: MutableList = ArrayList() + private var selectedMainTypePosition = 0 + private var selectedSubTypePosition = 0 override fun initViewBinding(): ActivityAddHiddenTroubleBinding { return ActivityAddHiddenTroubleBinding.inflate(layoutInflater) @@ -115,6 +118,33 @@ } override fun initEvent() { + binding.mainTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + selectedMainTypePosition = position + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + + } + + } + + binding.subTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + selectedSubTypePosition = position + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + + } + } + imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { selectPicture() @@ -132,6 +162,8 @@ }) binding.dialogConfirmButton.setOnClickListener { + Log.d(kTag, selectedMainTypePosition.toString()) + Log.d(kTag, selectedSubTypePosition.toString()) Log.d(kTag, imagePaths.toJson()) } 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 6df0bec..1e66f4d 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 @@ -25,7 +25,7 @@ import com.casic.br.app.extensions.initImmersionBar import com.casic.br.app.model.DictionaryModel import com.casic.br.app.vm.ConfigViewModel -import com.casic.br.app.vm.FileUploadViewModel +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 @@ -65,7 +65,7 @@ private lateinit var imageCapture: ImageCapture private lateinit var imageAnalysis: ImageAnalysis private lateinit var configViewModel: ConfigViewModel - private lateinit var fileUploadViewModel: FileUploadViewModel + private lateinit var imageFileViewModel: ImageFileViewModel private var isRecognizing = false private var mainDicModels: MutableList = ArrayList() @@ -78,8 +78,8 @@ } } - fileUploadViewModel = ViewModelProvider(this)[FileUploadViewModel::class.java] - fileUploadViewModel.recognizeResult.observe(this) { + imageFileViewModel = ViewModelProvider(this)[ImageFileViewModel::class.java] + imageFileViewModel.recognizeResult.observe(this) { if (it.code == 200) { binding.titleView.setTitle(it.scene) binding.detectView.updateTargetPosition(it.result) @@ -199,7 +199,7 @@ val bitmap = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size) val base64 = bitmap.rotateImage(90).encodeToBase64() - fileUploadViewModel.getRecognizeResult(context, base64, "建筑消防") + imageFileViewModel.getRecognizeResult(context, base64, "建筑消防") } } //检测完之后close就会继续生成下一帧图片,否则就会被阻塞不会继续生成下一帧 diff --git a/app/src/main/java/com/casic/br/app/vm/FileUploadViewModel.kt b/app/src/main/java/com/casic/br/app/vm/FileUploadViewModel.kt deleted file mode 100644 index 29d12ae..0000000 --- a/app/src/main/java/com/casic/br/app/vm/FileUploadViewModel.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.br.app.vm - -import android.content.Context -import androidx.lifecycle.MutableLiveData -import com.casic.br.app.extensions.getResponseCode -import com.casic.br.app.model.RecognizeResultModel -import com.casic.br.app.retrofit.RetrofitServiceManager -import com.google.gson.Gson -import com.google.gson.JsonParser -import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.base.BaseViewModel -import com.pengxh.kt.lite.extensions.launch -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState - -class FileUploadViewModel : BaseViewModel() { - - private val gson by lazy { Gson() } - val recognizeResult = MutableLiveData() - - fun getRecognizeResult(context: Context, base64: String, scene: String) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getRecognizeResult(base64, scene) - when (response.getResponseCode()) { - 200 -> { - loadState.value = LoadState.Success - recognizeResult.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - } - - else -> { - val element = JsonParser.parseString(response) - val jsonObject = element.asJsonObject - jsonObject.get("result").asString.show(context) - loadState.value = LoadState.Fail - } - } - }, { - loadState.value = LoadState.Fail - it.localizedMessage?.show(context) - }) -} \ No newline at end of file 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 8b48da0..ebe0009 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 @@ -4,6 +4,7 @@ import android.os.Bundle import android.util.Log import android.view.View +import android.widget.AdapterView import android.widget.ArrayAdapter import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope @@ -51,6 +52,8 @@ private lateinit var configViewModel: ConfigViewModel private var mainDicModels: MutableList = ArrayList() private var subDicModels: MutableList = ArrayList() + private var selectedMainTypePosition = 0 + private var selectedSubTypePosition = 0 override fun initViewBinding(): ActivityAddHiddenTroubleBinding { return ActivityAddHiddenTroubleBinding.inflate(layoutInflater) @@ -115,6 +118,33 @@ } override fun initEvent() { + binding.mainTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + selectedMainTypePosition = position + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + + } + + } + + binding.subTypeSpinner.onItemSelectedListener = + object : AdapterView.OnItemSelectedListener { + override fun onItemSelected( + parent: AdapterView<*>?, view: View?, position: Int, id: Long + ) { + selectedSubTypePosition = position + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + + } + } + imageAdapter.setOnItemClickListener(object : EditableImageAdapter.OnItemClickListener { override fun onAddImageClick() { selectPicture() @@ -132,6 +162,8 @@ }) binding.dialogConfirmButton.setOnClickListener { + Log.d(kTag, selectedMainTypePosition.toString()) + Log.d(kTag, selectedSubTypePosition.toString()) Log.d(kTag, imagePaths.toJson()) } 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 6df0bec..1e66f4d 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 @@ -25,7 +25,7 @@ import com.casic.br.app.extensions.initImmersionBar import com.casic.br.app.model.DictionaryModel import com.casic.br.app.vm.ConfigViewModel -import com.casic.br.app.vm.FileUploadViewModel +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 @@ -65,7 +65,7 @@ private lateinit var imageCapture: ImageCapture private lateinit var imageAnalysis: ImageAnalysis private lateinit var configViewModel: ConfigViewModel - private lateinit var fileUploadViewModel: FileUploadViewModel + private lateinit var imageFileViewModel: ImageFileViewModel private var isRecognizing = false private var mainDicModels: MutableList = ArrayList() @@ -78,8 +78,8 @@ } } - fileUploadViewModel = ViewModelProvider(this)[FileUploadViewModel::class.java] - fileUploadViewModel.recognizeResult.observe(this) { + imageFileViewModel = ViewModelProvider(this)[ImageFileViewModel::class.java] + imageFileViewModel.recognizeResult.observe(this) { if (it.code == 200) { binding.titleView.setTitle(it.scene) binding.detectView.updateTargetPosition(it.result) @@ -199,7 +199,7 @@ val bitmap = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size) val base64 = bitmap.rotateImage(90).encodeToBase64() - fileUploadViewModel.getRecognizeResult(context, base64, "建筑消防") + imageFileViewModel.getRecognizeResult(context, base64, "建筑消防") } } //检测完之后close就会继续生成下一帧图片,否则就会被阻塞不会继续生成下一帧 diff --git a/app/src/main/java/com/casic/br/app/vm/FileUploadViewModel.kt b/app/src/main/java/com/casic/br/app/vm/FileUploadViewModel.kt deleted file mode 100644 index 29d12ae..0000000 --- a/app/src/main/java/com/casic/br/app/vm/FileUploadViewModel.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.br.app.vm - -import android.content.Context -import androidx.lifecycle.MutableLiveData -import com.casic.br.app.extensions.getResponseCode -import com.casic.br.app.model.RecognizeResultModel -import com.casic.br.app.retrofit.RetrofitServiceManager -import com.google.gson.Gson -import com.google.gson.JsonParser -import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.base.BaseViewModel -import com.pengxh.kt.lite.extensions.launch -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState - -class FileUploadViewModel : BaseViewModel() { - - private val gson by lazy { Gson() } - val recognizeResult = MutableLiveData() - - fun getRecognizeResult(context: Context, base64: String, scene: String) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getRecognizeResult(base64, scene) - when (response.getResponseCode()) { - 200 -> { - loadState.value = LoadState.Success - recognizeResult.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - } - - else -> { - val element = JsonParser.parseString(response) - val jsonObject = element.asJsonObject - jsonObject.get("result").asString.show(context) - loadState.value = LoadState.Fail - } - } - }, { - loadState.value = LoadState.Fail - it.localizedMessage?.show(context) - }) -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/app/vm/ImageFileViewModel.kt b/app/src/main/java/com/casic/br/app/vm/ImageFileViewModel.kt index c76af42..e6a5ed6 100644 --- a/app/src/main/java/com/casic/br/app/vm/ImageFileViewModel.kt +++ b/app/src/main/java/com/casic/br/app/vm/ImageFileViewModel.kt @@ -1,21 +1,48 @@ package com.casic.br.app.vm +import android.content.Context import androidx.lifecycle.MutableLiveData import com.casic.br.app.extensions.getResponseCode import com.casic.br.app.model.ActionResultModel +import com.casic.br.app.model.RecognizeResultModel import com.casic.br.app.retrofit.RetrofitServiceManager import com.google.gson.Gson +import com.google.gson.JsonParser import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.BaseViewModel import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.LoadState import java.io.File class ImageFileViewModel : BaseViewModel() { private val gson by lazy { Gson() } + val recognizeResult = MutableLiveData() val resultModel = MutableLiveData() + fun getRecognizeResult(context: Context, base64: String, scene: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getRecognizeResult(base64, scene) + when (response.getResponseCode()) { + 200 -> { + loadState.value = LoadState.Success + recognizeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + + else -> { + val element = JsonParser.parseString(response) + val jsonObject = element.asJsonObject + jsonObject.get("result").asString.show(context) + loadState.value = LoadState.Fail + } + } + }, { + loadState.value = LoadState.Fail + }) + fun uploadImage(image: File) = launch({ loadState.value = LoadState.Loading val response = RetrofitServiceManager.uploadImage(image)