diff --git a/app/src/main/cpp/yolo.cpp b/app/src/main/cpp/yolo.cpp
index 011f00a..0c4f203 100644
--- a/app/src/main/cpp/yolo.cpp
+++ b/app/src/main/cpp/yolo.cpp
@@ -695,6 +695,15 @@
//分割和检测结果统一回调
env->CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/cpp/yolo.cpp b/app/src/main/cpp/yolo.cpp
index 011f00a..0c4f203 100644
--- a/app/src/main/cpp/yolo.cpp
+++ b/app/src/main/cpp/yolo.cpp
@@ -695,6 +695,15 @@
//分割和检测结果统一回调
env->CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
index e318bd0..8bbdb19 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
@@ -222,6 +222,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -285,6 +287,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/cpp/yolo.cpp b/app/src/main/cpp/yolo.cpp
index 011f00a..0c4f203 100644
--- a/app/src/main/cpp/yolo.cpp
+++ b/app/src/main/cpp/yolo.cpp
@@ -695,6 +695,15 @@
//分割和检测结果统一回调
env->CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
index e318bd0..8bbdb19 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
@@ -222,6 +222,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -285,6 +287,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
index 8e6a870..68329df 100644
--- a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
@@ -333,6 +333,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -396,6 +398,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/cpp/yolo.cpp b/app/src/main/cpp/yolo.cpp
index 011f00a..0c4f203 100644
--- a/app/src/main/cpp/yolo.cpp
+++ b/app/src/main/cpp/yolo.cpp
@@ -695,6 +695,15 @@
//分割和检测结果统一回调
env->CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
index e318bd0..8bbdb19 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
@@ -222,6 +222,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -285,6 +287,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
index 8e6a870..68329df 100644
--- a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
@@ -333,6 +333,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -396,6 +398,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
index 496175c..2109114 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
@@ -1,12 +1,22 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
+import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityCheckManifestDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.CheckManifestDetailModel
import com.casic.br.app.vm.CheckManifestViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.getScreenWidth
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -15,6 +25,7 @@
class CheckManifestDetailActivity : KotlinBaseActivity() {
+ private val context = this
private lateinit var checkManifestViewModel: CheckManifestViewModel
override fun initEvent() {
@@ -23,6 +34,9 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
+
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
+
checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java]
checkManifestViewModel.getCheckManifestDetailById(this, id)
checkManifestViewModel.manifestDetailResult.observe(this) {
@@ -33,19 +47,33 @@
binding.checkMethodView.text = it.data.checkMethod
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_check_manifest_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: CheckManifestDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
binding.remarkView.text = it.data.remark
diff --git a/app/src/main/cpp/yolo.cpp b/app/src/main/cpp/yolo.cpp
index 011f00a..0c4f203 100644
--- a/app/src/main/cpp/yolo.cpp
+++ b/app/src/main/cpp/yolo.cpp
@@ -695,6 +695,15 @@
//分割和检测结果统一回调
env->CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
index e318bd0..8bbdb19 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
@@ -222,6 +222,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -285,6 +287,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
index 8e6a870..68329df 100644
--- a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
@@ -333,6 +333,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -396,6 +398,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
index 496175c..2109114 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
@@ -1,12 +1,22 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
+import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityCheckManifestDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.CheckManifestDetailModel
import com.casic.br.app.vm.CheckManifestViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.getScreenWidth
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -15,6 +25,7 @@
class CheckManifestDetailActivity : KotlinBaseActivity() {
+ private val context = this
private lateinit var checkManifestViewModel: CheckManifestViewModel
override fun initEvent() {
@@ -23,6 +34,9 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
+
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
+
checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java]
checkManifestViewModel.getCheckManifestDetailById(this, id)
checkManifestViewModel.manifestDetailResult.observe(this) {
@@ -33,19 +47,33 @@
binding.checkMethodView.text = it.data.checkMethod
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_check_manifest_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: CheckManifestDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
binding.remarkView.text = it.data.remark
diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
index d76781b..956394d 100644
--- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
@@ -2,13 +2,17 @@
import android.os.Bundle
import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityHiddenTroubleDetailBinding
import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.HiddenTroubleDetailModel
import com.casic.br.app.vm.HiddenTroubleViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.dp2px
import com.pengxh.kt.lite.extensions.getScreenWidth
@@ -31,7 +35,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
- val viewWidth = getScreenWidth() - 75.dp2px(context)
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java]
hiddenTroubleViewModel.getHiddenTroubleDetail(this, id)
@@ -43,19 +47,33 @@
binding.troubleContentView.text = it.data.content
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_hidden_trouble_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: HiddenTroubleDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
val alarmImageList = it.data.alarmImageList
diff --git a/app/src/main/cpp/yolo.cpp b/app/src/main/cpp/yolo.cpp
index 011f00a..0c4f203 100644
--- a/app/src/main/cpp/yolo.cpp
+++ b/app/src/main/cpp/yolo.cpp
@@ -695,6 +695,15 @@
//分割和检测结果统一回调
env->CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
index e318bd0..8bbdb19 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
@@ -222,6 +222,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -285,6 +287,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
index 8e6a870..68329df 100644
--- a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
@@ -333,6 +333,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -396,6 +398,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
index 496175c..2109114 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
@@ -1,12 +1,22 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
+import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityCheckManifestDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.CheckManifestDetailModel
import com.casic.br.app.vm.CheckManifestViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.getScreenWidth
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -15,6 +25,7 @@
class CheckManifestDetailActivity : KotlinBaseActivity() {
+ private val context = this
private lateinit var checkManifestViewModel: CheckManifestViewModel
override fun initEvent() {
@@ -23,6 +34,9 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
+
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
+
checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java]
checkManifestViewModel.getCheckManifestDetailById(this, id)
checkManifestViewModel.manifestDetailResult.observe(this) {
@@ -33,19 +47,33 @@
binding.checkMethodView.text = it.data.checkMethod
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_check_manifest_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: CheckManifestDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
binding.remarkView.text = it.data.remark
diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
index d76781b..956394d 100644
--- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
@@ -2,13 +2,17 @@
import android.os.Bundle
import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityHiddenTroubleDetailBinding
import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.HiddenTroubleDetailModel
import com.casic.br.app.vm.HiddenTroubleViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.dp2px
import com.pengxh.kt.lite.extensions.getScreenWidth
@@ -31,7 +35,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
- val viewWidth = getScreenWidth() - 75.dp2px(context)
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java]
hiddenTroubleViewModel.getHiddenTroubleDetail(this, id)
@@ -43,19 +47,33 @@
binding.troubleContentView.text = it.data.content
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_hidden_trouble_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: HiddenTroubleDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
val alarmImageList = it.data.alarmImageList
diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
index dbf6c4b..ffcf8b7 100644
--- a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
@@ -139,11 +139,6 @@
override fun initEvent() {
binding.stopButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "巡检任务创建中,请稍后再结束任务".show(this)
- return@setOnClickListener
- }
-
Intent(this, CheckResultActivity::class.java).also {
stopTaskLauncher.launch(it)
}
@@ -168,10 +163,6 @@
* 根据场景查看检查清单
* */
binding.listButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "请先选择场景或者识别出场景再试".show(this)
- return@setOnClickListener
- }
navigatePageTo()
}
}
@@ -269,7 +260,6 @@
) {
Log.d(kTag, "onSegmentation: ")
if (segmentationOutput.isEmpty() || detectOutput.isEmpty()) {
- weakReferenceHandler.sendEmptyMessage(2024083001)
binding.detectView.updateTargetPosition()
} else {
val segmentationResults = ArrayList()
@@ -550,10 +540,6 @@
}).show()
}
}
-
- 2024083001 -> {
-// detectResultDialog.dismiss()
- }
}
return true
}
diff --git a/app/src/main/cpp/yolo.cpp b/app/src/main/cpp/yolo.cpp
index 011f00a..0c4f203 100644
--- a/app/src/main/cpp/yolo.cpp
+++ b/app/src/main/cpp/yolo.cpp
@@ -695,6 +695,15 @@
//分割和检测结果统一回调
env->CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
index e318bd0..8bbdb19 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
@@ -222,6 +222,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -285,6 +287,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
index 8e6a870..68329df 100644
--- a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
@@ -333,6 +333,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -396,6 +398,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
index 496175c..2109114 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
@@ -1,12 +1,22 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
+import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityCheckManifestDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.CheckManifestDetailModel
import com.casic.br.app.vm.CheckManifestViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.getScreenWidth
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -15,6 +25,7 @@
class CheckManifestDetailActivity : KotlinBaseActivity() {
+ private val context = this
private lateinit var checkManifestViewModel: CheckManifestViewModel
override fun initEvent() {
@@ -23,6 +34,9 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
+
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
+
checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java]
checkManifestViewModel.getCheckManifestDetailById(this, id)
checkManifestViewModel.manifestDetailResult.observe(this) {
@@ -33,19 +47,33 @@
binding.checkMethodView.text = it.data.checkMethod
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_check_manifest_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: CheckManifestDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
binding.remarkView.text = it.data.remark
diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
index d76781b..956394d 100644
--- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
@@ -2,13 +2,17 @@
import android.os.Bundle
import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityHiddenTroubleDetailBinding
import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.HiddenTroubleDetailModel
import com.casic.br.app.vm.HiddenTroubleViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.dp2px
import com.pengxh.kt.lite.extensions.getScreenWidth
@@ -31,7 +35,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
- val viewWidth = getScreenWidth() - 75.dp2px(context)
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java]
hiddenTroubleViewModel.getHiddenTroubleDetail(this, id)
@@ -43,19 +47,33 @@
binding.troubleContentView.text = it.data.content
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_hidden_trouble_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: HiddenTroubleDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
val alarmImageList = it.data.alarmImageList
diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
index dbf6c4b..ffcf8b7 100644
--- a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
@@ -139,11 +139,6 @@
override fun initEvent() {
binding.stopButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "巡检任务创建中,请稍后再结束任务".show(this)
- return@setOnClickListener
- }
-
Intent(this, CheckResultActivity::class.java).also {
stopTaskLauncher.launch(it)
}
@@ -168,10 +163,6 @@
* 根据场景查看检查清单
* */
binding.listButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "请先选择场景或者识别出场景再试".show(this)
- return@setOnClickListener
- }
navigatePageTo()
}
}
@@ -269,7 +260,6 @@
) {
Log.d(kTag, "onSegmentation: ")
if (segmentationOutput.isEmpty() || detectOutput.isEmpty()) {
- weakReferenceHandler.sendEmptyMessage(2024083001)
binding.detectView.updateTargetPosition()
} else {
val segmentationResults = ArrayList()
@@ -550,10 +540,6 @@
}).show()
}
}
-
- 2024083001 -> {
-// detectResultDialog.dismiss()
- }
}
return true
}
diff --git a/app/src/main/res/layout/activity_check_manifest_detail.xml b/app/src/main/res/layout/activity_check_manifest_detail.xml
index 2540b6b..5559160 100644
--- a/app/src/main/res/layout/activity_check_manifest_detail.xml
+++ b/app/src/main/res/layout/activity_check_manifest_detail.xml
@@ -140,15 +140,13 @@
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
-
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
index e318bd0..8bbdb19 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
@@ -222,6 +222,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -285,6 +287,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
index 8e6a870..68329df 100644
--- a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
@@ -333,6 +333,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -396,6 +398,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
index 496175c..2109114 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
@@ -1,12 +1,22 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
+import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityCheckManifestDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.CheckManifestDetailModel
import com.casic.br.app.vm.CheckManifestViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.getScreenWidth
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -15,6 +25,7 @@
class CheckManifestDetailActivity : KotlinBaseActivity() {
+ private val context = this
private lateinit var checkManifestViewModel: CheckManifestViewModel
override fun initEvent() {
@@ -23,6 +34,9 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
+
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
+
checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java]
checkManifestViewModel.getCheckManifestDetailById(this, id)
checkManifestViewModel.manifestDetailResult.observe(this) {
@@ -33,19 +47,33 @@
binding.checkMethodView.text = it.data.checkMethod
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_check_manifest_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: CheckManifestDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
binding.remarkView.text = it.data.remark
diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
index d76781b..956394d 100644
--- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
@@ -2,13 +2,17 @@
import android.os.Bundle
import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityHiddenTroubleDetailBinding
import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.HiddenTroubleDetailModel
import com.casic.br.app.vm.HiddenTroubleViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.dp2px
import com.pengxh.kt.lite.extensions.getScreenWidth
@@ -31,7 +35,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
- val viewWidth = getScreenWidth() - 75.dp2px(context)
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java]
hiddenTroubleViewModel.getHiddenTroubleDetail(this, id)
@@ -43,19 +47,33 @@
binding.troubleContentView.text = it.data.content
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_hidden_trouble_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: HiddenTroubleDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
val alarmImageList = it.data.alarmImageList
diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
index dbf6c4b..ffcf8b7 100644
--- a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
@@ -139,11 +139,6 @@
override fun initEvent() {
binding.stopButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "巡检任务创建中,请稍后再结束任务".show(this)
- return@setOnClickListener
- }
-
Intent(this, CheckResultActivity::class.java).also {
stopTaskLauncher.launch(it)
}
@@ -168,10 +163,6 @@
* 根据场景查看检查清单
* */
binding.listButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "请先选择场景或者识别出场景再试".show(this)
- return@setOnClickListener
- }
navigatePageTo()
}
}
@@ -269,7 +260,6 @@
) {
Log.d(kTag, "onSegmentation: ")
if (segmentationOutput.isEmpty() || detectOutput.isEmpty()) {
- weakReferenceHandler.sendEmptyMessage(2024083001)
binding.detectView.updateTargetPosition()
} else {
val segmentationResults = ArrayList()
@@ -550,10 +540,6 @@
}).show()
}
}
-
- 2024083001 -> {
-// detectResultDialog.dismiss()
- }
}
return true
}
diff --git a/app/src/main/res/layout/activity_check_manifest_detail.xml b/app/src/main/res/layout/activity_check_manifest_detail.xml
index 2540b6b..5559160 100644
--- a/app/src/main/res/layout/activity_check_manifest_detail.xml
+++ b/app/src/main/res/layout/activity_check_manifest_detail.xml
@@ -140,15 +140,13 @@
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
-
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
-
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
index e318bd0..8bbdb19 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
@@ -222,6 +222,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -285,6 +287,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
index 8e6a870..68329df 100644
--- a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
@@ -333,6 +333,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -396,6 +398,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
index 496175c..2109114 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
@@ -1,12 +1,22 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
+import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityCheckManifestDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.CheckManifestDetailModel
import com.casic.br.app.vm.CheckManifestViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.getScreenWidth
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -15,6 +25,7 @@
class CheckManifestDetailActivity : KotlinBaseActivity() {
+ private val context = this
private lateinit var checkManifestViewModel: CheckManifestViewModel
override fun initEvent() {
@@ -23,6 +34,9 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
+
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
+
checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java]
checkManifestViewModel.getCheckManifestDetailById(this, id)
checkManifestViewModel.manifestDetailResult.observe(this) {
@@ -33,19 +47,33 @@
binding.checkMethodView.text = it.data.checkMethod
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_check_manifest_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: CheckManifestDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
binding.remarkView.text = it.data.remark
diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
index d76781b..956394d 100644
--- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
@@ -2,13 +2,17 @@
import android.os.Bundle
import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityHiddenTroubleDetailBinding
import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.HiddenTroubleDetailModel
import com.casic.br.app.vm.HiddenTroubleViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.dp2px
import com.pengxh.kt.lite.extensions.getScreenWidth
@@ -31,7 +35,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
- val viewWidth = getScreenWidth() - 75.dp2px(context)
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java]
hiddenTroubleViewModel.getHiddenTroubleDetail(this, id)
@@ -43,19 +47,33 @@
binding.troubleContentView.text = it.data.content
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_hidden_trouble_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: HiddenTroubleDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
val alarmImageList = it.data.alarmImageList
diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
index dbf6c4b..ffcf8b7 100644
--- a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
@@ -139,11 +139,6 @@
override fun initEvent() {
binding.stopButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "巡检任务创建中,请稍后再结束任务".show(this)
- return@setOnClickListener
- }
-
Intent(this, CheckResultActivity::class.java).also {
stopTaskLauncher.launch(it)
}
@@ -168,10 +163,6 @@
* 根据场景查看检查清单
* */
binding.listButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "请先选择场景或者识别出场景再试".show(this)
- return@setOnClickListener
- }
navigatePageTo()
}
}
@@ -269,7 +260,6 @@
) {
Log.d(kTag, "onSegmentation: ")
if (segmentationOutput.isEmpty() || detectOutput.isEmpty()) {
- weakReferenceHandler.sendEmptyMessage(2024083001)
binding.detectView.updateTargetPosition()
} else {
val segmentationResults = ArrayList()
@@ -550,10 +540,6 @@
}).show()
}
}
-
- 2024083001 -> {
-// detectResultDialog.dismiss()
- }
}
return true
}
diff --git a/app/src/main/res/layout/activity_check_manifest_detail.xml b/app/src/main/res/layout/activity_check_manifest_detail.xml
index 2540b6b..5559160 100644
--- a/app/src/main/res/layout/activity_check_manifest_detail.xml
+++ b/app/src/main/res/layout/activity_check_manifest_detail.xml
@@ -140,15 +140,13 @@
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
-
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
-
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/cpp/yolo.cpp b/app/src/main/cpp/yolo.cpp
index 011f00a..0c4f203 100644
--- a/app/src/main/cpp/yolo.cpp
+++ b/app/src/main/cpp/yolo.cpp
@@ -695,6 +695,15 @@
//分割和检测结果统一回调
env->CallVoidMethod(j_callback, j_method_id, segment_array_obj, detect_array_obj);
+
+ /**
+ * Mat数据。
+ *
-----------------------------------------------
+ * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
+ * */
+ auto *res = (cv::Mat *) j_mat_addr;
+ res->create(rgb.rows, rgb.cols, rgb.type());
+ memcpy(res->data, rgb.data, rgb.rows * rgb.step);
}
return 0;
}
@@ -814,15 +823,6 @@
}
//回调
env->CallVoidMethod(j_callback, j_method_id, arraylist_obj);
-
- /**
- * Mat数据。
- *
-----------------------------------------------
- * 通过内存地址赋值。Java层传入Mat对象内存地址,再通过C++给此地址赋值,Java即可得到内存地址的Mat矩阵数据
- * */
- auto *res = (cv::Mat *) j_mat_addr;
- res->create(rgb.rows, rgb.cols, rgb.type());
- memcpy(res->data, rgb.data, rgb.rows * rgb.step);
} else {
__android_log_print(
ANDROID_LOG_DEBUG, "ncnn", "yolo_d detect is paused, state = %d", j_state
diff --git a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
index e318bd0..8bbdb19 100644
--- a/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/CheckManifestDetailModel.java
@@ -222,6 +222,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -285,6 +287,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
index 8e6a870..68329df 100644
--- a/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
+++ b/app/src/main/java/com/casic/br/app/model/HiddenTroubleDetailModel.java
@@ -333,6 +333,8 @@
private String createUserId;
private String createUserName;
private String id;
+ private List imageList;
+ private String imageStr;
private String specificationId;
private String specificationItemId;
private String specificationName;
@@ -396,6 +398,22 @@
this.id = id;
}
+ public List getImageList() {
+ return imageList;
+ }
+
+ public void setImageList(List imageList) {
+ this.imageList = imageList;
+ }
+
+ public String getImageStr() {
+ return imageStr;
+ }
+
+ public void setImageStr(String imageStr) {
+ this.imageStr = imageStr;
+ }
+
public String getSpecificationId() {
return specificationId;
}
diff --git a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
index 496175c..2109114 100644
--- a/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/CheckManifestDetailActivity.kt
@@ -1,12 +1,22 @@
package com.casic.br.app.view
import android.os.Bundle
+import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
+import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityCheckManifestDetailBinding
+import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.CheckManifestDetailModel
import com.casic.br.app.vm.CheckManifestViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.dp2px
+import com.pengxh.kt.lite.extensions.getScreenWidth
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.LoadState
@@ -15,6 +25,7 @@
class CheckManifestDetailActivity : KotlinBaseActivity() {
+ private val context = this
private lateinit var checkManifestViewModel: CheckManifestViewModel
override fun initEvent() {
@@ -23,6 +34,9 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
+
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
+
checkManifestViewModel = ViewModelProvider(this)[CheckManifestViewModel::class.java]
checkManifestViewModel.getCheckManifestDetailById(this, id)
checkManifestViewModel.manifestDetailResult.observe(this) {
@@ -33,19 +47,33 @@
binding.checkMethodView.text = it.data.checkMethod
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_check_manifest_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: CheckManifestDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
binding.remarkView.text = it.data.remark
diff --git a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
index d76781b..956394d 100644
--- a/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/HiddenTroubleDetailActivity.kt
@@ -2,13 +2,17 @@
import android.os.Bundle
import android.widget.AdapterView
+import android.widget.GridView
import androidx.lifecycle.ViewModelProvider
import com.casic.br.app.R
import com.casic.br.app.adapter.ImageGridAdapter
import com.casic.br.app.databinding.ActivityHiddenTroubleDetailBinding
import com.casic.br.app.extensions.combineFilePath
import com.casic.br.app.extensions.initImmersionBar
+import com.casic.br.app.model.HiddenTroubleDetailModel
import com.casic.br.app.vm.HiddenTroubleViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.dp2px
import com.pengxh.kt.lite.extensions.getScreenWidth
@@ -31,7 +35,7 @@
override fun initOnCreate(savedInstanceState: Bundle?) {
val id = intent.getStringExtra(Constant.INTENT_PARAM) as String
- val viewWidth = getScreenWidth() - 75.dp2px(context)
+ val viewWidth = getScreenWidth() - 75.dp2px(this)
hiddenTroubleViewModel = ViewModelProvider(this)[HiddenTroubleViewModel::class.java]
hiddenTroubleViewModel.getHiddenTroubleDetail(this, id)
@@ -43,19 +47,33 @@
binding.troubleContentView.text = it.data.content
//依据
- if (it.data.basisList.isNullOrEmpty()) {
- binding.basisView.text = "暂无"
- } else {
- val stringBuilder = StringBuilder()
- it.data.basisList.forEachIndexed { index, base ->
- val line = "《${base.specificationName}》-${base.chapter}-${base.content}"
- if (index == it.data.basisList.size - 1) {
- stringBuilder.append(line)
- } else {
- stringBuilder.append(line).append("\r\n")
+ if (it.data.basisList.isNotEmpty()) {
+ val baseAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_hidden_trouble_base_rule_l, it.data.basisList
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder, position: Int,
+ item: HiddenTroubleDetailModel.DataModel.BasisListModel
+ ) {
+ val gridView = viewHolder.getView(R.id.baseRuleGridView)
+ val images = ArrayList()
+ item.imageList.forEach { image ->
+ images.add(image.combineFilePath())
+ }
+ val imageAdapter = ImageGridAdapter(context, images, viewWidth, 3)
+ gridView.adapter = imageAdapter
+ gridView.onItemClickListener =
+ AdapterView.OnItemClickListener { _, _, index, _ ->
+ navigatePageTo(index, images)
+ }
+
+ viewHolder.setText(R.id.specificationNameView, item.specificationName)
+ .setText(R.id.contentView, item.content)
+ .setText(R.id.chapterView, item.chapter)
}
}
- binding.basisView.text = stringBuilder
+ binding.basisRecyclerView.adapter = baseAdapter
}
val alarmImageList = it.data.alarmImageList
diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
index dbf6c4b..ffcf8b7 100644
--- a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
+++ b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt
@@ -139,11 +139,6 @@
override fun initEvent() {
binding.stopButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "巡检任务创建中,请稍后再结束任务".show(this)
- return@setOnClickListener
- }
-
Intent(this, CheckResultActivity::class.java).also {
stopTaskLauncher.launch(it)
}
@@ -168,10 +163,6 @@
* 根据场景查看检查清单
* */
binding.listButton.setOnClickListener {
- if (RuntimeCache.inspectionId.isBlank()) {
- "请先选择场景或者识别出场景再试".show(this)
- return@setOnClickListener
- }
navigatePageTo()
}
}
@@ -269,7 +260,6 @@
) {
Log.d(kTag, "onSegmentation: ")
if (segmentationOutput.isEmpty() || detectOutput.isEmpty()) {
- weakReferenceHandler.sendEmptyMessage(2024083001)
binding.detectView.updateTargetPosition()
} else {
val segmentationResults = ArrayList()
@@ -550,10 +540,6 @@
}).show()
}
}
-
- 2024083001 -> {
-// detectResultDialog.dismiss()
- }
}
return true
}
diff --git a/app/src/main/res/layout/activity_check_manifest_detail.xml b/app/src/main/res/layout/activity_check_manifest_detail.xml
index 2540b6b..5559160 100644
--- a/app/src/main/res/layout/activity_check_manifest_detail.xml
+++ b/app/src/main/res/layout/activity_check_manifest_detail.xml
@@ -140,15 +140,13 @@
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
-
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
-
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_hidden_trouble_base_rule_l.xml b/app/src/main/res/layout/item_hidden_trouble_base_rule_l.xml
new file mode 100644
index 0000000..60fab11
--- /dev/null
+++ b/app/src/main/res/layout/item_hidden_trouble_base_rule_l.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file