diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json index c09fe454..994a1511 100644 --- a/app/src/main/assets/omdb_config.json +++ b/app/src/main/assets/omdb_config.json @@ -20,6 +20,19 @@ "code": 2010, "name": "道路方向" }, + "2011": { + "table": "OMDB_LINK_NAME", + "code": 2011, + "name": "道路名", + "transformer": [ + { + "k": "geometry", + "v": "~", + "klib": "geometry", + "vlib": "generateRoadName()" + } + ] + }, "2013": { "table": "OMDB_LANE_MARK_BOUNDARYTYPE", "code": 2013, @@ -83,6 +96,14 @@ "code": 2202, "name": "隧道" }, + "4001": { + "table": "OMDB_INTERSECTION", + "code": 4001, + "name": "路口", + "transformer": [ + + ] + }, "4002": { "table": "OMDB_SPEEDLIMIT", "code": 4002, @@ -153,6 +174,14 @@ } ] }, + "4010":{ + "table": "OMDB_ELECTRONICEYE", + "code": 4010, + "name": "电子眼", + "transformer": [ + + ] + }, "4022": { "table": "OMDB_TRAFFICLIGHT", "code": 4022, @@ -166,10 +195,23 @@ } ] }, + "4601":{ + "table": "OMDB_LANEINFO", + "code": 4601, + "name": "车信", + "transformer": [ + + ] + }, "5001":{ "table": "OMDB_LANE_LINK_LG", "code": 5001, "name": "车道中心线" - } + }, + "5002":{ + "table": "OMDB_AREA", + "code": 5002, + "name": "面测试" + } } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/Constant.kt b/app/src/main/java/com/navinfo/omqs/Constant.kt index 4cee440e..a885a6ea 100644 --- a/app/src/main/java/com/navinfo/omqs/Constant.kt +++ b/app/src/main/java/com/navinfo/omqs/Constant.kt @@ -1,5 +1,7 @@ package com.navinfo.omqs +import com.navinfo.omqs.bean.ImportConfig + class Constant { companion object { /** @@ -45,6 +47,11 @@ class Constant { */ lateinit var DOWNLOAD_PATH: String + /** + * 图层管理对应的配置 + * */ + var LAYER_CONFIG_LIST: List? = null + /** * 室内整理工具IP */ diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt index 99abeeb1..55b5d4b7 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt @@ -119,14 +119,28 @@ class ImportPreProcess { * 解析车道边线数据二级属性 * */ fun unpackingLaneBoundary(renderEntity: RenderEntity) { + var shape:JSONObject = JSONObject(mapOf( + "lateralOffset" to 0, + "markType" to 1, + "markColor" to 0, + "markMaterial" to 1, + "markSeqNum" to 1, + "markWidth" to 10, + "markingCount" to 1 + )) if (renderEntity.code == 2013&&!renderEntity.properties["shapeList"].isNullOrEmpty()&&renderEntity.properties["shapeList"]!="null") { // 解析shapeList,将数组中的属性放会properties val shapeList = JSONArray(renderEntity.properties["shapeList"]) - val shape = shapeList.getJSONObject(0) - for (key in shape.keys()) { - renderEntity.properties[key] = shape[key].toString() + for (i in 0 until shapeList.length()) { + shape = shapeList.getJSONObject(i) + if (shape.optInt("lateralOffset", 0) == 0) { + break + } } } + for (key in shape.keys()) { + renderEntity.properties[key] = shape[key].toString() + } } /** @@ -176,4 +190,31 @@ class ImportPreProcess { angleReference.properties["type"] = "angle" Realm.getDefaultInstance().insert(angleReference) } + + fun generateRoadName(renderEntity: RenderEntity) { + // LinkName的真正名称数据,是保存在properties的shapeList中的,因此需要解析shapeList数据 + var shape :JSONObject? = null + if (renderEntity.properties.containsKey("shapeList")) { + val shapeListJsonArray: JSONArray = JSONArray(renderEntity.properties["shapeList"]) + for (i in 0 until shapeListJsonArray.length()) { + val shapeJSONObject = shapeListJsonArray.getJSONObject(i) + if (shapeJSONObject["nameClass"]==1) { + if (shape == null) { + shape = shapeJSONObject + } + // 获取第一官方名 + //("名称分类"NAME_CLASS =“1 官方名”,且名称序号SEQ_NUM 最小者) + if (shapeJSONObject["seqNum"].toString().toInt()< shape!!["seqNum"].toString().toInt()) { + shape = shapeJSONObject + } + } + } + } + // 获取最小的shape值,将其记录增加记录在properties的name属性下 + if(shape!=null) { + renderEntity.properties["name"] = shape["name"].toString() + } else { + renderEntity.properties["name"] = "" + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/http/offlinemapdownload/OfflineMapDownloadScope.kt b/app/src/main/java/com/navinfo/omqs/http/offlinemapdownload/OfflineMapDownloadScope.kt index 03e5ed74..5a251f8c 100644 --- a/app/src/main/java/com/navinfo/omqs/http/offlinemapdownload/OfflineMapDownloadScope.kt +++ b/app/src/main/java/com/navinfo/omqs/http/offlinemapdownload/OfflineMapDownloadScope.kt @@ -149,11 +149,9 @@ class OfflineMapDownloadScope( } } - Log.e("jingo", "文件下载完成 ${cityBean.currentSize} == ${cityBean.fileSize}") if (cityBean.currentSize == cityBean.fileSize) { val res = fileTemp.renameTo(File("${Constant.OFFLINE_MAP_PATH}${cityBean.fileName}")) - Log.e("jingo", "文件下载完成 修改文件 $res") change(FileDownloadStatus.DONE) withContext(Dispatchers.Main) { downloadManager.mapController.layerManagerHandler.loadBaseMap() 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 caa5ecd2..e373cea0 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 @@ -188,7 +188,6 @@ class TaskDownloadScope( responseBody ?: throw IOException("jingo ResponseBody is null") if (startPosition == 0L) { taskBean.fileSize = responseBody.contentLength() - Log.e("jingo", "当前文件大小 ${taskBean.fileSize}") } change(FileDownloadStatus.LOADING) //写入文件 diff --git a/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt b/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt index 8a98ce1f..1cf4f93c 100644 --- a/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt +++ b/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt @@ -15,16 +15,20 @@ class LayerConfigUtils { private val gson = Gson() fun getLayerConfigList(): List { - // 首先读取Shared文件,如果存在则直接返回,否则读取config文件 - return SPStaticUtils.getString(Constant.EVENT_LAYER_MANAGER_CHANGE, null).let { - if (it != null) { - val result: List = - gson.fromJson(it, object : TypeToken>() {}.type) - result - } else { - LayerConfigUtils.getLayerConfigListFromAssetsFile() - } + // 首先读取全局变量的数据,如果存在则直接返回,否则读取config文件 + if (Constant.LAYER_CONFIG_LIST == null) { + Constant.LAYER_CONFIG_LIST = getLayerConfigListFromAssetsFile() } + return Constant.LAYER_CONFIG_LIST!! +// return SPStaticUtils.getString(Constant.EVENT_LAYER_MANAGER_CHANGE, null).let { +// if (it != null) { +// val result: List = +// gson.fromJson(it, object : TypeToken>() {}.type) +// result +// } else { +// LayerConfigUtils.getLayerConfigListFromAssetsFile() +// } +// } } private fun getLayerConfigListFromAssetsFile(): List { 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 2e158b6c..df299262 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 @@ -23,6 +23,7 @@ import com.navinfo.collect.library.map.NIMapController import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.bean.ImportConfig +import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.databinding.ActivityMainBinding import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager import com.navinfo.omqs.tools.LayerConfigUtils @@ -67,9 +68,7 @@ class MainActivity : BaseActivity() { registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> if (result.resultCode == Activity.RESULT_OK) { val data: Intent? = result.data - Log.e("jingo", "MainActivity someActivityResultLauncher RESULT_OK") } else { - Log.e("jingo", "MainActivity someActivityResultLauncher ${result.resultCode}") } } @@ -88,16 +87,44 @@ class MainActivity : BaseActivity() { * 提前显示要素看板 */ private val signAdapter by lazy { - SignAdapter { _, autoSave, signBean -> - rightController.currentDestination?.let { - if (it.id == R.id.RightEmptyFragment) { - val bundle = Bundle() - bundle.putParcelable("SignBean", signBean) - bundle.putBoolean("AutoSave", autoSave) - rightController.navigate(R.id.EvaluationResultFragment, bundle) + SignAdapter(object : OnSignAdapterClickListener { + override fun onItemClick(signBean: SignBean) { + rightController.currentDestination?.let { + if (it.id == R.id.RightEmptyFragment) { + val bundle = Bundle() + bundle.putParcelable("SignBean", signBean) + bundle.putBoolean("AutoSave", false) + rightController.navigate(R.id.EvaluationResultFragment, bundle) + } } } - } + + override fun onMoreInfoClick(selectTag: String, tag: String, signBean: SignBean) { + if (binding.mainActivitySignMoreInfoGroup.visibility != View.VISIBLE || selectTag != tag) { + binding.mainActivitySignMoreInfoGroup.visibility = View.VISIBLE + binding.mainActivitySignMoreInfoTitle.text = signBean.name + binding.mainActivitySignMoreInfoText1.text = signBean.bottomRightText + binding.mainActivitySignMoreInfoText2.text = signBean.moreText + } else { + binding.mainActivitySignMoreInfoGroup.visibility = View.GONE + } + } + + override fun onErrorClick(signBean: SignBean) { + rightController.currentDestination?.let { + if (it.id == R.id.RightEmptyFragment) { + val bundle = Bundle() + bundle.putParcelable("SignBean", signBean) + bundle.putBoolean("AutoSave", true) + rightController.navigate(R.id.EvaluationResultFragment, bundle) + } + } + } + + override fun onHideMoreInfoView() { + binding.mainActivitySignMoreInfoGroup.visibility = View.GONE + } + }) } /** @@ -148,11 +175,9 @@ class MainActivity : BaseActivity() { when (event?.action) { MotionEvent.ACTION_DOWN -> { voiceOnTouchStart()//Do Something - Log.e("qj", "voiceOnTouchStart") } MotionEvent.ACTION_UP -> { voiceOnTouchStop()//Do Something - Log.e("qj", "voiceOnTouchStop") } } v?.onTouchEvent(event) ?: true @@ -203,9 +228,9 @@ class MainActivity : BaseActivity() { } //监听地图中点变化 viewModel.liveDataCenterPoint.observe(this) { - Log.e("qj","${it.longitude}") - try{ - if(it!=null&&it.longitude!=null&&it.latitude!=null){ + Log.e("qj", "${it.longitude}") + try { + if (it != null && it.longitude != null && it.latitude != null) { binding.mainActivityGeometry.text = "经纬度:${ BigDecimal(it.longitude).setScale( 7, @@ -213,8 +238,8 @@ class MainActivity : BaseActivity() { ) },${BigDecimal(it.latitude).setScale(7, RoundingMode.HALF_UP)}" } - }catch (e:Exception){ - Log.e("qj","异常") + } catch (e: Exception) { + Log.e("qj", "异常 $e") } } @@ -246,7 +271,7 @@ class MainActivity : BaseActivity() { val view = this.layoutInflater.inflate(R.layout.dialog_view_edittext, null) val inputDialog = MaterialAlertDialogBuilder( this - ).setTitle("标记原因").setView(view) + ).setTitle("坐标定位").setView(view) var editText = view.findViewById(R.id.dialog_edittext) editText.hint = "请输入经纬度例如:\n116.1234567,39.1234567\n116.1234567 39.1234567" inputDialog.setNegativeButton("取消") { dialog, _ -> @@ -258,7 +283,7 @@ class MainActivity : BaseActivity() { val parts = editText.text.toString().split("[,,\\s]".toRegex()) if (parts.size == 2) { val x = parts[0].toDouble() - val y = parts[0].toDouble() + val y = parts[1].toDouble() mapController.animationHandler.animationByLatLon(y, x) } else { Toast.makeText(this, "输入格式不正确", Toast.LENGTH_SHORT).show() @@ -413,6 +438,12 @@ class MainActivity : BaseActivity() { */ fun onSwitchSheet() { if (binding.mainActivityBottomSheetGroup.visibility == View.VISIBLE) { + leftFragment?.let { + supportFragmentManager.beginTransaction().remove(it).commit() + leftFragment = null + binding.mainActivityLeftFragment.visibility = View.GONE + } + binding.mainActivityBottomSheetGroup.visibility = View.GONE } else { binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE @@ -472,10 +503,18 @@ class MainActivity : BaseActivity() { .replace(R.id.main_activity_left_fragment, leftFragment!!).commit() } } + + /** + * 路径规划 + */ + fun onClickRouteFragment() { + Toast.makeText(this, "功能开发中", Toast.LENGTH_SHORT).show() + } + /** * 打开离线地图 */ - fun onClickOfflineMapFragment(){ + fun onClickOfflineMapFragment() { if (leftFragment !is OfflineMapFragment) { if (leftFragment == null) { binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE 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 c8f575ca..78e29e3f 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 @@ -183,11 +183,10 @@ class MainViewModel @Inject constructor( location.tiley = y } } - Log.e("jingo", "定位点插入 ${location.longitude}") location.groupId = uuid try { location.timeStamp = DateTimeUtil.getTime(location.time).toString() - }catch (e: Exception){ + } catch (e: Exception) { } traceDataBase.niLocationDao.insert(location) @@ -244,7 +243,8 @@ class MainViewModel @Inject constructor( geometry = element.geometry, name = SignUtil.getSignNameText(element), bottomRightText = SignUtil.getSignBottomRightText(element), - elementCode = element.code + elementCode = element.code, + moreText = SignUtil.getMoreInfoText(element) ) when (element.code) { @@ -292,9 +292,8 @@ class MainViewModel @Inject constructor( speakMode?.speakText(speechText) } linkIdCache = linkId ?: "" - Log.e("jingo", "自动捕捉数据 共${signList.size}条") } - }else{ + } else { mapController.lineHandler.removeLine() linkIdCache = "" } diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt index b5072080..3bb31f38 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt @@ -1,6 +1,7 @@ package com.navinfo.omqs.ui.activity.map import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import com.navinfo.omqs.R import com.navinfo.omqs.bean.SignBean @@ -8,8 +9,19 @@ import com.navinfo.omqs.databinding.AdapterSignBinding import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter import com.navinfo.omqs.ui.other.BaseViewHolder -class SignAdapter(private var itemListener: ((Int, Boolean, SignBean) -> Unit?)? = null) : +interface OnSignAdapterClickListener { + fun onItemClick(signBean: SignBean) + fun onMoreInfoClick(selectTag: String, tag: String, signBean: SignBean) + fun onErrorClick(signBean: SignBean) + fun onHideMoreInfoView() +} + +class SignAdapter(private var listener: OnSignAdapterClickListener?) : BaseRecyclerViewAdapter() { + /** + * 选中的详细信息按钮的tag标签 + */ + private var selectMoreInfoTag: String = "" override fun getItemViewRes(position: Int): Int { return R.layout.adapter_sign } @@ -22,17 +34,40 @@ class SignAdapter(private var itemListener: ((Int, Boolean, SignBean) -> Unit?)? override fun onBindViewHolder(holder: BaseViewHolder, position: Int) { val bd = holder.viewBinding as AdapterSignBinding + val item = data[position] - if (item.iconId != 0) - bd.signMainIconBg.setImageResource(item.iconId) + if (item.iconId != 0) bd.signMainIconBg.setImageResource(item.iconId) bd.signMainIcon.text = item.iconText bd.signBottomText.text = item.name - bd.signMainFastError.setOnClickListener{ - itemListener?.invoke(position, true,item) + holder.tag = item.name + position + //点击错误按钮 + bd.signMainFastError.setOnClickListener { + listener?.onErrorClick(item) } bd.signBottomRightText.text = item.bottomRightText + bd.root.setOnClickListener { - itemListener?.invoke(position, false,item) + listener?.onItemClick(item) } + if (item.moreText.isNotEmpty()) { + bd.signMainInfo.visibility = View.VISIBLE + //点击更多信息按钮 + bd.signMainInfo.setOnClickListener { + listener?.onMoreInfoClick(selectMoreInfoTag, holder.tag, item) + selectMoreInfoTag = holder.tag + } + } else bd.signMainInfo.visibility = View.GONE + } + + override fun refreshData(newData: List) { + super.refreshData(newData) + for (i in newData.indices) { + if (selectMoreInfoTag == newData[i].name + i) { + return + } + } + listener?.onHideMoreInfoView() + } + } \ No newline at end of file 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 c882bb55..3318c4c6 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 @@ -6,6 +6,7 @@ import android.view.LayoutInflater import android.view.View import android.view.View.OnClickListener import android.view.ViewGroup +import android.widget.Toast import androidx.fragment.app.Fragment import androidx.transition.AutoTransition import androidx.transition.Scene @@ -64,14 +65,12 @@ class ConsoleFragment : BaseFragment(), OnClickListener { override fun onTransitionStart(transition: androidx.transition.Transition) { sceneFlag = true if (mFragment != null) { - Log.e("jingo", "动画开始B mFragment 不为null") childFragmentManager.beginTransaction().remove(mFragment!!).commit() mFragment = null } } override fun onTransitionEnd(transition: androidx.transition.Transition) { - Log.e("jingo", "动画A结束") initOnClickListener() } @@ -89,7 +88,6 @@ class ConsoleFragment : BaseFragment(), OnClickListener { override fun onTransitionStart(transition: androidx.transition.Transition) { sceneFlag = false if (mFragment != null) { - Log.e("jingo", "动画开始A mFragment 不为null") childFragmentManager.beginTransaction().replace(fragmentId, mFragment!!) .commit() } @@ -156,6 +154,11 @@ class ConsoleFragment : BaseFragment(), OnClickListener { */ binding.consoleRoot.findViewById(R.id.console_task_bg)?.setOnClickListener(this) binding.consoleRoot.findViewById(R.id.console_task_icon_bg)?.setOnClickListener(this) + /** + * 路径规划 + */ + binding.consoleRoot.findViewById(R.id.console_route_bg)?.setOnClickListener(this) + binding.consoleRoot.findViewById(R.id.console_route_icon_bg)?.setOnClickListener(this) } override fun onDestroy() { @@ -235,6 +238,9 @@ class ConsoleFragment : BaseFragment(), OnClickListener { (a as MainActivity).onClickResFragment() } } + /** + * 任务列表 + */ R.id.console_task_icon_bg, R.id.console_task_bg -> { activity?.let { a -> a.supportFragmentManager.beginTransaction().remove(this).commit() @@ -242,6 +248,12 @@ class ConsoleFragment : BaseFragment(), OnClickListener { } } + /** + * 路径规划 + */ + R.id.console_route_bg, R.id.console_route_icon_bg -> { + Toast.makeText(requireContext(), "功能开发中", Toast.LENGTH_SHORT).show() + } else -> {} } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt index d2f0ccae..87cf037d 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultFragment.kt @@ -98,17 +98,14 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener { when (event?.action) { MotionEvent.ACTION_DOWN -> { voiceOnTouchStart()//Do Something - Log.e("qj", "voiceOnTouchStart") } MotionEvent.ACTION_UP -> { voiceOnTouchStop()//Do Something - Log.e("qj", "ACTION_UP") } MotionEvent.ACTION_CANCEL -> { voiceOnTouchStop()//Do Something - Log.e("qj", "ACTION_CANCEL") } } true diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index 5684e00d..301254cb 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -97,7 +97,6 @@ class EvaluationResultViewModel @Inject constructor( init { liveDataQsRecordBean.value = QsRecordBean(id = UUID.randomUUID().toString()) - Log.e("jingo", "EvaluationResultViewModel 创建了 ${hashCode()}") viewModelScope.launch { mapController.onMapClickFlow.collect { liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText() @@ -111,7 +110,6 @@ class EvaluationResultViewModel @Inject constructor( override fun onCleared() { super.onCleared() - Log.e("jingo", "EvaluationResultViewModel 销毁了 ${hashCode()}") mapController.markerHandle.removeMarker(markerTitle) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { mapController.lineHandler.removeLine() @@ -223,7 +221,6 @@ class EvaluationResultViewModel @Inject constructor( * 获取问题环节列表和初步问题 */ fun getProblemLinkList() { - Log.e("jingo", "getProblemLinkList S") viewModelScope.launch(Dispatchers.IO) { val list = roomAppDatabase.getScRootCauseAnalysisDao().findAllData() list?.let { tl -> @@ -242,11 +239,9 @@ class EvaluationResultViewModel @Inject constructor( } if (liveDataQsRecordBean.value!!.problemLink.isEmpty()) { liveDataQsRecordBean.value!!.problemLink = middleList[0] - Log.e("jingo", "getProblemLinkList ${middleList[0]}") } if (liveDataQsRecordBean.value!!.cause.isEmpty()) { liveDataQsRecordBean.value!!.cause = rightList[0].text - Log.e("jingo", "getProblemLinkList ${rightList[0].text}") } liveDataQsRecordBean.postValue(liveDataQsRecordBean.value) // liveDataMiddleTypeList.postValue(middleList) @@ -254,14 +249,12 @@ class EvaluationResultViewModel @Inject constructor( } } } - Log.e("jingo", "getProblemLinkList E") } /** * 获取问题类型列表和问题现象 */ private suspend fun getProblemList(classType: String) { - Log.e("jingo", "getProblemList S") val typeList = roomAppDatabase.getScProblemTypeDao().findProblemTypeList(classType) typeList?.let { tl -> if (tl.isNotEmpty()) { @@ -279,18 +272,15 @@ class EvaluationResultViewModel @Inject constructor( } if (liveDataQsRecordBean.value!!.problemType.isEmpty()) { liveDataQsRecordBean.value!!.problemType = typeTitleList[0] - Log.e("jingo", "getProblemList ${typeTitleList[0]}") } // liveDataMiddleTypeList.postValue(typeTitleList) if (liveDataQsRecordBean.value!!.phenomenon.isEmpty()) { liveDataQsRecordBean.value!!.phenomenon = phenomenonRightList[0].text - Log.e("jingo", "getProblemList ${phenomenonRightList[0].text}") } liveDataQsRecordBean.postValue(liveDataQsRecordBean.value) liveDataRightTypeList.postValue(phenomenonRightList) } } - Log.e("jingo", "getProblemList E") } /** @@ -341,7 +331,6 @@ class EvaluationResultViewModel @Inject constructor( mDialog.dismiss() viewModelScope.launch(Dispatchers.IO) { val realm = Realm.getDefaultInstance() - Log.e("jingo", "realm hashCOde ${realm.hashCode()}") realm.executeTransaction { val objects = it.where(QsRecordBean::class.java) .equalTo("id", liveDataQsRecordBean.value?.id).findFirst() diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/PhenomenonFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/PhenomenonFragment.kt index 0fea2c21..0442c928 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/PhenomenonFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/PhenomenonFragment.kt @@ -34,7 +34,6 @@ class PhenomenonFragment : savedInstanceState: Bundle? ): View { _binding = FragmentPhenomenonBinding.inflate(inflater, container, false) - Log.e("jingo", "PhenomenonFragment onCreateView ${hashCode()}") return binding.root } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt index 0e889dbd..fa993de2 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt @@ -23,7 +23,7 @@ class LayerManagerViewModel() : ViewModel() { } fun saveLayerConfigList(context: Context, listData: List) { - SPStaticUtils.put(Constant.EVENT_LAYER_MANAGER_CHANGE, gson.toJson(listData)) + Constant.LAYER_CONFIG_LIST = listData // 发送新的配置数据 viewModelScope.launch { FlowEventBus.post(Constant.EVENT_LAYER_MANAGER_CHANGE, listData) diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/offlinemap/OfflineMapCityListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/offlinemap/OfflineMapCityListAdapter.kt index fdd31329..dede03ce 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/offlinemap/OfflineMapCityListAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/offlinemap/OfflineMapCityListAdapter.kt @@ -34,15 +34,12 @@ class OfflineMapCityListAdapter( val cityBean = data[it.tag as Int] when (cityBean.status) { FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.ERROR -> { - Log.e("jingo", "开始下载 ${cityBean.status}") downloadManager.start(cityBean.id) } FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> { - Log.e("jingo", "暂停 ${cityBean.status}") downloadManager.pause(cityBean.id) } else -> { - Log.e("jingo", "暂停 ${cityBean.status}") } } } @@ -85,7 +82,6 @@ class OfflineMapCityListAdapter( if (id == holder.tag) { val binding: AdapterOfflineMapCityBinding = holder.viewBinding as AdapterOfflineMapCityBinding - Log.e("jingo", "进度条更新 $id ${bean.id} ${holder.tag} ") changeViews(binding, bean) } } @@ -95,7 +91,6 @@ class OfflineMapCityListAdapter( private fun changeViews(binding: AdapterOfflineMapCityBinding, cityBean: OfflineMapCityBean) { - Log.e("jingo", "changeViews ${cityBean.status}") binding.offlineMapProgress.progress = (cityBean.currentSize * 100 / cityBean.fileSize).toInt() when (cityBean.status) { 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 18083f8a..7322b6e9 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 @@ -115,11 +115,17 @@ class PersonalCenterFragment(private var backListener: (() -> Unit?)? = null) : viewModel.readRealmData() // 定位到指定位置 niMapController.mMapView.vtmMap.animator() - .animateTo(GeoPoint(40.031657799200346, 116.32207834810715)) - } - R.id.personal_center_menu_task_list -> { - findNavController().navigate(R.id.TaskManagerFragment) + .animateTo(GeoPoint( 39.80392140200183, 116.51446703352337 )) } +// R.id.personal_center_menu_task_list -> { +// findNavController().navigate(R.id.TaskManagerFragment) +// } +// R.id.personal_center_menu_qs_record_list -> { +// findNavController().navigate(R.id.QsRecordListFragment) +// } +// R.id.personal_center_menu_layer_manager -> { // 图层管理 +// findNavController().navigate(R.id.QsLayerManagerFragment) +// } R.id.personal_center_menu_qs_record_list -> { findNavController().navigate(R.id.QsRecordListFragment) } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListViewModel.kt index 8b0f391f..29b1eb39 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListViewModel.kt @@ -26,7 +26,6 @@ class QsRecordListViewModel @Inject constructor( fun getList(context: Context) { viewModelScope.launch(Dispatchers.IO) { val realm = Realm.getDefaultInstance() - Log.e("jingo","realm hashCOde ${realm.hashCode()}") val objects = realm.where(QsRecordBean::class.java).findAll() liveDataQSList.postValue(realm.copyFromRealm(objects)) } 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 9530ea95..0b963619 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 @@ -39,17 +39,14 @@ class TaskListAdapter( if (taskBean.hadLinkDvoList.isNotEmpty()) { when (taskBean.status) { FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.IMPORT, FileDownloadStatus.ERROR -> { - Log.e("jingo", "开始下载 ${taskBean.status}") downloadManager.start(taskBean.id) } FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> { - Log.e("jingo", "暂停 ${taskBean.status}") downloadManager.pause(taskBean.id) } else -> { - Log.e("jingo", "暂停 ${taskBean.status}") } } } else { @@ -61,7 +58,6 @@ class TaskListAdapter( private val uploadBtnClick = View.OnClickListener() { if (it.tag != null) { val taskBean = data[it.tag as Int] - Log.e("jingo", "开始上传 ${taskBean.syncStatus}") if (taskBean.hadLinkDvoList.isNotEmpty()) { when (taskBean.syncStatus) { FileUploadStatus.NONE, FileUploadStatus.UPLOADING, FileUploadStatus.ERROR, FileUploadStatus.WAITING -> { diff --git a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt index eff5a96c..773e55e0 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt @@ -87,12 +87,30 @@ class SignUtil { */ fun getSignBottomRightText(data: RenderEntity): String { return when (data.code) { - //常点限速 + //条件点限速 4003 -> getConditionLimitText(data) else -> "" } } + /** + * 更多信息展示文字 + */ + fun getMoreInfoText(data: RenderEntity): String { + return when (data.code) { + //条件点限速 + 4003 -> getConditionLimitMoreInfoText(data) + else -> "" + } + } + + /** + * 条件点限速更多信息 + */ + private fun getConditionLimitMoreInfoText(data: RenderEntity): String { + return data.properties["validPeriod"].toString() + } + /** * 条件点限速文字 */ @@ -170,7 +188,7 @@ class SignUtil { private fun getSpeedLimitIcon(data: RenderEntity): Int { try { //限速标志 0 限速开始 1 限速解除 - return when (data.properties["speed_flag"]) { + return when (data.properties["speedFlag"]) { "1" -> return R.drawable.icon_speed_limit_off else -> return R.drawable.icon_speed_limit } @@ -186,7 +204,7 @@ class SignUtil { private fun getConditionalSpeedLimitIcon(data: RenderEntity): Int { try { //限速标志 0 限速开始 1 限速解除 - return when (data.properties["speed_flag"]) { + return when (data.properties["speedFlag"]) { "1" -> return R.drawable.icon_conditional_speed_limit_off else -> return R.drawable.icon_conditional_speed_limit } diff --git a/app/src/main/res/drawable-xxhdpi/icon_main_moreinfo_text_left.png b/app/src/main/res/drawable-xxhdpi/icon_main_moreinfo_text_left.png new file mode 100644 index 00000000..c12aa6a6 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_main_moreinfo_text_left.png differ diff --git a/app/src/main/res/drawable-xxhdpi/main_sign_moreinfo_bg.9.png b/app/src/main/res/drawable-xxhdpi/main_sign_moreinfo_bg.9.png new file mode 100644 index 00000000..c10da04a Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/main_sign_moreinfo_bg.9.png differ diff --git a/app/src/main/res/drawable/shape_rect_black_8dp_bg.xml b/app/src/main/res/drawable/shape_rect_black_8dp_bg.xml index 9e391212..91510788 100644 --- a/app/src/main/res/drawable/shape_rect_black_8dp_bg.xml +++ b/app/src/main/res/drawable/shape_rect_black_8dp_bg.xml @@ -3,10 +3,10 @@ android:shape="rectangle"> + android:bottomLeftRadius="8dp" + android:bottomRightRadius="8dp" + android:topLeftRadius="8dp" + android:topRightRadius="8dp" /> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a5e3631e..f36b8ba2 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -63,6 +63,61 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + + + + + + + + @@ -446,6 +502,7 @@ android:text="路径规划" android:textColor="@color/blue" android:textSize="10sp" + android:onClick="@{()->mainActivity.onClickRouteFragment()}" app:layout_constraintBottom_toBottomOf="@id/main_activity_bottom_sheet_bg" app:layout_constraintLeft_toLeftOf="@id/main_bottom_route" app:layout_constraintRight_toRightOf="@id/main_bottom_route" @@ -455,7 +512,7 @@ android:id="@+id/main_activity_bottom_sheet_group" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:visibility="visible" + android:visibility="gone" app:constraint_referenced_ids=" main_bottom_route_text, main_bottom_offline_map_text, @@ -476,5 +533,4 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> - \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_sign.xml b/app/src/main/res/layout/adapter_sign.xml index 98d10cb5..3dbdbdb6 100644 --- a/app/src/main/res/layout/adapter_sign.xml +++ b/app/src/main/res/layout/adapter_sign.xml @@ -46,10 +46,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@id/sign_bottom_text" - android:layout_alignParentRight="true" android:layout_marginRight="15dp" android:gravity="center" android:text="其他信息" + android:layout_alignRight="@id/sign_main_bg" android:textColor="@color/white" android:textSize="14sp" /> diff --git a/app/src/main/res/layout/adapter_task_list.xml b/app/src/main/res/layout/adapter_task_list.xml index 56b85cbc..0f61f0f1 100644 --- a/app/src/main/res/layout/adapter_task_list.xml +++ b/app/src/main/res/layout/adapter_task_list.xml @@ -97,7 +97,6 @@ + app:layout_constraintRight_toLeftOf="@id/console_task_icon_text" + app:layout_constraintTop_toTopOf="@id/console_task_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -154,12 +158,16 @@ android:src="@drawable/icon_console_evaluation" app:layout_constraintBottom_toBottomOf="@id/console_evaluation_bg" app:layout_constraintLeft_toLeftOf="@id/console_evaluation_bg" - app:layout_constraintTop_toTopOf="@id/console_evaluation_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_evaluation_icon_text" + app:layout_constraintTop_toTopOf="@id/console_evaluation_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -180,12 +188,16 @@ android:src="@drawable/icon_console_offline_map" app:layout_constraintBottom_toBottomOf="@id/console_offline_map_bg" app:layout_constraintLeft_toLeftOf="@id/console_offline_map_bg" - app:layout_constraintTop_toTopOf="@id/console_offline_map_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_offline_map_icon_text" + app:layout_constraintTop_toTopOf="@id/console_offline_map_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -205,12 +217,16 @@ android:src="@drawable/icon_console_route" app:layout_constraintBottom_toBottomOf="@id/console_route_bg" app:layout_constraintLeft_toLeftOf="@id/console_route_bg" - app:layout_constraintTop_toTopOf="@id/console_route_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_route_icon_text" + app:layout_constraintTop_toTopOf="@id/console_route_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -232,12 +248,16 @@ android:src="@drawable/icon_console_layer_setting" app:layout_constraintBottom_toBottomOf="@id/console_layer_setting_bg" app:layout_constraintLeft_toLeftOf="@id/console_layer_setting_bg" - app:layout_constraintTop_toTopOf="@id/console_layer_setting_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_layer_setting_icon_text" + app:layout_constraintTop_toTopOf="@id/console_layer_setting_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -257,12 +277,16 @@ android:src="@drawable/icon_console_personal_center" app:layout_constraintBottom_toBottomOf="@id/console_personal_center_bg" app:layout_constraintLeft_toLeftOf="@id/console_personal_center_bg" - app:layout_constraintTop_toTopOf="@id/console_personal_center_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_personal_center_icon_text" + app:layout_constraintTop_toTopOf="@id/console_personal_center_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -469,7 +493,7 @@ app:layout_constraintLeft_toLeftOf="@id/console_track_bg" app:layout_constraintRight_toLeftOf="@id/console_track_text" app:layout_constraintTop_toTopOf="@id/console_track_bg" - app:layout_constraintVertical_chainStyle="spread" /> + app:layout_constraintVertical_chainStyle="packed" /> - - - + + + + + + + + + + + + - #FFA500 + #FFBC6E diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d0a4d202..5193314e 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -24,7 +24,7 @@ wrap_content @color/white 18sp - 5dp + \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_4022_0.svg b/collect-library/src/main/assets/omdb/icon_4022_0.svg index 63378323..dc58b844 100644 --- a/collect-library/src/main/assets/omdb/icon_4022_0.svg +++ b/collect-library/src/main/assets/omdb/icon_4022_0.svg @@ -1,162 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_arrow_right.svg b/collect-library/src/main/assets/omdb/icon_arrow_right.svg index fc0678f3..73b8c5dc 100644 --- a/collect-library/src/main/assets/omdb/icon_arrow_right.svg +++ b/collect-library/src/main/assets/omdb/icon_arrow_right.svg @@ -1,40 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt index d3348487..e3e4f8fa 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt @@ -105,7 +105,6 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView, traceP } private fun initOMDBVectorTileLayer() { - // 初始化OMDB参考相关图层 omdbReferenceTileLayer = VectorTileLayer(mMapView.vtmMap, omdbReferenceTileSource) omdbReferenceLabelLayer = LabelLayer( 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 bc2f46e2..e4e9b588 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 @@ -263,7 +263,6 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) : mContext.lifecycleScope.launch(Dispatchers.IO) { var list = mutableListOf() val realm = Realm.getDefaultInstance() - Log.e("jingo", "realm hashCOde ${realm.hashCode()}") realm.executeTransaction { val objects = realm.where().findAll() list = realm.copyFromRealm(objects) diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/layers/MyItemizedLayer.java b/collect-library/src/main/java/com/navinfo/collect/library/map/layers/MyItemizedLayer.java index cae265b8..fb9b4c47 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/layers/MyItemizedLayer.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/layers/MyItemizedLayer.java @@ -89,7 +89,6 @@ public class MyItemizedLayer extends ItemizedLayer { private boolean activateSelectedItems(MotionEvent event, ActiveItem task) { int size = this.mItemList.size(); - Log.e("jingo", "地图点击 size =" + size); if (size == 0) { return false; } else { diff --git a/vtm b/vtm index dd13e533..1ee201a4 160000 --- a/vtm +++ b/vtm @@ -1 +1 @@ -Subproject commit dd13e533c38b5738ab404c2737d7ccadeff01323 +Subproject commit 1ee201a41f78f169873848209a3f3bdac36f185a