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

View File

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

View File

@ -13,6 +13,7 @@ import com.navinfo.omqs.ui.other.BaseViewHolder
interface TaskAdapterCallback {
fun itemOnClick(bean: HadLinkDvoBean)
fun editOnClick(position: Int, bean: HadLinkDvoBean)
fun scrollPosition(position: Int)
}
/**
@ -38,10 +39,12 @@ class TaskAdapter(
val binding: AdapterTaskBinding =
holder.viewBinding as AdapterTaskBinding
val bean = data[position]
if(bean.linkStatus==1){
binding.taskHead.background = binding.root.context.getDrawable(R.drawable.selector_task_head)
}else{
binding.taskHead.background = binding.root.context.getDrawable(R.drawable.selector_task_head_add_link)
if (bean.linkStatus == 1) {
binding.taskHead.background =
binding.root.context.getDrawable(R.drawable.selector_task_head)
} else {
binding.taskHead.background =
binding.root.context.getDrawable(R.drawable.selector_task_head_add_link)
}
binding.taskLinkPid.text = "PID:${bean.linkPid}"
binding.taskMesh.text = "mesh:${bean.mesh}"
@ -58,6 +61,11 @@ class TaskAdapter(
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.setOnClickListener {
callback.editOnClick(position, bean)
@ -68,6 +76,21 @@ class TaskAdapter(
fun resetSelect() {
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) {
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.os.Build
import android.view.View
import androidx.annotation.RequiresApi
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
@ -66,6 +67,11 @@ class TaskViewModel @Inject constructor(
*/
val liveDataToastMessage = MutableLiveData<String>()
/**
* 点击地图选中的link
*/
val liveDataSelectLink = MutableLiveData<String>()
/**
* 当前选中的任务
*/
@ -85,6 +91,79 @@ class TaskViewModel @Inject constructor(
init {
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 beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L
val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE
val objects =
realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or()
.between("operationTime", beginNowTime, nowTime)
.equalTo("syncStatus", syncUpload).findAll().sort("id")
val objects = realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or()
.between("operationTime", beginNowTime, nowTime).equalTo("syncStatus", syncUpload)
.findAll().sort("id")
val taskList = realm.copyFromRealm(objects)
for (item in taskList) {
FileManager.checkOMDBFileInfo(item)
@ -187,8 +265,7 @@ class TaskViewModel @Inject constructor(
//重新加载轨迹
viewModelScope.launch(Dispatchers.IO) {
val list: List<NiLocation>? = TraceDataBase.getDatabase(
mapController.mMapView.context,
Constant.USER_DATA_PATH
mapController.mMapView.context, Constant.USER_DATA_PATH
).niLocationDao.findToTaskIdAll(taskBean.id.toString())
list!!.forEach {
mapController.markerHandle.addNiLocationMarkerItem(it)
@ -216,6 +293,7 @@ class TaskViewModel @Inject constructor(
}
override fun onCleared() {
mapController.mMapView.removeOnNIMapClickListener(TAG)
mapController.lineHandler.removeLine()
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
super.onCleared()
@ -245,18 +323,12 @@ class TaskViewModel @Inject constructor(
* 筛选任务列表
*/
fun filterTaskList(key: String) {
if (filterTaskListJob != null)
filterTaskListJob!!.cancel()
if (filterTaskListJob != null) filterTaskListJob!!.cancel()
filterTaskListJob = viewModelScope.launch(Dispatchers.IO) {
delay(500)
val realm = Realm.getDefaultInstance()
val list = realm.where(TaskBean::class.java)
.contains("evaluationTaskName", key)
.or()
.contains("dataVersion", key)
.or()
.contains("cityName", key)
.findAll()
val list = realm.where(TaskBean::class.java).contains("evaluationTaskName", key).or()
.contains("dataVersion", key).or().contains("cityName", key).findAll()
liveDataTaskList.postValue(realm.copyFromRealm(list))
}
}
@ -265,17 +337,14 @@ class TaskViewModel @Inject constructor(
* 筛选link
*/
fun filterTask(pidKey: String) {
if (currentSelectTaskBean == null)
return
if (currentSelectTaskBean == null) return
if (filterTaskJob != null)
filterTaskJob!!.cancel()
if (filterTaskJob != null) filterTaskJob!!.cancel()
filterTaskJob = viewModelScope.launch(Dispatchers.Default) {
delay(500)
val list = mutableListOf<HadLinkDvoBean>()
for (item in currentSelectTaskBean!!.hadLinkDvoList) {
if (item.linkPid.contains(pidKey))
list.add(item)
if (item.linkPid.contains(pidKey)) list.add(item)
}
liveDataTaskLinks.postValue(list)
}
@ -295,8 +364,8 @@ class TaskViewModel @Inject constructor(
viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
val objects = it.where(TaskBean::class.java)
.equalTo("id", taskBean.id).findFirst()
val objects =
it.where(TaskBean::class.java).equalTo("id", taskBean.id).findFirst()
objects?.deleteFromRealm()
}
//遍历删除对应的数据
@ -317,10 +386,10 @@ class TaskViewModel @Inject constructor(
val nowTime: Long = DateTimeUtil.getNowDate().time
val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L
val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE
val objects = realm.where(TaskBean::class.java)
.notEqualTo("syncStatus", syncUpload).or()
.between("operationTime", beginNowTime, nowTime)
.equalTo("syncStatus", syncUpload).findAll()
val objects =
realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or()
.between("operationTime", beginNowTime, nowTime)
.equalTo("syncStatus", syncUpload).findAll()
val taskList = realm.copyFromRealm(objects)
for (item in taskList) {
FileManager.checkOMDBFileInfo(item)
@ -342,9 +411,9 @@ class TaskViewModel @Inject constructor(
viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance()
taskBean.hadLinkDvoList.forEach { hadLinkDvoBean ->
val objects = realm.where(QsRecordBean::class.java)
.equalTo("linkId", hadLinkDvoBean.linkPid).and()
.equalTo("taskId", hadLinkDvoBean.taskId).findAll()
val objects =
realm.where(QsRecordBean::class.java).equalTo("linkId", hadLinkDvoBean.linkPid)
.and().equalTo("taskId", hadLinkDvoBean.taskId).findAll()
val map: MutableMap<TaskBean, Boolean> = HashMap<TaskBean, Boolean>()
if (objects.isEmpty() && hadLinkDvoBean.reason.isEmpty()) {
withContext(Dispatchers.Main) {
@ -388,68 +457,67 @@ class TaskViewModel @Inject constructor(
*/
fun setSelectLink(selected: Boolean) {
liveDataSelectNewLink.value = selected
//开始捕捉
if (selected) {
mapController.mMapView.addOnNIMapClickListener(TAG, object : OnGeoPointClickListener {
override fun onMapClick(tag: String, point: GeoPoint) {
if (tag == TAG) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
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 {
mapController.mMapView.removeOnNIMapClickListener(TAG)
mapController.lineHandler.removeLine()
}
// //开始捕捉
// if (selected) {
// mapController.mMapView.addOnNIMapClickListener(TAG, object : OnGeoPointClickListener {
// override fun onMapClick(tag: String, point: GeoPoint) {
// if (tag == TAG) {
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
// 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 {
// mapController.mMapView.removeOnNIMapClickListener(TAG)
// mapController.lineHandler.removeLine()
// }
}
/**
@ -480,10 +548,10 @@ class TaskViewModel @Inject constructor(
val realm = Realm.getDefaultInstance()
//重置数据为隐藏
if(hadLinkDvoBean.linkStatus==2){
if (hadLinkDvoBean.linkStatus == 2) {
realmOperateHelper.queryLinkToMutableRenderEntityList(hadLinkDvoBean.linkPid)
?.forEach { renderEntity ->
if(renderEntity.enable==1){
if (renderEntity.enable == 1) {
renderEntity.enable = 0
realm.executeTransaction { r ->
r.copyToRealmOrUpdate(renderEntity)
@ -505,9 +573,8 @@ class TaskViewModel @Inject constructor(
.equalTo("linkPid", hadLinkDvoBean.linkPid).findFirst()
?.deleteFromRealm()
val markers = realm.where(QsRecordBean::class.java)
.equalTo("linkId", hadLinkDvoBean.linkPid)
.and().equalTo("taskId", hadLinkDvoBean.taskId)
.findAll()
.equalTo("linkId", hadLinkDvoBean.linkPid).and()
.equalTo("taskId", hadLinkDvoBean.taskId).findAll()
if (markers != null) {
for (marker in markers) {
mapController.markerHandle.removeQsRecordMark(marker)

View File

@ -832,11 +832,43 @@ class SignUtil {
*/
fun getElectronicEyeMoreInfo(renderEntity: RenderEntity): List<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 kind = TwoItemAdapterItem(
title = "电子眼类型", text = getElectronicEyeKindType(kindCode)
list.add(
TwoItemAdapterItem(
title = "电子眼类型", text = getElectronicEyeKindType(kindCode)
)
)
list.add(kind)
when (kindCode) {
1, 2, 3, 4, 5, 6, 20, 21 -> {
list.add(
@ -870,6 +902,9 @@ class SignUtil {
)
)
}
list.add( TwoItemAdapterItem(
title = "照射角度", text = "${renderEntity.properties["angle"]}"
))
return list
}
@ -1125,12 +1160,11 @@ class SignUtil {
)
}
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
val direction = data.properties["direction"]
var dir = ""
if (direction == "2") {
dir = "顺方向"
} else if (direction == "3") {
dir = "逆方向"
val dir = when (data.properties["direction"]) {
"2" -> "顺方向"
"3" -> "逆方向"
else -> ""
}
if (dir != "") {
list.add(

View File

@ -55,20 +55,22 @@ class SpeakMode(private val context: Context) : TextToSpeech.OnInitListener {
fun setData(json: String?) {}
override fun onInit(status: Int) {
this.status = status
val result = mTextToSpeech.setLanguage(Locale.CHINESE)
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED
) {
if (context != null) {
val firstDialog = FirstDialog(context)
firstDialog.setTitle("提示")
firstDialog.setMessage("设备不支持语音播报,请先下载语音助手。")
firstDialog.setConfirmListener { dialog, _ -> dialog.dismiss() }
firstDialog.setNegativeView(View.GONE)
firstDialog.show()
if(mTextToSpeech != null) {
val result = mTextToSpeech.setLanguage(Locale.CHINESE)
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED
) {
if (context != null) {
val firstDialog = FirstDialog(context)
firstDialog.setTitle("提示")
firstDialog.setMessage("设备不支持语音播报,请先下载语音助手。")
firstDialog.setConfirmListener { dialog, _ -> dialog.dismiss() }
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"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@color/default_blue_text_color" />
<item android:color="@color/black" />
<item android:color="#15141F" />
</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_toRightOf="@id/task_head"
android:text="linkPID"
android:textColor="#15141F"
android:textColor="@color/selector_black_blue_color"
android:textSize="14sp" />
<TextView
@ -39,7 +39,7 @@
android:layout_alignLeft="@id/task_link_pid"
android:layout_marginTop="5dp"
android:text="mesh"
android:textColor="@color/gray_121"
android:textColor="@color/selector_gray_blue_color"
android:textSize="13sp" />
<ImageView

View File

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

2
vtm

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