diff --git a/app/src/main/java/com/navinfo/omqs/Constant.kt b/app/src/main/java/com/navinfo/omqs/Constant.kt index 27fb6278..f67ca0a6 100644 --- a/app/src/main/java/com/navinfo/omqs/Constant.kt +++ b/app/src/main/java/com/navinfo/omqs/Constant.kt @@ -55,7 +55,7 @@ class Constant { /** * 室内整理工具IP */ - lateinit var INDOOR_IP: String + var INDOOR_IP: String = "" const val DEBUG = true diff --git a/app/src/main/java/com/navinfo/omqs/bean/QRCodeBean.kt b/app/src/main/java/com/navinfo/omqs/bean/QRCodeBean.kt index 4790dd17..2438f705 100644 --- a/app/src/main/java/com/navinfo/omqs/bean/QRCodeBean.kt +++ b/app/src/main/java/com/navinfo/omqs/bean/QRCodeBean.kt @@ -2,5 +2,5 @@ package com.navinfo.omqs.bean data class QRCodeBean( var errcode: Int = -1, - var msg: String = "" + var errmsg: String = "" ) \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/http/NetworkServiceImpl.kt b/app/src/main/java/com/navinfo/omqs/http/NetworkServiceImpl.kt index 5bcd2782..e2ce3a7e 100644 --- a/app/src/main/java/com/navinfo/omqs/http/NetworkServiceImpl.kt +++ b/app/src/main/java/com/navinfo/omqs/http/NetworkServiceImpl.kt @@ -101,7 +101,16 @@ class NetworkServiceImpl @Inject constructor( //在IO线程中运行 withContext(Dispatchers.IO) { return@withContext try { - val result = netApi.retrofitUpdateServerInfo(url,indoorConnectionInfoBean) + val map: MutableMap = HashMap() + map["username"] = indoorConnectionInfoBean.username + map["uname"] = indoorConnectionInfoBean.uname + map["userid"] = indoorConnectionInfoBean.userid + map["plate"] = indoorConnectionInfoBean.plate + map["token"] = indoorConnectionInfoBean.token + map["baseurl"] = indoorConnectionInfoBean.baseurl + map["platform"] = indoorConnectionInfoBean.platform + + val result = netApi.retrofitUpdateServerInfo(url,map) if (result.isSuccessful) { if (result.code() == 200) { NetResult.Success(result.body()) diff --git a/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt b/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt index 2f56bbab..640c0e21 100644 --- a/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt +++ b/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt @@ -78,9 +78,9 @@ interface RetrofitNetworkServiceAPI { /** * 登录接口 */ - @Headers("Content-Type: application/json") + @FormUrlEncoded @POST - suspend fun retrofitUpdateServerInfo(@Url url: String,@Body indoorConnectionInfoBean: IndoorConnectionInfoBean): Response + suspend fun retrofitUpdateServerInfo(@Url url: String,@FieldMap map: Map): Response @Headers("Content-Type: application/json") @POST("/devcp/uploadSceneProblem") diff --git a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt index 2de99031..19e28738 100644 --- a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt +++ b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt @@ -176,6 +176,19 @@ class TaskUploadScope( } else if (it.problemType == "遗漏") { problemType = 2 } + + var roadClassfcation = 0 + + var roadFunctionGrade = 0 + + var dataLevel = 0 + + if(hadLinkDvoBean.linkInfo!=null){ + roadClassfcation = hadLinkDvoBean.linkInfo!!.kind + roadFunctionGrade = hadLinkDvoBean.linkInfo!!.functionLevel + dataLevel = hadLinkDvoBean.linkInfo!!.dataLevel + } + var evaluationWay = 2 val evaluationInfo = EvaluationInfo( evaluationTaskId = taskBean.id.toString(), @@ -193,11 +206,11 @@ class TaskUploadScope( evaluatorName = it.checkUserId, evaluationDate = it.checkTime, evaluationWay = evaluationWay, - roadClassfcation = 1, - roadFunctionGrade = 3, + roadClassfcation = roadClassfcation, + roadFunctionGrade = roadFunctionGrade, noEvaluationreason = "", linkLength = s.toDouble(), - dataLevel = 3, + dataLevel = dataLevel, linstringLength = 0.0, ) diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index e72e6c4f..01d35864 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -106,6 +106,7 @@ class MainActivity : BaseActivity() { } //点击详细信息 + @RequiresApi(Build.VERSION_CODES.N) override fun onMoreInfoClick(selectTag: String, tag: String, signBean: SignBean) { viewModel.showSignMoreInfo(signBean.renderEntity) val fragment = @@ -146,7 +147,7 @@ class MainActivity : BaseActivity() { } - @RequiresApi(Build.VERSION_CODES.M) + @RequiresApi(Build.VERSION_CODES.N) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -175,7 +176,7 @@ class MainActivity : BaseActivity() { //给xml传递viewModel对象 binding.viewModel = viewModel - binding.mainActivityVoice.setOnTouchListener { v, event -> + binding.mainActivityVoice.setOnTouchListener { v, event -> when (event?.action) { MotionEvent.ACTION_DOWN -> { voiceOnTouchStart()//Do Something @@ -234,7 +235,9 @@ class MainActivity : BaseActivity() { //捕捉列表变化回调 viewModel.liveDataNILocationList.observe(this) { - Toast.makeText(this, "轨迹被点击了", Toast.LENGTH_LONG).show() + if(viewModel.isSelectTrace()){ + Toast.makeText(this,"轨迹被点击了",Toast.LENGTH_LONG).show() + } } //右上角菜单是否被点击 @@ -381,7 +384,7 @@ class MainActivity : BaseActivity() { mapController.mMapView.onPause() } - @RequiresApi(Build.VERSION_CODES.M) + @RequiresApi(Build.VERSION_CODES.N) override fun onDestroy() { super.onDestroy() viewModel.speakMode?.shutdown() @@ -412,7 +415,7 @@ class MainActivity : BaseActivity() { /** * 打开相机预览 */ - @RequiresApi(Build.VERSION_CODES.M) + @RequiresApi(Build.VERSION_CODES.N) fun openCamera() { //显示轨迹图层 viewModel.onClickCameraButton(this) @@ -421,7 +424,7 @@ class MainActivity : BaseActivity() { /** * 开关菜单 */ - @RequiresApi(Build.VERSION_CODES.M) + @RequiresApi(Build.VERSION_CODES.N) fun onClickMenu() { //显示菜单图层 viewModel.onClickMenu() @@ -529,11 +532,82 @@ class MainActivity : BaseActivity() { /** * 点击线选择 */ + @RequiresApi(Build.VERSION_CODES.N) fun selectLineOnclick() { viewModel.setSelectRoad(!viewModel.isSelectRoad()) binding.mainActivitySelectLine.isSelected = viewModel.isSelectRoad() } + /** + * 点击线选择 + */ + @RequiresApi(Build.VERSION_CODES.N) + fun tracePointsOnclick() { + viewModel.setSelectTrace(!viewModel.isSelectTrace()) + if(viewModel.isSelectTrace()){ + Toast.makeText(this,"请选择轨迹点!",Toast.LENGTH_LONG).show() + } + binding.mainActivityTraceSnapshotPoints.isSelected = viewModel.isSelectTrace() + } + + /** + * 点击结束轨迹操作 + */ + @RequiresApi(Build.VERSION_CODES.N) + fun finishTraceOnclick() { + setIndoorGroupEnable(false) + viewModel.setSelectTrace(false) + viewModel.setMediaFlag(false) + viewModel.setSelectPauseTrace(false) + binding.mainActivityTraceSnapshotPoints.isSelected = viewModel.isSelectTrace() + binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag() + binding.mainActivitySnapshotPause.isSelected = viewModel.isSelectPauseTrace() + } + + /** + * 点击结束轨迹操作 + */ + @RequiresApi(Build.VERSION_CODES.N) + fun mediaFlagOnclick() { + viewModel.setMediaFlag(!viewModel.isMediaFlag()) + binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag() + } + + /** + * 点击上一个轨迹点播放操作 + */ + @RequiresApi(Build.VERSION_CODES.N) + fun rewindTraceOnclick() { + pasePlayTrace() + } + + /** + * 点击暂停播放轨迹操作 + */ + @RequiresApi(Build.VERSION_CODES.N) + fun pauseTraceOnclick() { + viewModel.setSelectPauseTrace(!viewModel.isSelectPauseTrace()) + binding.mainActivitySnapshotPause.isSelected = viewModel.isSelectPauseTrace() + viewModel.setSelectTrace(false) + binding.mainActivityTraceSnapshotPoints.isSelected = viewModel.isSelectTrace() + } + + /** + * 点击下一个轨迹点 + */ + @RequiresApi(Build.VERSION_CODES.N) + fun nextTraceOnclick() { + pasePlayTrace() + } + + @RequiresApi(Build.VERSION_CODES.N) + fun pasePlayTrace() { + viewModel.setSelectTrace(false) + binding.mainActivityTraceSnapshotPoints.isSelected = viewModel.isSelectTrace() + viewModel.setSelectPauseTrace(false) + binding.mainActivitySnapshotPause.isSelected = viewModel.isSelectPauseTrace() + } + /** * 打开或关闭底部导航栏 @@ -554,15 +628,10 @@ class MainActivity : BaseActivity() { mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 65) } mapController.mMapView.vtmMap.animator() - .animateTo( - GeoPoint( - mapController.mMapView.vtmMap.mapPosition.geoPoint.latitude, - mapController.mMapView.vtmMap.mapPosition.geoPoint.longitude - ) - ) + .animateTo(GeoPoint( mapController.mMapView.vtmMap.mapPosition.geoPoint.latitude,mapController.mMapView.vtmMap.mapPosition.geoPoint.longitude)) } - @RequiresApi(Build.VERSION_CODES.M) + @RequiresApi(Build.VERSION_CODES.N) private fun voiceOnTouchStart() { viewModel.startSoundMetter(this, binding.mainActivityVoice) } @@ -615,6 +684,27 @@ class MainActivity : BaseActivity() { } } + /** + * 显示轨迹回放布局 + */ + fun showIndoorDataLayout() { + binding.mainActivityMenuIndoorGroup.visibility = View.VISIBLE + if(Constant.INDOOR_IP.isNotEmpty()){ + setIndoorGroupEnable(true) + }else{ + setIndoorGroupEnable(false) + } + } + + private fun setIndoorGroupEnable(enable: Boolean){ + binding.mainActivitySnapshotFinish.isEnabled = enable + binding.mainActivityTraceSnapshotPoints.isEnabled = enable + binding.mainActivitySnapshotMediaFlag.isEnabled = enable + binding.mainActivitySnapshotRewind.isEnabled = enable + binding.mainActivitySnapshotPause.isEnabled = enable + binding.mainActivitySnapshotNext.isEnabled = enable + } + /** * 路径规划 */ @@ -645,7 +735,7 @@ class MainActivity : BaseActivity() { /** * 打开道路名称属性看板,选择的道路在viewmodel里记录,不用 */ - @RequiresApi(Build.VERSION_CODES.M) + @RequiresApi(Build.VERSION_CODES.N) fun openRoadNameFragment() { if (viewModel.liveDataRoadName.value != null) { viewModel.showSignMoreInfo(viewModel.liveDataRoadName.value!!) 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 8a8f3f70..877bc561 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 @@ -60,6 +60,7 @@ import javax.inject.Inject * 创建Activity全局viewmode */ +@RequiresApi(Build.VERSION_CODES.N) @HiltViewModel class MainViewModel @Inject constructor( private val mapController: NIMapController, @@ -77,7 +78,7 @@ class MainViewModel @Inject constructor( val liveDataNoteIdList = MutableLiveData>() //地图点击捕捉到的轨迹列表 - val liveDataNILocationList = MutableLiveData>() + val liveDataNILocationList = MutableLiveData() //左侧看板数据 val liveDataSignList = MutableLiveData>() @@ -113,6 +114,7 @@ class MainViewModel @Inject constructor( var menuState: Boolean = false + var captureLinkState: Boolean = false val liveDataMenuState = MutableLiveData() @@ -123,6 +125,21 @@ class MainViewModel @Inject constructor( */ private var bSelectRoad = false + /** + * 是不是选择轨迹点 + */ + private var bSelectTrace = false + + /** + * 是不是选择标题标识 + */ + private var isMediaFlag = false + + /** + * 是不是暂停 + */ + private var bSelectPauseTrace = false + private var linkIdCache = "" private var lastNiLocaion: NiLocation? = null @@ -146,8 +163,8 @@ class MainViewModel @Inject constructor( liveDataNoteIdList.value = list } - override fun onNiLocationList(list: MutableList) { - liveDataNILocationList.value = list + override fun onNiLocation(item: NiLocation) { + liveDataNILocationList.value = item } }) mapController.lineHandler.setOnTaskLinkItemClickListener(object : @@ -177,7 +194,7 @@ class MainViewModel @Inject constructor( initTaskData() initQsRecordData() initNoteData() -// initNILocationData() + initNILocationData() } } @@ -245,12 +262,13 @@ class MainViewModel @Inject constructor( /** * 初始化定位信息 */ + @RequiresApi(Build.VERSION_CODES.N) private fun initLocation() { //用于定位点存储到数据库 viewModelScope.launch(Dispatchers.Default) { //用于定位点捕捉道路 mapController.locationLayerHandler.niLocationFlow.collectLatest { location -> - if (!isSelectRoad()) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + if (!isSelectRoad()&&!GeometryTools.isCheckError(location.longitude,location.latitude)) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { captureLink( GeoPoint( location.latitude, @@ -260,50 +278,53 @@ class MainViewModel @Inject constructor( } } mapController.locationLayerHandler.niLocationFlow.collect { location -> - val geometry = GeometryTools.createGeometry( - GeoPoint( - location.latitude, location.longitude - ) - ) - val tileX = RealmSet() - GeometryToolsKt.getTileXByGeometry(geometry.toString(), tileX) - val tileY = RealmSet() - GeometryToolsKt.getTileYByGeometry(geometry.toString(), tileY) - //遍历存储tile对应的x与y的值 - tileX.forEach { x -> - tileY.forEach { y -> - location.tilex = x - location.tiley = y - } - } - location.groupId = uuid - try { - location.timeStamp = DateTimeUtil.getTime(location.time).toString() - } catch (e: Exception) { - - } - val id = sharedPreferences.getInt(Constant.SELECT_TASK_ID, -1) - location.taskId = id.toString() - //增加间距判断 - if (lastNiLocaion != null) { - val disance = GeometryTools.distanceToDouble( - GeoPoint(location.latitude, location.longitude), GeoPoint( - lastNiLocaion!!.latitude, lastNiLocaion!!.longitude + //过滤掉无效点 + if(!GeometryTools.isCheckError(location.longitude,location.latitude)){ + val geometry = GeometryTools.createGeometry( + GeoPoint( + location.latitude, location.longitude ) ) - //相距差距大于0.5米以上进行存储 - if (disance > 0.5) { - traceDataBase.niLocationDao.insert(location) - mapController.markerHandle.addNiLocationMarkerItem(location) - } - } else { - traceDataBase.niLocationDao.insert(location) - mapController.markerHandle.addNiLocationMarkerItem(location) - } + val tileX = RealmSet() + GeometryToolsKt.getTileXByGeometry(geometry.toString(), tileX) + val tileY = RealmSet() + GeometryToolsKt.getTileYByGeometry(geometry.toString(), tileY) - lastNiLocaion = location - //mapController.mMapView.vtmMap.updateMap(true) + //遍历存储tile对应的x与y的值 + tileX.forEach { x -> + tileY.forEach { y -> + location.tilex = x + location.tiley = y + } + } + location.groupId = uuid + try { + location.timeStamp = DateTimeUtil.getTime(location.time).toString() + } catch (e: Exception) { + + } + val id = sharedPreferences.getInt(Constant.SELECT_TASK_ID, -1) + location.taskId = id.toString() + //增加间距判断 + if (lastNiLocaion != null) { + val disance = GeometryTools.getDistance( + location.latitude, location.longitude, + lastNiLocaion!!.latitude, lastNiLocaion!!.longitude) + //相距差距大于2.5米以上进行存储 + if (disance > 2.5) { + traceDataBase.niLocationDao.insert(location) + mapController.markerHandle.addNiLocationMarkerItem(location) + mapController.mMapView.vtmMap.updateMap(true) + lastNiLocaion = location + } + } else { + traceDataBase.niLocationDao.insert(location) +/* mapController.markerHandle.addNiLocationMarkerItem(location) + mapController.mMapView.vtmMap.updateMap(true)*/ + lastNiLocaion = location + } + } } } @@ -324,100 +345,112 @@ class MainViewModel @Inject constructor( */ @RequiresApi(Build.VERSION_CODES.N) private suspend fun captureLink(point: GeoPoint) { - - val linkList = realmOperateHelper.queryLink( - point = point, - ) - var hisRoadName = false - if (linkList.isNotEmpty()) { - //看板数据 - val signList = mutableListOf() - val topSignList = mutableListOf() - mapController.lineHandler.linksLayer.clear() - - val link = linkList[0] - - val linkId = link.properties[RenderEntity.Companion.LinkTable.linkPid] - - if (linkIdCache != linkId) { - - mapController.lineHandler.showLine(link.geometry) - linkId?.let { - var elementList = realmOperateHelper.queryLinkByLinkPid(it) - for (element in elementList) { - - if (element.code == 2011) { - hisRoadName = true - liveDataRoadName.postValue(element) - continue - } - - val distance = GeometryTools.distanceToDouble( - point, GeometryTools.createGeoPoint(element.geometry) - ) - - val signBean = SignBean( - iconId = SignUtil.getSignIcon(element), - iconText = SignUtil.getSignIconText(element), - distance = distance.toInt(), - linkId = linkId, - name = SignUtil.getSignNameText(element), - bottomRightText = SignUtil.getSignBottomRightText(element), - renderEntity = element, - isMoreInfo = SignUtil.isMoreInfo(element), - index = SignUtil.getRoadInfoIndex(element) - ) - Log.e("jingo", "捕捉到的数据code ${element.code}") - when (element.code) { - //车道数,种别,功能等级,线限速,道路方向 - 2041, 2008, 2002, 2019, 2010 -> topSignList.add( - signBean - ) - - 4002, 4003, 4004, 4010, 4022, 4601 -> signList.add( - signBean - ) - } - - } - - val realm = Realm.getDefaultInstance() - val entity = realm.where(RenderEntity::class.java) - .equalTo("table", "OMDB_RESTRICTION").and().equalTo( - "properties['linkIn']", it - ).findFirst() - if (entity != null) { - val outLink = entity.properties["linkOut"] - val linkOutEntity = realm.where(RenderEntity::class.java) - .equalTo("table", "OMDB_RD_LINK").and().equalTo( - "properties['${RenderEntity.Companion.LinkTable.linkPid}']", - outLink - ).findFirst() - if (linkOutEntity != null) { - mapController.lineHandler.linksLayer.addLine( - linkOutEntity.geometry, 0x7DFF0000 - ) - } - } - } - - liveDataTopSignList.postValue(topSignList.distinctBy { it.name } - .sortedBy { it.index }) - - liveDataSignList.postValue(signList.sortedBy { it.distance }) - val speechText = SignUtil.getRoadSpeechText(topSignList) - withContext(Dispatchers.Main) { - speakMode?.speakText(speechText) - } - linkIdCache = linkId ?: "" - } - } else { - mapController.lineHandler.removeLine() - linkIdCache = "" + if(captureLinkState){ + return } - //如果没有捕捉到道路名 - if (!hisRoadName) { - liveDataRoadName.postValue(null) + + try{ + captureLinkState = true + + val linkList = realmOperateHelper.queryLink( + point = point, + ) + var hisRoadName = false + if (linkList.isNotEmpty()) { + //看板数据 + val signList = mutableListOf() + val topSignList = mutableListOf() + mapController.lineHandler.linksLayer.clear() + + val link = linkList[0] + + val linkId = link.properties[RenderEntity.Companion.LinkTable.linkPid] + + if (linkIdCache != linkId) { + + mapController.lineHandler.showLine(link.geometry) + linkId?.let { + var elementList = realmOperateHelper.queryLinkByLinkPid(it) + for (element in elementList) { + + if (element.code == 2011) { + hisRoadName = true + liveDataRoadName.postValue(element) + continue + } + + val distance = GeometryTools.distanceToDouble( + point, GeometryTools.createGeoPoint(element.geometry) + ) + + val signBean = SignBean( + iconId = SignUtil.getSignIcon(element), + iconText = SignUtil.getSignIconText(element), + distance = distance.toInt(), + linkId = linkId, + name = SignUtil.getSignNameText(element), + bottomRightText = SignUtil.getSignBottomRightText(element), + renderEntity = element, + isMoreInfo = SignUtil.isMoreInfo(element), + index = SignUtil.getRoadInfoIndex(element) + ) + Log.e("jingo", "捕捉到的数据code ${element.code}") + when (element.code) { + //车道数,种别,功能等级,线限速,道路方向 + 2041, 2008, 2002, 2019, 2010 -> topSignList.add( + signBean + ) + + 4002, 4003, 4004, 4010, 4022, 4601 -> signList.add( + signBean + ) + } + + } + + val realm = Realm.getDefaultInstance() + val entity = realm.where(RenderEntity::class.java) + .equalTo("table", "OMDB_RESTRICTION").and().equalTo( + "properties['linkIn']", it + ).findFirst() + if (entity != null) { + val outLink = entity.properties["linkOut"] + val linkOutEntity = realm.where(RenderEntity::class.java) + .equalTo("table", "OMDB_RD_LINK").and().equalTo( + "properties['${RenderEntity.Companion.LinkTable.linkPid}']", + outLink + ).findFirst() + if (linkOutEntity != null) { + mapController.lineHandler.linksLayer.addLine( + linkOutEntity.geometry, 0x7DFF0000 + ) + } + } + } + + liveDataTopSignList.postValue(topSignList.distinctBy { it.name } + .sortedBy { it.index }) + + liveDataSignList.postValue(signList.sortedBy { it.distance }) + val speechText = SignUtil.getRoadSpeechText(topSignList) + withContext(Dispatchers.Main) { + speakMode?.speakText(speechText) + } + linkIdCache = linkId ?: "" + } + } else { + mapController.lineHandler.removeLine() + linkIdCache = "" + } + //如果没有捕捉到道路名 + if (!hisRoadName) { + liveDataRoadName.postValue(null) + } + + }catch (e:Exception){ + + }finally { + captureLinkState = false } } @@ -600,6 +633,48 @@ class MainViewModel @Inject constructor( return bSelectRoad } + /** + * 开启轨迹选择 + */ + fun setSelectTrace(select: Boolean) { + bSelectTrace = select + } + + /** + * 是否开启了轨迹选择 + */ + fun isSelectTrace(): Boolean { + return bSelectTrace + } + + /** + * 开启媒体标识 + */ + fun setMediaFlag(select: Boolean) { + isMediaFlag = select + } + + /** + * 是否开启了媒体标识 + */ + fun isMediaFlag(): Boolean { + return isMediaFlag + } + + /** + * 开启轨迹选择 + */ + fun setSelectPauseTrace(select: Boolean) { + bSelectPauseTrace = select + } + + /** + * 是否开启了轨迹选择 + */ + fun isSelectPauseTrace(): Boolean { + return bSelectPauseTrace + } + /** * 要展示的要素详细信息 */ diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/scan/QRCodeViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/scan/QRCodeViewModel.kt index 36921971..1e82d3c7 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/scan/QRCodeViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/scan/QRCodeViewModel.kt @@ -9,14 +9,10 @@ import androidx.lifecycle.viewModelScope import com.navinfo.omqs.Constant import com.navinfo.omqs.bean.IndoorConnectionInfoBean import com.navinfo.omqs.bean.QRCodeBean -import com.navinfo.omqs.bean.SysUserBean -import com.navinfo.omqs.http.DefaultResponse import com.navinfo.omqs.http.NetResult import com.navinfo.omqs.http.NetworkService -import com.navinfo.omqs.ui.activity.login.LoginStatus import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.Job import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.IOException @@ -99,11 +95,14 @@ class QrCodeViewModel @Inject constructor( Toast.LENGTH_LONG ).show() } + + updateServerInfo(context) + } else { withContext(Dispatchers.Main) { Toast.makeText( context, - "${defaultUserResponse.msg}", + "${defaultUserResponse.errmsg}", Toast.LENGTH_SHORT ) .show() @@ -165,17 +164,20 @@ class QrCodeViewModel @Inject constructor( viewModelScope.launch(Dispatchers.Default) { val url = "http://${Constant.INDOOR_IP}:8080/sensor/service/connection" + + + val indoorConnectionInfoBean = IndoorConnectionInfoBean( + Constant.USER_ID, + Constant.USER_ID, + Constant.USER_ID, + "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2ODk2MjI5MjQsInVzZXJJZCI6IjEwNCIsImlhdCI6MTY4OTU3MjUyNCwidXNlcm5hbWUiOiJ3ZWl3ZWlsaW4wMDEwNCJ9.9WUqOhme8Yi_2xRBKMMe0ihb_yR1uwTqWTdZfZ7dMtE", + "http://fastmap.navinfo.com/onemap", + Constant.USER_ID, + "Android" + ) when (val result = networkService.updateServerInfo( url = url, - indoorConnectionInfoBean = IndoorConnectionInfoBean( - Constant.USER_ID, - Constant.USER_ID, - Constant.USER_ID, - Constant.USER_ID, - com.navinfo.collect.library.system.Constant.SERVER_ADDRESS, - Constant.USER_ID, - "Android" - ) + indoorConnectionInfoBean = indoorConnectionInfoBean )) { is NetResult.Success<*> -> { @@ -198,7 +200,7 @@ class QrCodeViewModel @Inject constructor( withContext(Dispatchers.Main) { Toast.makeText( context, - "${defaultUserResponse.msg}", + "${defaultUserResponse.errmsg}", Toast.LENGTH_SHORT ) .show() diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/console/ConsoleFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/console/ConsoleFragment.kt index 3318c4c6..3cb56387 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/console/ConsoleFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/console/ConsoleFragment.kt @@ -193,14 +193,29 @@ class ConsoleFragment : BaseFragment(), OnClickListener { R.id.console_personal_center_bg, R.id.console_personal_center_icon_bg -> { if (sceneFlag) { mFragment = PersonalCenterFragment { - TransitionManager.go(aScene, aTransition) + if(it){ + activity?.let { a -> + a.supportFragmentManager.beginTransaction().remove(this).commit() + (a as MainActivity).showIndoorDataLayout() + } + }else{ + TransitionManager.go(aScene, aTransition) + } + } sceneFlag = false TransitionManager.go(bScene, bTransition) } else { if (mFragment !is PersonalCenterFragment) { mFragment = PersonalCenterFragment { - TransitionManager.go(aScene, aTransition) + if(it){ + activity?.let { a -> + a.supportFragmentManager.beginTransaction().remove(this).commit() + (a as MainActivity).showIndoorDataLayout() + } + }else{ + TransitionManager.go(aScene, aTransition) + } } childFragmentManager.beginTransaction().replace(fragmentId, mFragment!!) .commit() diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt index 8ca20c4a..81eef41b 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt @@ -15,14 +15,17 @@ import com.blankj.utilcode.util.UriUtils import com.github.k1rakishou.fsaf.FileChooser import com.github.k1rakishou.fsaf.callback.FSAFActivityCallbacks import com.github.k1rakishou.fsaf.callback.FileChooserCallback +import com.navinfo.collect.library.data.entity.TaskBean import com.navinfo.collect.library.map.NIMapController import com.navinfo.omqs.R import com.navinfo.omqs.databinding.FragmentPersonalCenterBinding import com.navinfo.omqs.db.ImportOMDBHelper import com.navinfo.omqs.hilt.ImportOMDBHiltFactory import com.navinfo.omqs.tools.CoroutineUtils +import com.navinfo.omqs.ui.activity.map.MainActivity import com.navinfo.omqs.ui.fragment.BaseFragment import com.navinfo.omqs.ui.activity.scan.QrCodeActivity +import com.navinfo.omqs.ui.fragment.console.ConsoleFragment import com.permissionx.guolindev.PermissionX import dagger.hilt.android.AndroidEntryPoint import org.oscim.core.GeoPoint @@ -32,7 +35,7 @@ import javax.inject.Inject * 个人中心 */ @AndroidEntryPoint -class PersonalCenterFragment(private var backListener: (() -> Unit?)? = null) : BaseFragment(), +class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?)? = null) : BaseFragment(), FSAFActivityCallbacks { private var _binding: FragmentPersonalCenterBinding? = null @@ -137,6 +140,9 @@ class PersonalCenterFragment(private var backListener: (() -> Unit?)? = null) : //跳转二维码扫描界面 checkPermission() } + R.id.personal_center_menu_scan_indoor_data -> { + indoorDataListener?.invoke(true) + } } true } 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 ab16a1cc..f7f7e3a8 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 @@ -241,8 +241,9 @@ class TaskListAdapter( FileUploadStatus.DONE -> { binding.taskUploadBtn.stopAnimator() binding.taskUploadBtn.setText("已上传") + binding.taskUploadBtn.isEnabled = false binding.taskUploadBtn.setProgress(0) - binding.taskUploadBtn.setBackgroundColor(binding.root.resources.getColor(R.color.ripple_end_color)) + binding.taskUploadBtn.setBackgroundColor(binding.root.resources.getColor(R.color.gray_121)) } FileUploadStatus.ERROR -> { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index d6c4333f..cdc5c529 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -165,72 +165,6 @@ android:onClick="@{()->mainActivity.onClickMenu()}" /> - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + android:title="扫码连电脑" /> + + android:title="版本:ONE_QE_V1.2.0_20230707_A" /> diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt index 13030488..fd6c367a 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt @@ -158,7 +158,7 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) : /** * 评测数据marker 图层 */ - private val niLocationItemizedLayer: MyItemizedLayer by lazy { + private val niLocationItemizedLayer: ItemizedLayer by lazy { niLocationBitmap = AndroidBitmap(BitmapFactory.decodeResource(context.resources, R.mipmap.icon_gps)) @@ -173,39 +173,24 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) : ) ) - val layer = MyItemizedLayer( - mMapView.vtmMap, + val layer = ItemizedLayer( + mapView.vtmMap, mutableListOf(), markerRendererFactory, - object : MyItemizedLayer.OnItemGestureListener { - override fun onItemSingleTapUp( - list: MutableList, - nearest: Int - ): Boolean { + object : OnItemGestureListener { + override fun onItemSingleTapUp(index: Int, item: MarkerInterface?): Boolean { itemListener?.let { - val idList = mutableListOf() - if (list.size == 0) { - } else { - for (i in list) { - val markerInterface: MarkerInterface = - niLocationItemizedLayer.itemList[i] - if (markerInterface is MarkerItem) { - idList.add(markerInterface.uid as NiLocation) - } - } - it.onNiLocationList(idList.distinct().toMutableList()) - } + it.onNiLocation((niLocationItemizedLayer.itemList[index] as MarkerItem).uid as NiLocation) } return true } - override fun onItemLongPress( - list: MutableList?, - nearest: Int - ): Boolean { + override fun onItemLongPress(index: Int, item: MarkerInterface?): Boolean { return true } + }) + addLayer(layer, NIMapView.LAYER_GROUPS.OPERATE_MARKER) layer } @@ -824,5 +809,5 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) : interface OnQsRecordItemClickListener { fun onQsRecordList(list: MutableList) fun onNoteList(list: MutableList) - fun onNiLocationList(list: MutableList) + fun onNiLocation(it: NiLocation) } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/utils/GeometryTools.java b/collect-library/src/main/java/com/navinfo/collect/library/utils/GeometryTools.java index 44271835..030e6d41 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/utils/GeometryTools.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/utils/GeometryTools.java @@ -1329,9 +1329,9 @@ public class GeometryTools { } public static boolean isCheckError(double lon, double lat) { -/* if(lon==0&&lat==0){ + if(lon==0||lat==0){ return true; - }*/ + } if (lon > 180 || lon < -180 || lat > 90 || lat < -90) { return true; diff --git a/collect-library/src/main/res/mipmap-xxhdpi/icon_gps.png b/collect-library/src/main/res/mipmap-hdpi/icon_gps.png similarity index 100% rename from collect-library/src/main/res/mipmap-xxhdpi/icon_gps.png rename to collect-library/src/main/res/mipmap-hdpi/icon_gps.png diff --git a/collect-library/src/main/res/mipmap-xxhdpi/icon_gps_1.png b/collect-library/src/main/res/mipmap-hdpi/icon_gps_1.png similarity index 100% rename from collect-library/src/main/res/mipmap-xxhdpi/icon_gps_1.png rename to collect-library/src/main/res/mipmap-hdpi/icon_gps_1.png diff --git a/collect-library/src/main/res/mipmap-xxhdpi/icon_nilocation.png b/collect-library/src/main/res/mipmap-hdpi/icon_nilocation.png similarity index 100% rename from collect-library/src/main/res/mipmap-xxhdpi/icon_nilocation.png rename to collect-library/src/main/res/mipmap-hdpi/icon_nilocation.png diff --git a/collect-library/src/main/res/mipmap-xxhdpi/icon_nilocation_1.png b/collect-library/src/main/res/mipmap-hdpi/icon_nilocation_1.png similarity index 100% rename from collect-library/src/main/res/mipmap-xxhdpi/icon_nilocation_1.png rename to collect-library/src/main/res/mipmap-hdpi/icon_nilocation_1.png diff --git a/vtm b/vtm index 1ee201a4..dd13e533 160000 --- a/vtm +++ b/vtm @@ -1 +1 @@ -Subproject commit 1ee201a41f78f169873848209a3f3bdac36f185a +Subproject commit dd13e533c38b5738ab404c2737d7ccadeff01323