From dded7fe1d51cb3da855d02201ca150c9b7fd0495 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 15 九月 2020 10:41:52 +0800
Subject: [PATCH] 修复一键分享功能中,整改建议 没有显示的问题

---
 app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuEvidenceActivity.kt |  121 ++++++++++++++++++++++++----------------
 1 files changed, 73 insertions(+), 48 deletions(-)

diff --git a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuEvidenceActivity.kt b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuEvidenceActivity.kt
index d1fbf75..105a3cc 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuEvidenceActivity.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuEvidenceActivity.kt
@@ -27,12 +27,11 @@
 import java.io.IOException
 import java.util.*
 
-class MenuEvidenceActivity : BaseTakePicActivity() {
+open class MenuEvidenceActivity : BaseTakePicActivity() {
 
     override fun getLayoutId(): Int = R.layout.dialog_take_evidence
 
-    override fun getImageViews(): MutableList<ImageView>
-            = mutableListOf(iv_take_evidence_add_photo1, iv_take_evidence_add_photo2, iv_take_evidence_add_photo3)
+    override fun getImageViews(): MutableList<ImageView> = mutableListOf(iv_take_evidence_add_photo1, iv_take_evidence_add_photo2, iv_take_evidence_add_photo3)
 
     override val picDeletable: Boolean = true
 
@@ -44,6 +43,7 @@
     var lat = 0.0
     var lng = 0.0
 
+    protected var submitTime = 0L//鎻愪氦鏃堕棿锛岄槻姝㈣繛缁彁浜わ紝澶氭璁板綍
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -53,46 +53,25 @@
 
         viewModel = ViewModelProviders.of(this).get(MenuEvidenceViewModel::class.java)
 
+        getExtra()
+        initUI()
+        initObserver()
+
+        viewModel.getLocationList()
+        subTask?.let { t ->
+            scene?.let { s ->
+                viewModel.getProblemType(t.typeno, t.citycode, t.districtcode, s.typeid)
+            }
+        }
+
+    }
+
+    open fun getExtra() {
         subTask = intent.getSerializableExtra("subTask") as Subtask?
         inspection = intent.getSerializableExtra("inspection") as Inspection?
         scene = intent.getSerializableExtra("scene") as Scense?
         lat = intent.getDoubleExtra("lat", 0.0)
         lng = intent.getDoubleExtra("lng", 0.0)
-
-
-        initUI()
-
-        viewModel.locationList.observe(this, Observer {
-            it?.let {
-                sp_take_evidence_select_location.adapter = DomainItemListAdapter(it, this)
-            }
-        })
-
-        viewModel.problemFatherType.observe(this, Observer {
-            it?.let {
-                sp_take_evidence_select_problem_type.adapter = ArrayAdapter(this, R.layout.item_spinner_drop_down, it)
-            }
-        })
-
-        viewModel.problemType.observe(this, Observer {
-            it?.let {
-                sp_take_evidence_select_problem.adapter = ProblemTypeListAdapter(it, this)
-            }
-        })
-
-        viewModel.suggestionList.observe(this, Observer {
-            it.let {
-                sp_take_evidence_select_suggestion.adapter = ArrayAdapter(this, R.layout.item_spinner_drop_down, it)
-            }
-        })
-
-        viewModel.getLocationList()
-        subTask?.let {t ->
-            scene?.let {s ->
-                viewModel.getProblemType(t.typeno, t.citycode, t.districtcode, s.typeid)
-            }
-        }
-
     }
 
     private fun initUI() {
@@ -122,8 +101,11 @@
         }
 
         fab_take_evidence_ok.setOnClickListener {
-            it.isClickable = false
-            putProblem()
+            val now = Date()
+            if (now.time - submitTime >= 1000) {
+                submitTime = now.time
+                putProblem()
+            }
         }
 
         fab_take_evidence_close.setOnClickListener {
@@ -131,7 +113,38 @@
         }
     }
 
-    private fun updateUIByProblemType(visible: Int) {
+    open fun initObserver() {
+        viewModel.locationList.observe(this, Observer {
+            it?.let {
+                sp_take_evidence_select_location.adapter = DomainItemListAdapter(it, this)
+            }
+        })
+
+        viewModel.problemFatherType.observe(this, Observer {
+            it?.let {
+                sp_take_evidence_select_problem_type.adapter = ArrayAdapter(this, R.layout.item_spinner_drop_down, it)
+            }
+        })
+
+        viewModel.problemType.observe(this, Observer {
+            it?.let {
+                sp_take_evidence_select_problem.adapter = ProblemTypeListAdapter(it, this)
+            }
+        })
+
+        viewModel.suggestionList.observe(this, Observer {
+            it.let {
+                sp_take_evidence_select_suggestion.adapter = ArrayAdapter(this, R.layout.item_spinner_drop_down, it)
+                onSuggestionLoaded()
+            }
+        })
+    }
+
+    open fun onSuggestionLoaded() {
+
+    }
+
+    protected fun updateUIByProblemType(visible: Int) {
         sp_take_evidence_select_location.visibility = visible
         et_take_evidence_location.visibility = visible
         iv_take_evidence_add_photo1.visibility = visible
@@ -141,6 +154,10 @@
     }
 
     private fun putProblem() {
+        if (inspection == null || subTask == null || scene == null) {
+            toast("褰撳墠宸℃煡鐘舵�侀敊璇紝鏃犳硶涓婁紶闂锛岃灏濊瘯閲嶆柊鍚姩")
+        }
+
         val problemType = sp_take_evidence_select_problem_type.selectedItem.toString()
 
         val pro = Problemlist().apply {
@@ -150,6 +167,7 @@
             sguid = scene?.guid
             sensename = scene?.name
             senseaddress = "${scene?.cityname ?: ""}${scene?.districtname ?: ""}${scene?.townname ?: ""}${scene?.location ?: ""}"
+
             val p = sp_take_evidence_select_problem.selectedItem
             if (p is Problemtype) {
                 ptguid = p.guid
@@ -191,7 +209,7 @@
         if (problemType != "鎬佸害" && pathTempList.isNotEmpty()) {
             viewModel.putProblem(pro)
             putMediaFile(pro)
-        }else if (problemType == "鎬佸害") {
+        } else if (problemType == "鎬佸害") {
             viewModel.putProblem(pro)
         } else {
             application.toast("鑷冲皯鎷嶄竴寮犵収鐗�")
@@ -199,7 +217,7 @@
         }
     }
 
-    private fun putMediaFile(problem: Problemlist) {
+    protected fun putMediaFile(problem: Problemlist) {
         //淇濆瓨鐓х墖鍒板搴旀枃浠跺す
         val savePathList = ArrayList<File>()
         val calendar = java.util.Calendar.getInstance()
@@ -223,7 +241,11 @@
         fileNameList.add(fileName3)
 
         for (i in pathTempList.indices) {
-            val oldFile = pathTempList[i]
+            //杩囨护涓嶉渶瑕佷笂浼犵殑鍥剧墖
+            if (!pathTempList[i].second) {
+                continue
+            }
+            val oldFile = pathTempList[i].first
             val newFile = savePathList[i]
             //淇濆瓨鍒癿ediaFile鏁版嵁搴�
             val mediaFile = Mediafile()
@@ -261,11 +283,14 @@
     }
 
     //娓呴櫎鎷嶇収鍙栬瘉鐨勭紦瀛�
-    fun clearTemp() {
+    private fun clearTemp() {
         for (i in pathTempList.indices) {
-            val file = pathTempList[i]
-            if (file.exists()) {
-                file.delete()
+            //闇�瑕佷笂浼犵殑鍥剧墖鎵嶆槸鍦ㄦ湰鍦版媿鎽勭殑锛屽甫鏈夌紦瀛�
+            if (pathTempList[i].second) {
+                val file = pathTempList[i].first
+                if (file.exists()) {
+                    file.delete()
+                }
             }
         }
     }

--
Gitblit v1.9.3