From 06993b6a22ca45631ee1df99ff892fc6ae56d34c Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Fri, 13 Oct 2023 17:33:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BD=A8=E8=BF=B9=E5=9B=9E?= =?UTF-8?q?=E6=94=BE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/taskdownload/TaskDownloadScope.kt | 3 +- .../omqs/ui/activity/map/MainViewModel.kt | 37 ++++++++++--------- .../ui/fragment/tasklist/TaskListAdapter.kt | 2 - .../java/com/navinfo/omqs/util/NaviEngine.kt | 2 +- 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadScope.kt b/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadScope.kt index 05e5d01d..38cf4f82 100644 --- a/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadScope.kt +++ b/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadScope.kt @@ -110,13 +110,14 @@ class TaskDownloadScope( downloadData.postValue(taskBean) if (status != FileDownloadStatus.LOADING && status != FileDownloadStatus.IMPORTING) { val realm = realmOperateHelper.getRealmDefaultInstance() - Log.e("jingo", "数据下载更新状态 任务link数量:${taskBean.hadLinkDvoList.size}") +// Log.e("jingo", "数据下载更新状态 原${}") realm.executeTransaction { r -> // realm.insertOrUpdate(taskBean) val newTask = realm.where(TaskBean::class.java).equalTo("id", taskBean.id).findFirst() newTask?.let { it.syncStatus = taskBean.syncStatus + it.status = taskBean.status it.errMsg = taskBean.errMsg //赋值时间,用于查询过滤 it.operationTime = taskBean.operationTime diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index 56f56866..36be0428 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -49,12 +49,9 @@ import dagger.hilt.android.lifecycle.HiltViewModel import io.realm.Realm import io.realm.RealmConfiguration import io.realm.RealmSet -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.delay +import kotlinx.coroutines.* import kotlinx.coroutines.flow.collectLatest -import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex -import kotlinx.coroutines.withContext import org.locationtech.jts.geom.Geometry import org.oscim.core.GeoPoint import org.oscim.core.MapPosition @@ -237,6 +234,7 @@ class MainViewModel @Inject constructor( //导航轨迹回顾 private var naviLocationTest = false + private var naviLocationTestJob: Job? = null //导航信息 private var naviEngine: NaviEngine? = null @@ -1641,17 +1639,22 @@ class MainViewModel @Inject constructor( * 导航测试 */ fun setNaviLocationTestStartTime(time: Long) { - stopNaviLocationTest() - viewModelScope.launch(Dispatchers.IO) { + naviLocationTest = true + if (naviLocationTestJob != null && naviLocationTestJob!!.isActive) + naviLocationTestJob!!.cancel() + naviLocationTestJob = viewModelScope.launch(Dispatchers.IO) { var b = true + val limitCount = 20 + var lastTime: Long = time while (b) { - val list = traceDataBase.niLocationDao.findListWithStartTime(time, 20) - var lastTime: Long = 0 + Log.e("jingo", "下一组定位点起始时间 $lastTime") + val list = traceDataBase.niLocationDao.findListWithStartTime(lastTime, limitCount) + for (location in list) { - if(!naviLocationTest) + if (!naviLocationTest) break - lastTime = if (lastTime != 0L) { - val nowTime = location.timeStamp.toLong() + val nowTime = location.timeStamp.toLong() + if (lastTime != 0L) { val tempTime = nowTime - lastTime if (tempTime > 10000) { liveDataMessage.postValue("下个定位点与当前定位点时间间隔超过10秒(${tempTime}),将直接跳转到下个点") @@ -1659,10 +1662,9 @@ class MainViewModel @Inject constructor( } else { delay(tempTime) } - nowTime - } else { - location.timeStamp.toLong() } + lastTime = nowTime + withContext(Dispatchers.Main) { mapController.animationHandler.animationByLatLon( location.latitude, @@ -1672,11 +1674,10 @@ class MainViewModel @Inject constructor( mapController.locationLayerHandler.niLocationFlow.emit(location) } - if (list.size < 100) { + if (list.size < limitCount) { b = false } } - mapController.locationLayerHandler.startLocation() } } @@ -1684,8 +1685,10 @@ class MainViewModel @Inject constructor( * 停止测试 */ fun stopNaviLocationTest() { - mapController.locationLayerHandler.startLocation() naviLocationTest = false + if (naviLocationTestJob != null) { + naviLocationTestJob!!.cancel() + } } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt index e94c23c8..5a8e1e91 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt @@ -227,7 +227,6 @@ class TaskListAdapter( binding.taskUploadBtn.isEnabled = false binding.taskUploadBtn.setProgress(0) binding.taskUploadBtn.setBackgroundColor(binding.root.resources.getColor(R.color.gray_121)) - Log.e("qj","${taskBean.id}===changeUploadTxtViews===已上传") } FileUploadStatus.ERROR -> { @@ -242,7 +241,6 @@ class TaskListAdapter( FileUploadStatus.NONE -> { binding.taskUploadBtn.setText("未上传") binding.taskUploadBtn.setProgress(0) - Log.e("qj","${taskBean.id}===changeUploadTxtViews===未上传") } FileUploadStatus.WAITING -> { diff --git a/app/src/main/java/com/navinfo/omqs/util/NaviEngine.kt b/app/src/main/java/com/navinfo/omqs/util/NaviEngine.kt index de61b5c0..d2613b24 100644 --- a/app/src/main/java/com/navinfo/omqs/util/NaviEngine.kt +++ b/app/src/main/java/com/navinfo/omqs/util/NaviEngine.kt @@ -527,7 +527,7 @@ class NaviEngine( private suspend fun matchingItem() { if (routeIndex > -1 && tempRoutList.isNotEmpty() && tempGeometry != null) { - Log.e("jingo", "当前${routeIndex} ${tempRoutList[0].startIndexInPath} $footIndex") +// Log.e("jingo", "当前${routeIndex} ${tempRoutList[0].startIndexInPath} $footIndex") //道路前方一定距离范围内的要素信息 val bindingItemList = mutableListOf() //定位点到要素的路径距离