修改bug

This commit is contained in:
squallzhjch 2023-08-24 10:14:07 +08:00
parent 13c2d55159
commit 5b2fcbddd9
13 changed files with 299 additions and 148 deletions

View File

@ -63,9 +63,12 @@ class RealmOperateHelper() {
// 查询realm中对应tile号的数据 // 查询realm中对应tile号的数据
val realm = getRealmDefaultInstance() val realm = getRealmDefaultInstance()
val realmList = val realmList =
getRealmTools(RenderEntity::class.java,false).and().equalTo("table", "OMDB_RD_LINK") getRealmTools(RenderEntity::class.java, false)
.and() .equalTo("table", "OMDB_RD_LINK")
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd") .greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll() .findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据 // 将获取到的数据和查询的polygon做相交只返回相交的数据
val dataList = realm.copyFromRealm(realmList) val dataList = realm.copyFromRealm(realmList)
@ -125,10 +128,12 @@ class RealmOperateHelper() {
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null) val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
// 查询realm中对应tile号的数据 // 查询realm中对应tile号的数据
val realm = getRealmDefaultInstance() val realm = getRealmDefaultInstance()
val realmList = getRealmTools(RenderEntity::class.java, true).and() val realmList = getRealmTools(RenderEntity::class.java, true)
.equalTo("table", table) .equalTo("table", table)
.and() .greaterThanOrEqualTo("tileX", xStart)
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd") .lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll() .findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据 // 将获取到的数据和查询的polygon做相交只返回相交的数据
val dataList = realm.copyFromRealm(realmList) val dataList = realm.copyFromRealm(realmList)
@ -187,8 +192,8 @@ class RealmOperateHelper() {
var link: RenderEntity? = null var link: RenderEntity? = null
val realm = getRealmDefaultInstance() val realm = getRealmDefaultInstance()
val realmR = val realmR =
getRealmTools(RenderEntity::class.java, true).and().equalTo("table", "OMDB_RD_LINK") getRealmTools(RenderEntity::class.java, true).equalTo("table", "OMDB_RD_LINK")
.and().equalTo("properties['${LinkTable.linkPid}']", linkPid).findFirst() .equalTo("properties['${LinkTable.linkPid}']", linkPid).findFirst()
if (realmR != null) { if (realmR != null) {
link = realm.copyFromRealm(realmR) link = realm.copyFromRealm(realmR)
} }
@ -202,8 +207,8 @@ class RealmOperateHelper() {
suspend fun queryQcRecordBean(markId: String): QsRecordBean? { suspend fun queryQcRecordBean(markId: String): QsRecordBean? {
var qsRecordBean: QsRecordBean? = null var qsRecordBean: QsRecordBean? = null
val realm = getRealmDefaultInstance() val realm = getRealmDefaultInstance()
val realmR = getRealmTools(QsRecordBean::class.java, false).and() val realmR = getRealmTools(QsRecordBean::class.java, false)
.equalTo("table", "QsRecordBean").and().equalTo("id", markId).findFirst() .equalTo("table", "QsRecordBean").equalTo("id", markId).findFirst()
if (realmR != null) { if (realmR != null) {
qsRecordBean = realm.copyFromRealm(realmR) qsRecordBean = realm.copyFromRealm(realmR)
} }
@ -215,7 +220,7 @@ class RealmOperateHelper() {
val realm = getRealmDefaultInstance() val realm = getRealmDefaultInstance()
val realmR = getRealmTools(RenderEntity::class.java, true).and() val realmR = getRealmTools(RenderEntity::class.java, true)
.equalTo("properties['${LinkTable.linkPid}']", linkPid).findAll() .equalTo("properties['${LinkTable.linkPid}']", linkPid).findAll()
val dataList = realm.copyFromRealm(realmR) val dataList = realm.copyFromRealm(realmR)
@ -257,10 +262,12 @@ class RealmOperateHelper() {
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null) val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
val realm = getRealmDefaultInstance() val realm = getRealmDefaultInstance()
// 查询realm中对应tile号的数据 // 查询realm中对应tile号的数据
val realmList = getRealmTools(RenderEntity::class.java, false).and() val realmList = getRealmTools(RenderEntity::class.java, false)
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name) .notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
.and() .greaterThanOrEqualTo("tileX", xStart)
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd") .lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll() .findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据 // 将获取到的数据和查询的polygon做相交只返回相交的数据
val queryResult = realmList?.stream()?.filter { val queryResult = realmList?.stream()?.filter {
@ -287,10 +294,9 @@ class RealmOperateHelper() {
suspend fun queryLinkByLinkPid(linkPid: String): MutableList<RenderEntity> { suspend fun queryLinkByLinkPid(linkPid: String): MutableList<RenderEntity> {
val result = mutableListOf<RenderEntity>() val result = mutableListOf<RenderEntity>()
val realm = getRealmDefaultInstance() val realm = getRealmDefaultInstance()
val realmList = getRealmTools(RenderEntity::class.java, false).and() val realmList = getRealmTools(RenderEntity::class.java, false)
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name) .notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
.and() .equalTo("properties['${LinkTable.linkPid}']", linkPid)
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and()
.findAll() .findAll()
result.addAll(realm.copyFromRealm(realmList)) result.addAll(realm.copyFromRealm(realmList))
return result return result
@ -383,14 +389,15 @@ class RealmOperateHelper() {
} }
fun getRealmDefaultInstance(): Realm { fun getRealmDefaultInstance(): Realm {
if(isUpdate){ if (isUpdate) {
Log.e("jingo", "数据库更新")
Realm.getDefaultInstance().refresh() Realm.getDefaultInstance().refresh()
isUpdate = false; isUpdate = false;
} }
return Realm.getDefaultInstance() return Realm.getDefaultInstance()
} }
fun updateRealmDefaultInstance(){ fun updateRealmDefaultInstance() {
isUpdate = true isUpdate = true
} }
} }

View File

@ -533,6 +533,7 @@ class MainActivity : BaseActivity() {
mapController.measureLayerHandler.measureValueLiveData.observe(this) { mapController.measureLayerHandler.measureValueLiveData.observe(this) {
valueView.text = it.valueString valueView.text = it.valueString
unitView.text = it.unit unitView.text = it.unit
ClipboardUtils.copyText("${it.valueString}${it.unit}")
} }
mapController.measureLayerHandler.tempMeasureValueLiveData.observe(this) mapController.measureLayerHandler.tempMeasureValueLiveData.observe(this)
{ {

View File

@ -13,6 +13,7 @@ import com.navinfo.omqs.ui.other.BaseViewHolder
interface TaskAdapterCallback { interface TaskAdapterCallback {
fun itemOnClick(bean: HadLinkDvoBean) fun itemOnClick(bean: HadLinkDvoBean)
fun editOnClick(position: Int, bean: HadLinkDvoBean) fun editOnClick(position: Int, bean: HadLinkDvoBean)
fun scrollPosition(position: Int)
} }
/** /**
@ -38,10 +39,12 @@ class TaskAdapter(
val binding: AdapterTaskBinding = val binding: AdapterTaskBinding =
holder.viewBinding as AdapterTaskBinding holder.viewBinding as AdapterTaskBinding
val bean = data[position] val bean = data[position]
if(bean.linkStatus==1){ if (bean.linkStatus == 1) {
binding.taskHead.background = binding.root.context.getDrawable(R.drawable.selector_task_head) binding.taskHead.background =
}else{ binding.root.context.getDrawable(R.drawable.selector_task_head)
binding.taskHead.background = binding.root.context.getDrawable(R.drawable.selector_task_head_add_link) } else {
binding.taskHead.background =
binding.root.context.getDrawable(R.drawable.selector_task_head_add_link)
} }
binding.taskLinkPid.text = "PID:${bean.linkPid}" binding.taskLinkPid.text = "PID:${bean.linkPid}"
binding.taskMesh.text = "mesh:${bean.mesh}" binding.taskMesh.text = "mesh:${bean.mesh}"
@ -58,6 +61,11 @@ class TaskAdapter(
callback.itemOnClick(bean) callback.itemOnClick(bean)
} }
} }
if (bean.reason != "") {
binding.taskEdit.setImageDrawable(binding.root.context.getDrawable(R.drawable.baseline_edit_note_48_select_red))
} else {
binding.taskEdit.setImageDrawable(binding.root.context.getDrawable(R.drawable.selector_task_link_edit_icon))
}
binding.taskEdit.isSelected = bean.reason != "" binding.taskEdit.isSelected = bean.reason != ""
binding.taskEdit.setOnClickListener { binding.taskEdit.setOnClickListener {
callback.editOnClick(position, bean) callback.editOnClick(position, bean)
@ -68,6 +76,21 @@ class TaskAdapter(
fun resetSelect() { fun resetSelect() {
selectPosition = -1 selectPosition = -1
} }
fun setSelectTag(tag: String) {
for (i in data.indices) {
if (data[i].linkPid == tag) {
if (selectPosition > -1)
notifyItemChanged(selectPosition)
selectPosition = i
notifyItemChanged(i)
if(callback != null){
callback.scrollPosition(i)
}
break
}
}
}
} }

View File

@ -48,6 +48,10 @@ class TaskFragment : BaseFragment() {
override fun editOnClick(position: Int, bean: HadLinkDvoBean) { override fun editOnClick(position: Int, bean: HadLinkDvoBean) {
showLinkEditDialog(position, bean) showLinkEditDialog(position, bean)
} }
override fun scrollPosition(position: Int) {
binding.taskRecyclerview.scrollToPosition(position)
}
}) })
} }
@ -120,6 +124,9 @@ class TaskFragment : BaseFragment() {
} }
}) })
viewModel.liveDataSelectLink.observe(viewLifecycleOwner){
adapter.setSelectTag(it)
}
} }

View File

@ -5,6 +5,7 @@ import android.content.SharedPreferences
import android.content.SharedPreferences.OnSharedPreferenceChangeListener import android.content.SharedPreferences.OnSharedPreferenceChangeListener
import android.os.Build import android.os.Build
import android.view.View import android.view.View
import androidx.annotation.RequiresApi
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
@ -66,6 +67,11 @@ class TaskViewModel @Inject constructor(
*/ */
val liveDataToastMessage = MutableLiveData<String>() val liveDataToastMessage = MutableLiveData<String>()
/**
* 点击地图选中的link
*/
val liveDataSelectLink = MutableLiveData<String>()
/** /**
* 当前选中的任务 * 当前选中的任务
*/ */
@ -85,6 +91,79 @@ class TaskViewModel @Inject constructor(
init { init {
sharedPreferences.registerOnSharedPreferenceChangeListener(this) sharedPreferences.registerOnSharedPreferenceChangeListener(this)
mapController.mMapView.addOnNIMapClickListener(TAG, object : OnGeoPointClickListener {
@RequiresApi(Build.VERSION_CODES.N)
override fun onMapClick(tag: String, point: GeoPoint) {
if (tag == TAG) {
if (liveDataSelectNewLink.value == true) {
viewModelScope.launch(Dispatchers.Default) {
if (currentSelectTaskBean == null) {
liveDataToastMessage.postValue("还没有开启任何任务")
} else {
val links = realmOperateHelper.queryLink(
point = point,
)
if (links.isNotEmpty()) {
val l = links[0]
for (link in currentSelectTaskBean!!.hadLinkDvoList) {
if (link.linkPid == l.properties["linkPid"]) {
return@launch
}
}
val hadLinkDvoBean = HadLinkDvoBean(
taskId = currentSelectTaskBean!!.id,
linkPid = l.properties["linkPid"]!!,
geometry = l.geometry,
linkStatus = 2
)
currentSelectTaskBean!!.hadLinkDvoList.add(
hadLinkDvoBean
)
val realm = Realm.getDefaultInstance()
realm.executeTransaction { r ->
r.copyToRealmOrUpdate(hadLinkDvoBean)
r.copyToRealmOrUpdate(currentSelectTaskBean!!)
}
//根据Link数据查询对应数据上要素对要素进行显示重置
l.properties["linkPid"]?.let {
realmOperateHelper.queryLinkToMutableRenderEntityList(it)
?.forEach { renderEntity ->
if (renderEntity.enable != 1) {
renderEntity.enable = 1
realm.executeTransaction { r ->
r.copyToRealmOrUpdate(renderEntity)
}
}
}
}
liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList)
mapController.lineHandler.addTaskLink(hadLinkDvoBean)
mapController.layerManagerHandler.updateOMDBVectorTileLayer()
mapController.mMapView.vtmMap.updateMap(true)
}
}
}
}else {
viewModelScope.launch(Dispatchers.IO) {
val links = realmOperateHelper.queryLink(
point = point,
)
if (links.isNotEmpty()) {
val l = links[0]
for (link in currentSelectTaskBean!!.hadLinkDvoList) {
if (link.linkPid == l.properties["linkPid"]) {
liveDataSelectLink.postValue(link.linkPid)
mapController.lineHandler.showLine(link.geometry)
break
}
}
}
}
}
}
}
})
} }
/** /**
@ -106,10 +185,9 @@ class TaskViewModel @Inject constructor(
val nowTime: Long = DateTimeUtil.getNowDate().time val nowTime: Long = DateTimeUtil.getNowDate().time
val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L
val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE
val objects = val objects = realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or()
realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or() .between("operationTime", beginNowTime, nowTime).equalTo("syncStatus", syncUpload)
.between("operationTime", beginNowTime, nowTime) .findAll().sort("id")
.equalTo("syncStatus", syncUpload).findAll().sort("id")
val taskList = realm.copyFromRealm(objects) val taskList = realm.copyFromRealm(objects)
for (item in taskList) { for (item in taskList) {
FileManager.checkOMDBFileInfo(item) FileManager.checkOMDBFileInfo(item)
@ -187,8 +265,7 @@ class TaskViewModel @Inject constructor(
//重新加载轨迹 //重新加载轨迹
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val list: List<NiLocation>? = TraceDataBase.getDatabase( val list: List<NiLocation>? = TraceDataBase.getDatabase(
mapController.mMapView.context, mapController.mMapView.context, Constant.USER_DATA_PATH
Constant.USER_DATA_PATH
).niLocationDao.findToTaskIdAll(taskBean.id.toString()) ).niLocationDao.findToTaskIdAll(taskBean.id.toString())
list!!.forEach { list!!.forEach {
mapController.markerHandle.addNiLocationMarkerItem(it) mapController.markerHandle.addNiLocationMarkerItem(it)
@ -216,6 +293,7 @@ class TaskViewModel @Inject constructor(
} }
override fun onCleared() { override fun onCleared() {
mapController.mMapView.removeOnNIMapClickListener(TAG)
mapController.lineHandler.removeLine() mapController.lineHandler.removeLine()
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this) sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
super.onCleared() super.onCleared()
@ -245,18 +323,12 @@ class TaskViewModel @Inject constructor(
* 筛选任务列表 * 筛选任务列表
*/ */
fun filterTaskList(key: String) { fun filterTaskList(key: String) {
if (filterTaskListJob != null) if (filterTaskListJob != null) filterTaskListJob!!.cancel()
filterTaskListJob!!.cancel()
filterTaskListJob = viewModelScope.launch(Dispatchers.IO) { filterTaskListJob = viewModelScope.launch(Dispatchers.IO) {
delay(500) delay(500)
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
val list = realm.where(TaskBean::class.java) val list = realm.where(TaskBean::class.java).contains("evaluationTaskName", key).or()
.contains("evaluationTaskName", key) .contains("dataVersion", key).or().contains("cityName", key).findAll()
.or()
.contains("dataVersion", key)
.or()
.contains("cityName", key)
.findAll()
liveDataTaskList.postValue(realm.copyFromRealm(list)) liveDataTaskList.postValue(realm.copyFromRealm(list))
} }
} }
@ -265,17 +337,14 @@ class TaskViewModel @Inject constructor(
* 筛选link * 筛选link
*/ */
fun filterTask(pidKey: String) { fun filterTask(pidKey: String) {
if (currentSelectTaskBean == null) if (currentSelectTaskBean == null) return
return
if (filterTaskJob != null) if (filterTaskJob != null) filterTaskJob!!.cancel()
filterTaskJob!!.cancel()
filterTaskJob = viewModelScope.launch(Dispatchers.Default) { filterTaskJob = viewModelScope.launch(Dispatchers.Default) {
delay(500) delay(500)
val list = mutableListOf<HadLinkDvoBean>() val list = mutableListOf<HadLinkDvoBean>()
for (item in currentSelectTaskBean!!.hadLinkDvoList) { for (item in currentSelectTaskBean!!.hadLinkDvoList) {
if (item.linkPid.contains(pidKey)) if (item.linkPid.contains(pidKey)) list.add(item)
list.add(item)
} }
liveDataTaskLinks.postValue(list) liveDataTaskLinks.postValue(list)
} }
@ -295,8 +364,8 @@ class TaskViewModel @Inject constructor(
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
realm.executeTransaction { realm.executeTransaction {
val objects = it.where(TaskBean::class.java) val objects =
.equalTo("id", taskBean.id).findFirst() it.where(TaskBean::class.java).equalTo("id", taskBean.id).findFirst()
objects?.deleteFromRealm() objects?.deleteFromRealm()
} }
//遍历删除对应的数据 //遍历删除对应的数据
@ -317,10 +386,10 @@ class TaskViewModel @Inject constructor(
val nowTime: Long = DateTimeUtil.getNowDate().time val nowTime: Long = DateTimeUtil.getNowDate().time
val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L
val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE
val objects = realm.where(TaskBean::class.java) val objects =
.notEqualTo("syncStatus", syncUpload).or() realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or()
.between("operationTime", beginNowTime, nowTime) .between("operationTime", beginNowTime, nowTime)
.equalTo("syncStatus", syncUpload).findAll() .equalTo("syncStatus", syncUpload).findAll()
val taskList = realm.copyFromRealm(objects) val taskList = realm.copyFromRealm(objects)
for (item in taskList) { for (item in taskList) {
FileManager.checkOMDBFileInfo(item) FileManager.checkOMDBFileInfo(item)
@ -342,9 +411,9 @@ class TaskViewModel @Inject constructor(
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
taskBean.hadLinkDvoList.forEach { hadLinkDvoBean -> taskBean.hadLinkDvoList.forEach { hadLinkDvoBean ->
val objects = realm.where(QsRecordBean::class.java) val objects =
.equalTo("linkId", hadLinkDvoBean.linkPid).and() realm.where(QsRecordBean::class.java).equalTo("linkId", hadLinkDvoBean.linkPid)
.equalTo("taskId", hadLinkDvoBean.taskId).findAll() .and().equalTo("taskId", hadLinkDvoBean.taskId).findAll()
val map: MutableMap<TaskBean, Boolean> = HashMap<TaskBean, Boolean>() val map: MutableMap<TaskBean, Boolean> = HashMap<TaskBean, Boolean>()
if (objects.isEmpty() && hadLinkDvoBean.reason.isEmpty()) { if (objects.isEmpty() && hadLinkDvoBean.reason.isEmpty()) {
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
@ -388,68 +457,67 @@ class TaskViewModel @Inject constructor(
*/ */
fun setSelectLink(selected: Boolean) { fun setSelectLink(selected: Boolean) {
liveDataSelectNewLink.value = selected liveDataSelectNewLink.value = selected
//开始捕捉 // //开始捕捉
if (selected) { // if (selected) {
mapController.mMapView.addOnNIMapClickListener(TAG, object : OnGeoPointClickListener { // mapController.mMapView.addOnNIMapClickListener(TAG, object : OnGeoPointClickListener {
override fun onMapClick(tag: String, point: GeoPoint) { // override fun onMapClick(tag: String, point: GeoPoint) {
if (tag == TAG) { // if (tag == TAG) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
viewModelScope.launch(Dispatchers.Default) { // viewModelScope.launch(Dispatchers.Default) {
if (currentSelectTaskBean == null) { // if (currentSelectTaskBean == null) {
liveDataToastMessage.postValue("还没有开启任何任务") // liveDataToastMessage.postValue("还没有开启任何任务")
} else { // } else {
val links = realmOperateHelper.queryLink( // val links = realmOperateHelper.queryLink(
point = point, // point = point,
) // )
if (links.isNotEmpty()) { // if (links.isNotEmpty()) {
val l = links[0] // val l = links[0]
for (link in currentSelectTaskBean!!.hadLinkDvoList) { // for (link in currentSelectTaskBean!!.hadLinkDvoList) {
if (link.linkPid == l.properties["linkPid"]) { // if (link.linkPid == l.properties["linkPid"]) {
return@launch // return@launch
} // }
} // }
val hadLinkDvoBean = HadLinkDvoBean( // val hadLinkDvoBean = HadLinkDvoBean(
taskId = currentSelectTaskBean!!.id, // taskId = currentSelectTaskBean!!.id,
linkPid = l.properties["linkPid"]!!, // linkPid = l.properties["linkPid"]!!,
geometry = l.geometry, // geometry = l.geometry,
linkStatus = 2 // linkStatus = 2
) // )
currentSelectTaskBean!!.hadLinkDvoList.add( // currentSelectTaskBean!!.hadLinkDvoList.add(
hadLinkDvoBean // hadLinkDvoBean
) // )
val realm = Realm.getDefaultInstance() // val realm = Realm.getDefaultInstance()
realm.executeTransaction { r -> // realm.executeTransaction { r ->
r.copyToRealmOrUpdate(hadLinkDvoBean) // r.copyToRealmOrUpdate(hadLinkDvoBean)
r.copyToRealmOrUpdate(currentSelectTaskBean!!) // r.copyToRealmOrUpdate(currentSelectTaskBean!!)
} // }
//根据Link数据查询对应数据上要素对要素进行显示重置 // //根据Link数据查询对应数据上要素对要素进行显示重置
l.properties["linkPid"]?.let { // l.properties["linkPid"]?.let {
realmOperateHelper.queryLinkToMutableRenderEntityList(it) // realmOperateHelper.queryLinkToMutableRenderEntityList(it)
?.forEach { renderEntity -> // ?.forEach { renderEntity ->
if(renderEntity.enable!=1){ // if (renderEntity.enable != 1) {
renderEntity.enable = 1 // renderEntity.enable = 1
realm.executeTransaction { r -> // realm.executeTransaction { r ->
r.copyToRealmOrUpdate(renderEntity) // r.copyToRealmOrUpdate(renderEntity)
} // }
} // }
} // }
} // }
liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList) // liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList)
mapController.lineHandler.addTaskLink(hadLinkDvoBean) // mapController.lineHandler.addTaskLink(hadLinkDvoBean)
mapController.layerManagerHandler.updateOMDBVectorTileLayer() // mapController.layerManagerHandler.updateOMDBVectorTileLayer()
mapController.mMapView.vtmMap.updateMap(true) // mapController.mMapView.vtmMap.updateMap(true)
} // }
} // }
} // }
} // }
} // }
} // }
// })
}) // } else {
} else { // mapController.mMapView.removeOnNIMapClickListener(TAG)
mapController.mMapView.removeOnNIMapClickListener(TAG) // mapController.lineHandler.removeLine()
mapController.lineHandler.removeLine() // }
}
} }
/** /**
@ -480,10 +548,10 @@ class TaskViewModel @Inject constructor(
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
//重置数据为隐藏 //重置数据为隐藏
if(hadLinkDvoBean.linkStatus==2){ if (hadLinkDvoBean.linkStatus == 2) {
realmOperateHelper.queryLinkToMutableRenderEntityList(hadLinkDvoBean.linkPid) realmOperateHelper.queryLinkToMutableRenderEntityList(hadLinkDvoBean.linkPid)
?.forEach { renderEntity -> ?.forEach { renderEntity ->
if(renderEntity.enable==1){ if (renderEntity.enable == 1) {
renderEntity.enable = 0 renderEntity.enable = 0
realm.executeTransaction { r -> realm.executeTransaction { r ->
r.copyToRealmOrUpdate(renderEntity) r.copyToRealmOrUpdate(renderEntity)
@ -505,9 +573,8 @@ class TaskViewModel @Inject constructor(
.equalTo("linkPid", hadLinkDvoBean.linkPid).findFirst() .equalTo("linkPid", hadLinkDvoBean.linkPid).findFirst()
?.deleteFromRealm() ?.deleteFromRealm()
val markers = realm.where(QsRecordBean::class.java) val markers = realm.where(QsRecordBean::class.java)
.equalTo("linkId", hadLinkDvoBean.linkPid) .equalTo("linkId", hadLinkDvoBean.linkPid).and()
.and().equalTo("taskId", hadLinkDvoBean.taskId) .equalTo("taskId", hadLinkDvoBean.taskId).findAll()
.findAll()
if (markers != null) { if (markers != null) {
for (marker in markers) { for (marker in markers) {
mapController.markerHandle.removeQsRecordMark(marker) mapController.markerHandle.removeQsRecordMark(marker)

View File

@ -832,11 +832,43 @@ class SignUtil {
*/ */
fun getElectronicEyeMoreInfo(renderEntity: RenderEntity): List<TwoItemAdapterItem> { fun getElectronicEyeMoreInfo(renderEntity: RenderEntity): List<TwoItemAdapterItem> {
val list = mutableListOf<TwoItemAdapterItem>() val list = mutableListOf<TwoItemAdapterItem>()
val dir = when (renderEntity.properties["direct"]) {
"2" -> "顺方向"
"3" -> "逆方向"
else -> ""
}
if (dir != "") {
list.add(
TwoItemAdapterItem(
title = "作用方向",
text = dir
)
)
}
val kindUp = when (renderEntity.properties["kindUp"]) {
"0" -> "未调查"
"1" -> "限速电子眼"
"4" -> "区间测速电子眼"
"5" -> "交通信号灯电子眼"
"6" -> "专用车道电子眼"
"7" -> "违章电子眼"
"11" -> "路况监控电子眼"
"19" -> "交通标线电子眼"
"20" -> "专用功能电子眼"
else -> ""
}
list.add(TwoItemAdapterItem(title = "电子眼类型大分类", text = kindUp))
val kindCode = renderEntity.properties["kind"]!!.toInt() val kindCode = renderEntity.properties["kind"]!!.toInt()
val kind = TwoItemAdapterItem( list.add(
title = "电子眼类型", text = getElectronicEyeKindType(kindCode) TwoItemAdapterItem(
title = "电子眼类型", text = getElectronicEyeKindType(kindCode)
)
) )
list.add(kind)
when (kindCode) { when (kindCode) {
1, 2, 3, 4, 5, 6, 20, 21 -> { 1, 2, 3, 4, 5, 6, 20, 21 -> {
list.add( list.add(
@ -870,6 +902,9 @@ class SignUtil {
) )
) )
} }
list.add( TwoItemAdapterItem(
title = "照射角度", text = "${renderEntity.properties["angle"]}"
))
return list return list
} }
@ -1125,12 +1160,11 @@ class SignUtil {
) )
} }
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> { DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
val direction = data.properties["direction"]
var dir = "" val dir = when (data.properties["direction"]) {
if (direction == "2") { "2" -> "顺方向"
dir = "顺方向" "3" -> "逆方向"
} else if (direction == "3") { else -> ""
dir = "逆方向"
} }
if (dir != "") { if (dir != "") {
list.add( list.add(

View File

@ -55,20 +55,22 @@ class SpeakMode(private val context: Context) : TextToSpeech.OnInitListener {
fun setData(json: String?) {} fun setData(json: String?) {}
override fun onInit(status: Int) { override fun onInit(status: Int) {
this.status = status this.status = status
val result = mTextToSpeech.setLanguage(Locale.CHINESE) if(mTextToSpeech != null) {
if (result == TextToSpeech.LANG_MISSING_DATA val result = mTextToSpeech.setLanguage(Locale.CHINESE)
|| result == TextToSpeech.LANG_NOT_SUPPORTED if (result == TextToSpeech.LANG_MISSING_DATA
) { || result == TextToSpeech.LANG_NOT_SUPPORTED
if (context != null) { ) {
val firstDialog = FirstDialog(context) if (context != null) {
firstDialog.setTitle("提示") val firstDialog = FirstDialog(context)
firstDialog.setMessage("设备不支持语音播报,请先下载语音助手。") firstDialog.setTitle("提示")
firstDialog.setConfirmListener { dialog, _ -> dialog.dismiss() } firstDialog.setMessage("设备不支持语音播报,请先下载语音助手。")
firstDialog.setNegativeView(View.GONE) firstDialog.setConfirmListener { dialog, _ -> dialog.dismiss() }
firstDialog.show() firstDialog.setNegativeView(View.GONE)
firstDialog.show()
}
} }
Log.i("TextToSpeechDemo", status.toString())
} }
Log.i("TextToSpeechDemo", status.toString())
} }
//读语音处理 //读语音处理

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@color/default_blue_text_color" /> <item android:state_selected="true" android:color="@color/default_blue_text_color" />
<item android:color="@color/black" /> <item android:color="#15141F" />
</selector> </selector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#2E38D2" />
<item android:color="@color/gray_121" />
</selector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#E91E63"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M3,10h11v2H3V10zM3,8h11V6H3V8zM3,16h7v-2H3V16zM18.01,12.87l0.71,-0.71c0.39,-0.39 1.02,-0.39 1.41,0l0.71,0.71c0.39,0.39 0.39,1.02 0,1.41l-0.71,0.71L18.01,12.87zM17.3,13.58l-5.3,5.3V21h2.12l5.3,-5.3L17.3,13.58z"/>
</vector>

View File

@ -27,7 +27,7 @@
android:layout_marginRight="30dp" android:layout_marginRight="30dp"
android:layout_toRightOf="@id/task_head" android:layout_toRightOf="@id/task_head"
android:text="linkPID" android:text="linkPID"
android:textColor="#15141F" android:textColor="@color/selector_black_blue_color"
android:textSize="14sp" /> android:textSize="14sp" />
<TextView <TextView
@ -39,7 +39,7 @@
android:layout_alignLeft="@id/task_link_pid" android:layout_alignLeft="@id/task_link_pid"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:text="mesh" android:text="mesh"
android:textColor="@color/gray_121" android:textColor="@color/selector_gray_blue_color"
android:textSize="13sp" /> android:textSize="13sp" />
<ImageView <ImageView

View File

@ -33,7 +33,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@id/task_list_head" android:layout_toRightOf="@id/task_list_head"
android:text="任务名称" android:text="任务名称"
android:textColor="#15141F" android:textColor="@color/selector_black_blue_color"
android:textSize="14sp" /> android:textSize="14sp" />
@ -47,7 +47,7 @@
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:text="版本号" android:text="版本号"
android:textColor="@color/gray_121" android:textColor="@color/selector_gray_blue_color"
android:textSize="13sp" /> android:textSize="13sp" />
<TextView <TextView
@ -58,7 +58,7 @@
android:layout_below="@id/task_data_version" android:layout_below="@id/task_data_version"
android:layout_alignLeft="@id/task_name" android:layout_alignLeft="@id/task_name"
android:text="省市名称" android:text="省市名称"
android:textColor="@color/gray_121" android:textColor="@color/selector_gray_blue_color"
android:textSize="13sp" /> android:textSize="13sp" />
<com.navinfo.omqs.ui.widget.TextProgressButtonBar <com.navinfo.omqs.ui.widget.TextProgressButtonBar

2
vtm

@ -1 +1 @@
Subproject commit bd83adb7df464686b3f19e8a08aeef2cb49f5c17 Subproject commit a35893dcb6f2ac2c38eb2cc11643725e2e91f1ff