| | |
| | | import android.app.Activity |
| | | import android.arch.lifecycle.Observer |
| | | import android.arch.lifecycle.ViewModelProviders |
| | | import android.content.DialogInterface |
| | | import android.content.Intent |
| | | import android.net.Uri |
| | | import android.os.Bundle |
| | |
| | | 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 |
| | | import cn.flightfeather.thirdapp.activity.ProblemDetailActivity |
| | | import cn.flightfeather.thirdapp.activity.PromiseActivity |
| | | import cn.flightfeather.thirdapp.adapter.IconsPageAdapter |
| | | import cn.flightfeather.thirdapp.bean.Mediafile |
| | | import cn.flightfeather.thirdapp.bean.Scense |
| | | import cn.flightfeather.thirdapp.bean.Subtask |
| | | import cn.flightfeather.thirdapp.bean.entity.Mediafile |
| | | import cn.flightfeather.thirdapp.bean.entity.Scense |
| | | import cn.flightfeather.thirdapp.bean.entity.Subtask |
| | | import cn.flightfeather.thirdapp.bean.vo.ProblemlistVo |
| | | import cn.flightfeather.thirdapp.model.event.InspectionEvent |
| | | import cn.flightfeather.thirdapp.model.event.ProblemEvent |
| | |
| | | |
| | | super.onCreate(savedInstanceState) |
| | | |
| | | initIconViewPager() |
| | | // initIconViewPager() |
| | | initLocation() |
| | | |
| | | ll_show_hide_detail.setOnClickListener(this) |
| | |
| | | |
| | | viewModel.inspection.observe(this, Observer { |
| | | it?.apply { |
| | | 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) |
| | | } |
| | | }) |
| | |
| | | result = result.and(it) |
| | | } |
| | | if (result) { |
| | | initIconViewPager() |
| | | 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("请等待数据加载完成") |
| | | } |
| | |
| | | |
| | | private fun startTracking() { |
| | | if ( |
| | | // viewModel.scene.value?.typeid?.toString() != Constant.SCENE_TYPE9 || |
| | | 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 |
| | | |
| | |
| | | timerTaskRunning = true |
| | | } |
| | | |
| | | val lng = round(longitudeCurrent * 1000) / 1000 |
| | | val lat = round(latitudeCurrent * 1000) / 1000 |
| | | val lng = round(longitudeCurrent * 1000000) / 1000000 |
| | | val lat = round(latitudeCurrent * 1000000) / 1000000 |
| | | |
| | | viewModel.inspection.value?.apply { |
| | | if (extension1 == null) { |
| | |
| | | val l1 = LatLng(lat, lng) |
| | | val l2 = LatLng(last[1], last[0]) |
| | | val distance = AMapUtils.calculateLineDistance(l1, l2) |
| | | if (distance >= 5) { |
| | | if (distance >= 1 && distance < 1000 && lat != 0.0 && lng != 0.0) { |
| | | 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)) |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | private fun trackingDone() { |
| | | if (!needTracking || !timerTaskRunning) return |
| | | if (!timerTaskRunning) return |
| | | |
| | | aMap.moveCamera(CameraUpdateFactory.zoomTo(zoomLevel)) |
| | | |
| | |
| | | } else { |
| | | it.problemcount + 1 |
| | | } |
| | | // fixme: 2020/9/1 此处原本的逻辑是新增一个问题后,同步更新巡查信息中的问题数,错误,应该将此更新操作直接由新增问题接口统一完成 |
| | | viewModel.updateInspection(it) |
| | | } |
| | | |
| | |
| | | |
| | | //开始导航 |
| | | 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?) { |