Merge branch 'master' of https://gitlab.navinfo.com/CollectVehicle/OneMapQS
This commit is contained in:
@@ -77,7 +77,7 @@ class TaskUploadScope(
|
||||
taskBean.operationTime = DateTimeUtil.getNowDate().time
|
||||
uploadData.postValue(taskBean)
|
||||
//同步中不进行状态记录,只做界面变更显示
|
||||
if(status!=FileUploadStatus.UPLOADING){
|
||||
if (status != FileUploadStatus.UPLOADING) {
|
||||
launch {
|
||||
val realm = Realm.getDefaultInstance()
|
||||
realm.executeTransaction {
|
||||
@@ -118,7 +118,7 @@ class TaskUploadScope(
|
||||
|
||||
val bodyList: MutableList<EvaluationInfo> = ArrayList()
|
||||
|
||||
if (taskBean.syncStatus == FileUploadStatus.WAITING){
|
||||
if (taskBean.syncStatus == FileUploadStatus.WAITING) {
|
||||
change(FileUploadStatus.UPLOADING)
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ class TaskUploadScope(
|
||||
|
||||
val linkStatus = 1
|
||||
//存在原因标记未测评
|
||||
if(hadLinkDvoBean.reason.isNotEmpty()){
|
||||
if (hadLinkDvoBean.reason.isNotEmpty()) {
|
||||
//未测评
|
||||
val linkStatus = 0
|
||||
|
||||
@@ -156,23 +156,24 @@ class TaskUploadScope(
|
||||
|
||||
bodyList.add(evaluationInfo)
|
||||
|
||||
}else{
|
||||
} else {
|
||||
|
||||
val linkStatus = hadLinkDvoBean.linkStatus
|
||||
|
||||
var s: String = "%.3f".format(hadLinkDvoBean.linkLength)//保留一位小数(且支持四舍五入)
|
||||
var s: String = "%.3f".format(hadLinkDvoBean.length)//保留一位小数(且支持四舍五入)
|
||||
|
||||
val objects = realm.where(QsRecordBean::class.java).equalTo("linkId", /*"84207223282277331"*/hadLinkDvoBean.linkPid).findAll()
|
||||
val objects = realm.where(QsRecordBean::class.java)
|
||||
.equalTo("linkId", /*"84207223282277331"*/hadLinkDvoBean.linkPid).findAll()
|
||||
|
||||
if (objects != null&&objects.size>0) {
|
||||
if (objects != null && objects.size > 0) {
|
||||
val copyList = realm.copyFromRealm(objects)
|
||||
copyList.forEach {
|
||||
var problemType = 0
|
||||
if(it.problemType=="错误"){
|
||||
if (it.problemType == "错误") {
|
||||
problemType = 0
|
||||
}else if(it.problemType=="多余"){
|
||||
} else if (it.problemType == "多余") {
|
||||
problemType = 1
|
||||
}else if(it.problemType=="遗漏"){
|
||||
} else if (it.problemType == "遗漏") {
|
||||
problemType = 2
|
||||
}
|
||||
var evaluationWay = 2
|
||||
@@ -207,16 +208,16 @@ class TaskUploadScope(
|
||||
|
||||
}
|
||||
|
||||
if(bodyList.size>0){
|
||||
if (bodyList.size > 0) {
|
||||
val result = uploadManager.netApi.postRequest(bodyList)// .enqueue(object :
|
||||
// Callback<ResponseBody> {
|
||||
if (result.isSuccessful) {
|
||||
if (result.code() == 200&&result.body()!=null) {
|
||||
if (result.code() == 200 && result.body() != null) {
|
||||
val defaultUserResponse = result.body() as DefaultResponse<*>
|
||||
if(defaultUserResponse.success){
|
||||
change(FileUploadStatus.DONE,"上传成功")
|
||||
}else{
|
||||
change(FileUploadStatus.ERROR,"${defaultUserResponse.msg}")
|
||||
if (defaultUserResponse.success) {
|
||||
change(FileUploadStatus.DONE, "上传成功")
|
||||
} else {
|
||||
change(FileUploadStatus.ERROR, "${defaultUserResponse.msg}")
|
||||
}
|
||||
} else {
|
||||
// handle the failure
|
||||
@@ -225,7 +226,7 @@ class TaskUploadScope(
|
||||
} else {
|
||||
change(FileUploadStatus.ERROR)
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
change(FileUploadStatus.NONE)
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
|
||||
@@ -63,7 +63,6 @@ import javax.inject.Inject
|
||||
* 创建Activity全局viewmode
|
||||
*/
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
@HiltViewModel
|
||||
class MainViewModel @Inject constructor(
|
||||
private val mapController: NIMapController,
|
||||
@@ -161,6 +160,8 @@ class MainViewModel @Inject constructor(
|
||||
//线选择状态
|
||||
if (bSelectRoad) {
|
||||
captureLink(it)
|
||||
} else {
|
||||
captureItem(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -181,7 +182,7 @@ class MainViewModel @Inject constructor(
|
||||
val res = realm.where(TaskBean::class.java).equalTo("id", id).findFirst()
|
||||
if (res != null) {
|
||||
val taskBean = realm.copyFromRealm(res)
|
||||
mapController.lineHandler.omdbTaskLinkLayer.addLineList(taskBean.hadLinkDvoList)
|
||||
mapController.lineHandler.showTaskLines(taskBean.hadLinkDvoList)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -234,7 +235,6 @@ class MainViewModel @Inject constructor(
|
||||
/**
|
||||
* 初始化定位信息
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
private fun initLocation() {
|
||||
//用于定位点存储到数据库
|
||||
viewModelScope.launch(Dispatchers.Default) {
|
||||
@@ -301,10 +301,16 @@ class MainViewModel @Inject constructor(
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 捕捉要素
|
||||
*/
|
||||
private suspend fun captureItem(point: GeoPoint) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 捕获道路和面板
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
private suspend fun captureLink(point: GeoPoint) {
|
||||
|
||||
val linkList = realmOperateHelper.queryLink(
|
||||
@@ -571,10 +577,8 @@ class MainViewModel @Inject constructor(
|
||||
bSelectRoad = select
|
||||
//去掉缓存
|
||||
linkIdCache = ""
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mapController.lineHandler.removeLine()
|
||||
liveDataSignList.value = mutableListOf()
|
||||
}
|
||||
mapController.lineHandler.removeLine()
|
||||
liveDataSignList.value = mutableListOf()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -154,9 +154,7 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
viewModelScope.launch {
|
||||
val link = realmOperateHelper.queryLink(linkId)
|
||||
link?.let { l ->
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mapController.lineHandler.showLine(l.geometry)
|
||||
}
|
||||
mapController.lineHandler.showLine(l.geometry)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -366,41 +364,39 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
*/
|
||||
|
||||
fun initData(id: String) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
|
||||
Realm.getDefaultInstance().use { realm ->
|
||||
realm.executeTransactionAsync { bgRealm ->
|
||||
// find the item
|
||||
val objects =
|
||||
bgRealm.where(QsRecordBean::class.java).equalTo("id", id).findFirst()
|
||||
if (objects != null) {
|
||||
oldBean = bgRealm.copyFromRealm(objects)
|
||||
oldBean?.let {
|
||||
liveDataQsRecordBean.postValue(it.copy())
|
||||
val p = GeometryTools.createGeoPoint(it.geometry)
|
||||
mapController.markerHandle.addMarker(
|
||||
GeoPoint(
|
||||
p.latitude,
|
||||
p.longitude
|
||||
), markerTitle
|
||||
)
|
||||
Realm.getDefaultInstance().use { realm ->
|
||||
realm.executeTransactionAsync { bgRealm ->
|
||||
// find the item
|
||||
val objects =
|
||||
bgRealm.where(QsRecordBean::class.java).equalTo("id", id).findFirst()
|
||||
if (objects != null) {
|
||||
oldBean = bgRealm.copyFromRealm(objects)
|
||||
oldBean?.let {
|
||||
liveDataQsRecordBean.postValue(it.copy())
|
||||
val p = GeometryTools.createGeoPoint(it.geometry)
|
||||
mapController.markerHandle.addMarker(
|
||||
GeoPoint(
|
||||
p.latitude,
|
||||
p.longitude
|
||||
), markerTitle
|
||||
)
|
||||
|
||||
//获取linkid
|
||||
if (it.linkId.isNotEmpty()) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val link = realmOperateHelper.queryLink(it.linkId)
|
||||
link?.let { l ->
|
||||
mapController.lineHandler.showLine(l.geometry)
|
||||
}
|
||||
//获取linkid
|
||||
if (it.linkId.isNotEmpty()) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val link = realmOperateHelper.queryLink(it.linkId)
|
||||
link?.let { l ->
|
||||
mapController.lineHandler.showLine(l.geometry)
|
||||
}
|
||||
}
|
||||
liveDataQsRecordBean.value?.attachmentBeanList =
|
||||
it.attachmentBeanList
|
||||
// 显示语音数据到界面
|
||||
getChatMsgEntityList()
|
||||
}
|
||||
liveDataQsRecordBean.value?.attachmentBeanList =
|
||||
it.attachmentBeanList
|
||||
// 显示语音数据到界面
|
||||
getChatMsgEntityList()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -411,7 +407,6 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
/**
|
||||
* 查询问题类型列表
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
fun getChatMsgEntityList() {
|
||||
val chatMsgEntityList: MutableList<ChatMsgEntity> = ArrayList()
|
||||
liveDataQsRecordBean.value?.attachmentBeanList?.forEach {
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package com.navinfo.omqs.ui.fragment.evaluationresult
|
||||
|
||||
import android.os.Build
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.RequiresApi
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.bean.ScProblemTypeBean
|
||||
import com.navinfo.omqs.databinding.TextItemSelectBinding
|
||||
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
|
||||
@@ -21,7 +18,6 @@ class LeftAdapter(private var itemListener: ((Int, String) -> Unit?)? = null) :
|
||||
return BaseViewHolder(viewBinding)
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
|
||||
val bd = holder.viewBinding as TextItemSelectBinding
|
||||
val title = data[position]
|
||||
|
||||
@@ -20,7 +20,6 @@ class MiddleAdapter(private var itemListener: ((Int, String) -> Unit?)? = null)
|
||||
return BaseViewHolder(viewBinding)
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
|
||||
val bd = holder.viewBinding as TextItemSelectBinding
|
||||
val title = data[position]
|
||||
@@ -30,10 +29,10 @@ class MiddleAdapter(private var itemListener: ((Int, String) -> Unit?)? = null)
|
||||
bd.itemLayout.layoutParams = layoutParams
|
||||
if (selectTitle == title) {
|
||||
bd.itemId.setBackgroundResource(R.drawable.shape_bg_blue_bg_4_radius)
|
||||
bd.itemId.setTextColor(holder.viewBinding.root.context.getColor(R.color.white))
|
||||
bd.itemId.setTextColor(holder.viewBinding.root.context.resources.getColor(R.color.white))
|
||||
} else {
|
||||
bd.itemId.setBackgroundResource(R.drawable.shape_rect_white_2dp_bg)
|
||||
bd.itemId.setTextColor(holder.viewBinding.root.context.getColor(R.color.black))
|
||||
bd.itemId.setTextColor(holder.viewBinding.root.context.resources.getColor(R.color.black))
|
||||
}
|
||||
bd.root.setOnClickListener {
|
||||
if (selectTitle != title) {
|
||||
|
||||
@@ -73,13 +73,11 @@ class PhenomenonFragment :
|
||||
}
|
||||
binding.phenomenonRightRecyclerview.adapter = rightAdapter
|
||||
//右侧菜单增加组标题
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
binding.phenomenonRightRecyclerview.addItemDecoration(
|
||||
RightGroupHeaderDecoration(
|
||||
requireContext()
|
||||
)
|
||||
binding.phenomenonRightRecyclerview.addItemDecoration(
|
||||
RightGroupHeaderDecoration(
|
||||
requireContext()
|
||||
)
|
||||
}
|
||||
)
|
||||
//右侧菜单查询数据监听
|
||||
viewModel.liveDataRightTypeList.observe(viewLifecycleOwner) {
|
||||
rightAdapter.setSelectTitle(viewModel.liveDataQsRecordBean.value!!.phenomenon)
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package com.navinfo.omqs.ui.fragment.evaluationresult
|
||||
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
@@ -50,13 +48,11 @@ class ProblemLinkFragment : BaseFragment() {
|
||||
}
|
||||
binding.linkRightRecyclerview.adapter = rightAdapter
|
||||
//右侧菜单增加组标题
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
binding.linkRightRecyclerview.addItemDecoration(
|
||||
RightGroupHeaderDecoration(
|
||||
requireContext()
|
||||
)
|
||||
binding.linkRightRecyclerview.addItemDecoration(
|
||||
RightGroupHeaderDecoration(
|
||||
requireContext()
|
||||
)
|
||||
}
|
||||
)
|
||||
//右侧菜单查询数据监听
|
||||
viewModel.liveDataRightTypeList.observe(viewLifecycleOwner) {
|
||||
rightAdapter.setSelectTitle(viewModel.liveDataQsRecordBean.value!!.cause)
|
||||
|
||||
@@ -5,9 +5,7 @@ import android.graphics.Canvas
|
||||
import android.graphics.Color
|
||||
import android.graphics.Paint
|
||||
import android.graphics.Rect
|
||||
import android.os.Build
|
||||
import android.view.View
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.recyclerview.widget.RecyclerView.ItemDecoration
|
||||
@@ -17,7 +15,6 @@ import com.navinfo.omqs.R
|
||||
/**
|
||||
* 自定义装饰器(实现分组+吸顶效果)
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
class RightGroupHeaderDecoration(context: Context) : ItemDecoration() {
|
||||
//头部的高
|
||||
private val mItemHeaderHeight: Int
|
||||
@@ -35,7 +32,7 @@ class RightGroupHeaderDecoration(context: Context) : ItemDecoration() {
|
||||
mTextPaddingLeft = dp2px(context, 6f)
|
||||
mTextRect = Rect()
|
||||
mItemHeaderPaint = Paint(Paint.ANTI_ALIAS_FLAG)
|
||||
mItemHeaderPaint.color = context.getColor(R.color.btn_bg_blue)
|
||||
mItemHeaderPaint.color = context.resources.getColor(R.color.btn_bg_blue)
|
||||
mTextPaint = Paint(Paint.ANTI_ALIAS_FLAG)
|
||||
mTextPaint.textSize = 46f
|
||||
mTextPaint.color = Color.WHITE
|
||||
|
||||
@@ -78,9 +78,7 @@ class CanvasFragment : BaseFragment() {
|
||||
|
||||
canvasView.setStyle(mStyle)
|
||||
if (mColor == -1) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mColor = resources.getColor(R.color.black, null)
|
||||
}
|
||||
mColor = resources.getColor(R.color.black)
|
||||
}
|
||||
canvasView.setPaintColor(mColor)
|
||||
canvasView.setPaintWidth(width)
|
||||
|
||||
@@ -42,6 +42,8 @@ class TaskLinkFragment : BaseFragment(), View.OnClickListener {
|
||||
binding.taskLinkDataLevel.setOnClickListener(this)
|
||||
binding.taskLinkBarCancel.setOnClickListener(this)
|
||||
binding.taskLinkBarSave.setOnClickListener(this)
|
||||
binding.taskLinkBack.setOnClickListener(this)
|
||||
binding.taskLinkClear.setOnClickListener(this)
|
||||
/**
|
||||
* 数据操作结束
|
||||
*/
|
||||
@@ -86,13 +88,11 @@ class TaskLinkFragment : BaseFragment(), View.OnClickListener {
|
||||
/**
|
||||
* 线长度
|
||||
*/
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mapController.measureLayerHandler.lineLenghtLiveData.observe(viewLifecycleOwner) {
|
||||
binding.taskLinkLength.text = "${it}米"
|
||||
}
|
||||
mapController.measureLayerHandler.tempLineDistanceLiveData.observe(viewLifecycleOwner) {
|
||||
(activity as MainActivity).setHomeCenterText(it)
|
||||
}
|
||||
mapController.measureLayerHandler.lineLengthLiveData.observe(viewLifecycleOwner) {
|
||||
binding.taskLinkLength.text = "${it}米"
|
||||
}
|
||||
mapController.measureLayerHandler.tempLineDistanceLiveData.observe(viewLifecycleOwner) {
|
||||
(activity as MainActivity).setHomeCenterText(it)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,9 +142,13 @@ class TaskLinkFragment : BaseFragment(), View.OnClickListener {
|
||||
onBackPressed()
|
||||
}
|
||||
binding.taskLinkBarSave -> {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
viewModel.saveData()
|
||||
}
|
||||
viewModel.saveData()
|
||||
}
|
||||
binding.taskLinkBack -> {
|
||||
viewModel.removeLinkLastPoint()
|
||||
}
|
||||
binding.taskLinkClear -> {
|
||||
viewModel.clearLink()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import com.navinfo.omqs.ui.other.BaseViewHolder
|
||||
|
||||
data class TaskLinkInfoAdapterItem(
|
||||
val title: String,
|
||||
val type: String
|
||||
val type: Int
|
||||
)
|
||||
|
||||
class TaskLinkMiddleAdapter(private var itemListener: ((Int, TaskLinkInfoAdapterItem) -> Unit?)? = null) :
|
||||
@@ -26,17 +26,16 @@ class TaskLinkMiddleAdapter(private var itemListener: ((Int, TaskLinkInfoAdapter
|
||||
return BaseViewHolder(viewBinding)
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
|
||||
val binding = holder.viewBinding as AdapterTaskLinkInfoBinding
|
||||
binding.title.text = data[position].title
|
||||
|
||||
if (selectTitle == binding.title.text) {
|
||||
binding.title.setBackgroundResource(R.drawable.shape_bg_blue_bg_4_radius)
|
||||
binding.title.setTextColor(holder.viewBinding.root.context.getColor(R.color.white))
|
||||
binding.title.setTextColor(holder.viewBinding.root.context.resources.getColor(R.color.white))
|
||||
} else {
|
||||
binding.title.setBackgroundResource(R.drawable.shape_rect_white_2dp_bg)
|
||||
binding.title.setTextColor(holder.viewBinding.root.context.getColor(R.color.black))
|
||||
binding.title.setTextColor(holder.viewBinding.root.context.resources.getColor(R.color.black))
|
||||
}
|
||||
binding.root.setOnClickListener {
|
||||
if (selectTitle != data[position].title) {
|
||||
|
||||
@@ -7,6 +7,7 @@ import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.navinfo.collect.library.data.entity.HadLinkDvoBean
|
||||
import com.navinfo.collect.library.data.entity.LinkInfoBean
|
||||
import com.navinfo.collect.library.data.entity.TaskBean
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.collect.library.utils.GeometryTools
|
||||
@@ -32,38 +33,38 @@ class TaskLinkViewModel @Inject constructor(
|
||||
* 种别
|
||||
*/
|
||||
private val kindList = listOf(
|
||||
TaskLinkInfoAdapterItem("高速道路", "1"),
|
||||
TaskLinkInfoAdapterItem("城市高速", "2"),
|
||||
TaskLinkInfoAdapterItem("国道", "3"),
|
||||
TaskLinkInfoAdapterItem("省道", "4"),
|
||||
TaskLinkInfoAdapterItem("县道", "6"),
|
||||
TaskLinkInfoAdapterItem("乡镇村道路", "7"),
|
||||
TaskLinkInfoAdapterItem("其他道路", "8"),
|
||||
TaskLinkInfoAdapterItem("非引导道路", "9"),
|
||||
TaskLinkInfoAdapterItem("步行道路", "10"),
|
||||
TaskLinkInfoAdapterItem("人渡", "11"),
|
||||
TaskLinkInfoAdapterItem("轮渡", "13"),
|
||||
TaskLinkInfoAdapterItem("自行车道路", "15"),
|
||||
TaskLinkInfoAdapterItem("高速道路", 1),
|
||||
TaskLinkInfoAdapterItem("城市高速", 2),
|
||||
TaskLinkInfoAdapterItem("国道", 3),
|
||||
TaskLinkInfoAdapterItem("省道", 4),
|
||||
TaskLinkInfoAdapterItem("县道", 6),
|
||||
TaskLinkInfoAdapterItem("乡镇村道路", 7),
|
||||
TaskLinkInfoAdapterItem("其他道路", 8),
|
||||
TaskLinkInfoAdapterItem("非引导道路", 9),
|
||||
TaskLinkInfoAdapterItem("步行道路", 10),
|
||||
TaskLinkInfoAdapterItem("人渡", 11),
|
||||
TaskLinkInfoAdapterItem("轮渡", 13),
|
||||
TaskLinkInfoAdapterItem("自行车道路", 15),
|
||||
)
|
||||
|
||||
/**
|
||||
* FunctionGrade 功能等级
|
||||
*/
|
||||
private val functionLevelList = listOf(
|
||||
TaskLinkInfoAdapterItem("等级1", "1"),
|
||||
TaskLinkInfoAdapterItem("等级2", "2"),
|
||||
TaskLinkInfoAdapterItem("等级3", "3"),
|
||||
TaskLinkInfoAdapterItem("等级4", "4"),
|
||||
TaskLinkInfoAdapterItem("等级5", "5"),
|
||||
TaskLinkInfoAdapterItem("等级1", 1),
|
||||
TaskLinkInfoAdapterItem("等级2", 2),
|
||||
TaskLinkInfoAdapterItem("等级3", 3),
|
||||
TaskLinkInfoAdapterItem("等级4", 4),
|
||||
TaskLinkInfoAdapterItem("等级5", 5),
|
||||
)
|
||||
|
||||
/**
|
||||
* 数据级别
|
||||
*/
|
||||
private val dataLevelList = listOf(
|
||||
TaskLinkInfoAdapterItem("Pro lane model(有高精车道模型覆盖的高速和城高link)", "1"),
|
||||
TaskLinkInfoAdapterItem("Lite lane model(有高精车道模型覆盖的普通路link)", "2"),
|
||||
TaskLinkInfoAdapterItem("Standard road model(其他link)", "3"),
|
||||
TaskLinkInfoAdapterItem("Pro lane model(有高精车道模型覆盖的高速和城高link)", 1),
|
||||
TaskLinkInfoAdapterItem("Lite lane model(有高精车道模型覆盖的普通路link)", 2),
|
||||
TaskLinkInfoAdapterItem("Standard road model(其他link)", 3),
|
||||
)
|
||||
|
||||
/**
|
||||
@@ -125,9 +126,7 @@ class TaskLinkViewModel @Inject constructor(
|
||||
* 编辑点
|
||||
*/
|
||||
fun addPoint() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mapController.measureLayerHandler.drawLineOrPolygon(false)
|
||||
}
|
||||
mapController.measureLayerHandler.drawLineOrPolygon(false)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -154,9 +153,7 @@ class TaskLinkViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mapController.measureLayerHandler.clear()
|
||||
}
|
||||
mapController.measureLayerHandler.clear()
|
||||
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
|
||||
super.onCleared()
|
||||
}
|
||||
@@ -164,7 +161,6 @@ class TaskLinkViewModel @Inject constructor(
|
||||
/**
|
||||
* 保存数据
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
fun saveData() {
|
||||
viewModelScope.launch(Dispatchers.Default) {
|
||||
if (liveDataTaskBean.value == null) {
|
||||
@@ -189,10 +185,16 @@ class TaskLinkViewModel @Inject constructor(
|
||||
return@launch
|
||||
}
|
||||
val linkBean = HadLinkDvoBean(
|
||||
// taskId = liveDataTaskBean.value!!.id,
|
||||
linkPid = UUID.randomUUID().toString(),
|
||||
linkStatus = 3,
|
||||
geometry = GeometryTools.getLineString(mapController.measureLayerHandler.mPathLayer.points),
|
||||
linkLength = mapController.measureLayerHandler.lineLenghtLiveData.value!!,
|
||||
linkInfo = LinkInfoBean(
|
||||
kind = liveDataSelectKind.value!!.type,
|
||||
functionLevel = liveDataSelectFunctionLevel.value!!.type,
|
||||
dataLevel = liveDataSelectDataLevel.value!!.type,
|
||||
length = mapController.measureLayerHandler.lineLengthLiveData.value!!,
|
||||
)
|
||||
)
|
||||
val task: TaskBean = liveDataTaskBean.value!!
|
||||
task.hadLinkDvoList.add(linkBean)
|
||||
@@ -200,6 +202,7 @@ class TaskLinkViewModel @Inject constructor(
|
||||
realm.executeTransaction {
|
||||
it.copyToRealmOrUpdate(task)
|
||||
}
|
||||
mapController.lineHandler.addTaskLink(linkBean)
|
||||
sharedPreferences.edit().putString(Constant.SHARED_SYNC_TASK_LINK_ID, linkBean.linkPid)
|
||||
.apply()
|
||||
liveDataFinish.postValue(true)
|
||||
@@ -214,4 +217,18 @@ class TaskLinkViewModel @Inject constructor(
|
||||
getTaskBean()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 绘制线的时候回退点
|
||||
*/
|
||||
fun removeLinkLastPoint() {
|
||||
mapController.measureLayerHandler.drawLineBackspace()
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除重绘
|
||||
*/
|
||||
fun clearLink() {
|
||||
mapController.measureLayerHandler.clear()
|
||||
}
|
||||
}
|
||||
@@ -43,10 +43,7 @@ class TaskListFragment : BaseFragment() {
|
||||
|
||||
when (status) {
|
||||
TaskListAdapter.Companion.ItemClickStatus.ITEM_LAYOUT_CLICK -> {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
viewModel.setSelectTaskBean(taskBean)
|
||||
} else {
|
||||
}
|
||||
viewModel.setSelectTaskBean(taskBean)
|
||||
}
|
||||
TaskListAdapter.Companion.ItemClickStatus.DELETE_LAYOUT_CLICK -> {
|
||||
showLoadingDialog("正在关闭")
|
||||
@@ -83,7 +80,7 @@ class TaskListFragment : BaseFragment() {
|
||||
binding.taskListRecyclerview.layoutManager = layoutManager
|
||||
binding.taskListRecyclerview.adapter = adapter
|
||||
viewModel.liveDataTaskList.observe(viewLifecycleOwner) {
|
||||
adapter.initSelectTask(it,viewModel.currentSelectTaskBean?.id)
|
||||
adapter.initSelectTask(it, viewModel.currentSelectTaskBean?.id)
|
||||
}
|
||||
|
||||
//监听并调用上传
|
||||
|
||||
@@ -159,9 +159,7 @@ class TaskViewModel @Inject constructor(
|
||||
currentSelectTaskBean = item
|
||||
liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList)
|
||||
withContext(Dispatchers.Main) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
showTaskLinks(currentSelectTaskBean!!)
|
||||
}
|
||||
showTaskLinks(currentSelectTaskBean!!)
|
||||
}
|
||||
break
|
||||
}
|
||||
@@ -180,19 +178,15 @@ class TaskViewModel @Inject constructor(
|
||||
currentSelectTaskBean = taskBean
|
||||
|
||||
liveDataTaskLinks.value = taskBean.hadLinkDvoList
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
showTaskLinks(taskBean)
|
||||
}
|
||||
showTaskLinks(taskBean)
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
private fun showTaskLinks(taskBean: TaskBean) {
|
||||
|
||||
mapController.lineHandler.omdbTaskLinkLayer.removeAll()
|
||||
mapController.lineHandler.removeAllTaskLine()
|
||||
mapController.markerHandle.clearNiLocationLayer()
|
||||
|
||||
if (taskBean.hadLinkDvoList.isNotEmpty()) {
|
||||
mapController.lineHandler.omdbTaskLinkLayer.addLineList(taskBean.hadLinkDvoList)
|
||||
mapController.lineHandler.showTaskLines(taskBean.hadLinkDvoList)
|
||||
var maxX = 0.0
|
||||
var maxY = 0.0
|
||||
var minX = 0.0
|
||||
@@ -238,9 +232,9 @@ class TaskViewModel @Inject constructor(
|
||||
/**
|
||||
* 高亮当前选中的link
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
fun showCurrentLink(link: HadLinkDvoBean) {
|
||||
mapController.lineHandler.omdbTaskLinkLayer.showSelectLine(link)
|
||||
mapController.lineHandler.showLine(link.geometry)
|
||||
// mapController.lineHandler.omdbTaskLinkLayer.showSelectLine(link)
|
||||
val geometry = GeometryTools.createGeometry(link.geometry)
|
||||
if (geometry != null) {
|
||||
val envelope = geometry.envelopeInternal
|
||||
@@ -255,9 +249,8 @@ class TaskViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
mapController.lineHandler.omdbTaskLinkLayer.clearSelectLine()
|
||||
}
|
||||
mapController.lineHandler.removeLine()
|
||||
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
|
||||
super.onCleared()
|
||||
}
|
||||
|
||||
|
||||
@@ -122,18 +122,16 @@ class TextProgressButtonBar : View {
|
||||
* 绘制进度值
|
||||
*/
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
val shader = LinearGradient(
|
||||
oval.left,
|
||||
oval.top,
|
||||
oval.right,
|
||||
oval.bottom,
|
||||
mStartColor,
|
||||
mCurrentColor,
|
||||
Shader.TileMode.MIRROR
|
||||
)
|
||||
it.shader = shader
|
||||
}
|
||||
val shader = LinearGradient(
|
||||
oval.left,
|
||||
oval.top,
|
||||
oval.right,
|
||||
oval.bottom,
|
||||
mStartColor,
|
||||
mCurrentColor,
|
||||
Shader.TileMode.MIRROR
|
||||
)
|
||||
it.shader = shader
|
||||
canvas.drawRoundRect(oval, progress.toFloat(), progress.toFloat(), it)
|
||||
} else {
|
||||
oval = RectF(
|
||||
@@ -143,18 +141,16 @@ class TextProgressButtonBar : View {
|
||||
* 绘制进度值
|
||||
*/
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
val shader = LinearGradient(
|
||||
oval.left,
|
||||
oval.top,
|
||||
oval.right,
|
||||
oval.bottom,
|
||||
mStartColor,
|
||||
mCurrentColor,
|
||||
Shader.TileMode.CLAMP
|
||||
)
|
||||
it.shader = shader
|
||||
}
|
||||
val shader = LinearGradient(
|
||||
oval.left,
|
||||
oval.top,
|
||||
oval.right,
|
||||
oval.bottom,
|
||||
mStartColor,
|
||||
mCurrentColor,
|
||||
Shader.TileMode.CLAMP
|
||||
)
|
||||
it.shader = shader
|
||||
canvas.drawRoundRect(oval, corner.toFloat(), corner.toFloat(), it)
|
||||
}
|
||||
/***
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/sketch_back"
|
||||
android:id="@+id/task_link_back"
|
||||
style="@style/sketch_operation_style"
|
||||
android:src="@drawable/sketch_back" />
|
||||
|
||||
@@ -94,17 +94,8 @@
|
||||
style="@style/link_gray_style"
|
||||
android:layout_margin="2dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/sketch_forward"
|
||||
style="@style/sketch_operation_style"
|
||||
android:src="@drawable/sketch_forward" />
|
||||
|
||||
<View
|
||||
style="@style/link_gray_style"
|
||||
android:layout_margin="2dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/sketch_clear"
|
||||
android:id="@+id/task_link_clear"
|
||||
style="@style/sketch_operation_style"
|
||||
android:text="重绘" />
|
||||
</LinearLayout>
|
||||
|
||||
Reference in New Issue
Block a user