| | |
| | | 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) |
| | | iv_patrol_back.setOnClickListener(this) |
| | | ll_patrol_task_detail.visibility = View.GONE |
| | | |
| | | user_account.setOnClickListener(this) |
| | | |
| | | hideMenu() |
| | | |
| | | 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("请等待数据加载完成") |
| | | } |
| | |
| | | |
| | | //添加 用户类型为“主管部门”或“管理员”,编号为2或0时,按钮iv_startEndTask没有点击事件 |
| | | if (viewModel.userTypeId != Domain.USER_COMPTENT.toByte() |
| | | && viewModel.userTypeId != Domain.USER_ADMIN.toByte()) { |
| | | // && viewModel.userTypeId != Domain.USER_ADMIN.toByte() |
| | | ) { |
| | | iv_start_end_task.setOnClickListener(this) |
| | | } else { |
| | | iv_start_end_task.alpha = 0.5f |
| | |
| | | |
| | | 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)) |
| | | |
| | |
| | | |
| | | //开始导航 |
| | | 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?) { |
| | | when (v?.id) { |
| | | // 查看或获取用户账户信息 |
| | | R.id.user_account -> { |
| | | val intent = Intent(this, MenuSceneAccountActivity::class.java).apply { |
| | | putExtra("sceneId", viewModel.scene.value?.guid) |
| | | putExtra("sceneName", viewModel.scene.value?.name) |
| | | } |
| | | startActivity(intent) |
| | | } |
| | | //底部viewPager隐藏 |
| | | R.id.ll_patrol_hide -> hideMenu() |
| | | //底部viewPager显示 |