app/src/main/java/cn/flightfeather/thirdapp/module/inspection/InspectionDetailActivity.kt
@@ -13,6 +13,7 @@
import android.view.View
import android.view.animation.AnimationUtils
import android.widget.LinearLayout
import cn.flightfeather.thirdapp.CommonApplication
import cn.flightfeather.thirdapp.R
import cn.flightfeather.thirdapp.activity.GradeActivity
import cn.flightfeather.thirdapp.activity.MapActivity
@@ -58,7 +59,10 @@
        const val PROBLEM_RECHECK = 102//问题复核
        const val PROBLEM_CHECK = 103//问题审核
        const val CHANGE_CHECK = 104//整改审核
        const val PROBLEM_DELETE = 105
    }
    private var taskStatus: String = Domain.TASK_STATUS_FINISHED
    /**
     * 加载完成状态,
@@ -133,28 +137,10 @@
        iv_patrol_back.setOnClickListener(this)
        ll_patrol_task_detail.visibility = View.GONE
        hideMenu()
        viewModel.inspection.observe(this, Observer {
            it?.apply {
                showMenu()
                if (extension1 != null) {
                    val list = extension1.split(";").map{str ->
                        str.split(",").map {str2 ->
                            str2.toDoubleOrNull() ?: 0.0
                        }.takeIf { l-> l.size == 2 }.let {latLng->
                            LatLng(latLng?.get(1) ?: 0.0, latLng?.get(0) ?: 0.0)
                        }
                    }
                    drawPolyline(list)
                    list.firstOrNull()?.let {p->
                        myLatLngList.add(
                                MyLatLng(
                                        p,
                                        drawableId = R.drawable.icon_mark_start_blue,
                                        selected = true
                                )
                        )
                    }
                }
                onDataLoaded(0)
            }
        })
@@ -162,7 +148,7 @@
        viewModel.subTask.observe(this, Observer {
            it?.let {
                updateUIBySubTask(it)
                refreshMenuStatus(it.status)
                taskStatus = it.status
                onDataLoaded(1)
            }
        })
@@ -325,9 +311,36 @@
            result = result.and(it)
        }
        if (result) {
            menuList.forEach {
                it.setOnClickListener(this)
            showMenu()
            refreshMenuStatus(taskStatus)
            viewModel.inspection.value?.extension1?.let{
                val list = it.split(";").map{str ->
                    str.split(",").map {str2 ->
                        str2.toDoubleOrNull() ?: 0.0
                    }.takeIf { l-> l.size == 2 }.let {latLng->
                        LatLng(latLng?.get(1) ?: 0.0, latLng?.get(0) ?: 0.0)
                    }
                }
                //道路监测点和道路类型的场景,直接展示轨迹;其余场景只有管理员和政府部门可以查看
                if (
                        (viewModel.scene.value?.typeid?.toString() == Constant.SCENE_TYPE9 || viewModel.scene.value?.typeid?.toString() == Constant.SCENE_TYPE10)
                        || (CommonApplication.getInstance().currentUser.usertypeid == 0.toByte() || CommonApplication.getInstance().currentUser.usertypeid == 2.toByte())
                ) {
                    drawPolyline(list)
                }
                list.firstOrNull()?.let {p->
                    myLatLngList.add(
                            MyLatLng(
                                    p,
                                    drawableId = R.drawable.icon_mark_start_blue,
                                    selected = true
                            )
                    )
                }
            }
        } else {
            toast("请等待数据加载完成")
        }
@@ -385,7 +398,7 @@
        val address = s.cityname + s.districtname + " " + s.location
        tv_scense_address.text = address
        val contact1 = s.contacts + " " + s.contactst
        val contact1 = s.contacts ?: "" + " " + s.contactst ?: ""
        tv_scense_contact1.text = contact1
        tv_call_contact1.setOnClickListener {
            //打电话
@@ -569,13 +582,13 @@
    }
    private fun startTracking() {
        if (viewModel.scene.value?.typeid?.toString() != Constant.SCENE_TYPE9
                || viewModel.subTask.value?.status != Domain.TASK_STATUS_RUNNING) return
        if (
                viewModel.subTask.value == null ||
                viewModel.subTask.value?.status != Domain.TASK_STATUS_RUNNING
        ) return
        //当继续执行正在进行中的任务时,根据是否有历史轨迹记录来判断是否开启
        if (viewModel.inspection.value?.extension1 != null) {
            needTracking = true
        }
        needTracking = true
        if (!needTracking || timerTaskRunning) return
@@ -613,7 +626,13 @@
                        val distance = AMapUtils.calculateLineDistance(l1, l2)
                        if (distance >= 5) {
                            extension1 = "${extension1};${lng},${lat}"
                            drawPolyline(LatLng(lat, lng))
                            //道路监测点和道路类型的场景,直接展示轨迹;其余场景只有管理员和政府部门可以查看
                            if (
                                    (viewModel.scene.value?.typeid?.toString() == Constant.SCENE_TYPE9 || viewModel.scene.value?.typeid?.toString() == Constant.SCENE_TYPE10)
                                    || (CommonApplication.getInstance().currentUser.usertypeid == 0.toByte() || CommonApplication.getInstance().currentUser.usertypeid == 2.toByte())
                            ) {
                                drawPolyline(LatLng(lat, lng))
                            }
                        }
                    }
                }
@@ -623,7 +642,7 @@
    }
    private fun trackingDone() {
        if (!needTracking || !timerTaskRunning) return
        if (!timerTaskRunning) return
        aMap.moveCamera(CameraUpdateFactory.zoomTo(zoomLevel))
@@ -648,6 +667,7 @@
                } else {
                    it.problemcount + 1
                }
                // fixme: 2020/9/1 此处原本的逻辑是新增一个问题后,同步更新巡查信息中的问题数,错误,应该将此更新操作直接由新增问题接口统一完成
                viewModel.updateInspection(it)
            }
@@ -664,10 +684,16 @@
    //开始导航
    private fun startNavi() {
        val sourceLatLng = LatLng(viewModel.scene.value?.getLatitude()!!, viewModel.scene.value?.getLongitude()!!)
        val amapNavi = AmapNavi(this)
        amapNavi.startNavi(sourceLatLng.latitude, sourceLatLng.longitude)
        if (viewModel.scene.value != null) {
            val sourceLatLng = LatLng(
                    viewModel.scene.value!!.latitude,
                    viewModel.scene.value!!.longitude
            )
            val amapNavi = AmapNavi(this)
            amapNavi.startNavi(sourceLatLng.latitude, sourceLatLng.longitude)
        } else {
            toast("导航目前不可用,请稍后再试")
        }
    }
    override fun onClick(v: View?) {
@@ -716,8 +742,9 @@
                val intent = Intent(this, MenuProblemListActivity::class.java).apply {
                    putExtra("subTask", viewModel.subTask.value)
                    putExtra("inspection", viewModel.inspection.value)
                    putExtra("scenseLat", viewModel.scene.value?.latitude)
                    putExtra("scenseLng", viewModel.scene.value?.longitude)
                    putExtra("scene", viewModel.scene.value)
                    putExtra("lat", viewModel.scene.value?.latitude)
                    putExtra("lng", viewModel.scene.value?.longitude)
                }
                startActivity(intent)
            }
@@ -726,8 +753,8 @@
                val intent = Intent(this, MenuChangeActivity::class.java).apply {
                    putExtra("subTask", viewModel.subTask.value)
                    putExtra("inspection", viewModel.inspection.value)
                    putExtra("scenseLat", viewModel.scene.value?.latitude)
                    putExtra("scenseLng", viewModel.scene.value?.longitude)
                    putExtra("lat", viewModel.scene.value?.latitude)
                    putExtra("lng", viewModel.scene.value?.longitude)
                }
                startActivity(intent)
            }
@@ -835,7 +862,7 @@
                }
                startActivity(intent)
            }
            //问题审核
            //整改审核
            R.id.ln_patrol_change_check -> {
                val intent = Intent(this, MenuChangeCheckActivity::class.java).apply {
                    putExtra("subTask", viewModel.subTask.value)