From 7be66bc9663c1106ebc78748dc22f394680ac86b Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 29 十二月 2020 09:57:09 +0800
Subject: [PATCH] 1. 修复场景地图界面选择场景点时可能由于列表下标越界导致崩溃问题; 2. 修复自定义PagerAdapter时,没有重写destroyItem可能会导致的崩溃问题; 3. 修改数据库实体类MediaTypeAlias的主键id类型从龙变更为Long,否则无法自增; 4. 新增部分列表相关的工具函数;

---
 app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuCameraActivity.kt |   38 ++++++++++++++++++++++++++++++--------
 1 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuCameraActivity.kt b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuCameraActivity.kt
index f6e86cb..59f991a 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuCameraActivity.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuCameraActivity.kt
@@ -56,6 +56,8 @@
 
     private val viewList = mutableListOf<View>()
 
+    private val listMap = mutableMapOf<MediaFileType, RecyclerView>()
+
     var subTask: Subtask? = null
     var inspection: Inspection? = null
     var scene: Scense? = null
@@ -181,6 +183,10 @@
                 }
 
             }))
+
+            if (!listMap.containsKey(type)) {
+                listMap[type] = this
+            }
         }
 
         viewList.add(view)
@@ -230,21 +236,37 @@
     }
 
     private fun addPhoto(mediaFile: Mediafile) {
-        getDataSet(currentType).run {
-            first.value?.add(mediaFile)
-            second.adapter?.run {
-                notifyDataSetChanged()
+        if (listMap.containsKey(currentType)) {
+            viewModel.fileList.value?.forEach {
+                if (it.type == currentType) {
+                    it.dataList.add(mediaFile)//绗竴涓暟鎹负鎷嶇収鎸夐挳
+                    listMap[currentType]?.adapter?.notifyDataSetChanged()
+                }
             }
         }
+//        getDataSet(currentType).run {
+//            first.value?.add(mediaFile)
+//            second.adapter?.run {
+//                notifyDataSetChanged()
+//            }
+//        }
     }
 
     private fun deletePhoto(pos: Int) {
-        getDataSet(currentType).run {
-            first.value?.removeAt(pos + 1)//绗竴涓暟鎹负鎷嶇収鎸夐挳
-            second.adapter?.run {
-                notifyDataSetChanged()
+        if (listMap.containsKey(currentType)) {
+            viewModel.fileList.value?.forEach {
+                if (it.type == currentType) {
+                    it.dataList.removeAt(pos + 1)//绗竴涓暟鎹负鎷嶇収鎸夐挳
+                    listMap[currentType]?.adapter?.notifyDataSetChanged()
+                }
             }
         }
+//        getDataSet(currentType).run {
+//            first.value?.removeAt(pos + 1)//绗竴涓暟鎹负鎷嶇収鎸夐挳
+//            second.adapter?.run {
+//                notifyDataSetChanged()
+//            }
+//        }
     }
 
     private fun getDataSet(type: MediaFileType) = when (type) {

--
Gitblit v1.9.3