调整UI
调整道路属性面板
@ -5,6 +5,11 @@
|
||||
"code": 2001,
|
||||
"name": "道路线"
|
||||
},
|
||||
"2002": {
|
||||
"table": "OMDB_RD_LINK_FUNCTION_CLASS",
|
||||
"code": 2002,
|
||||
"name": "道路功能等级"
|
||||
},
|
||||
"2008": {
|
||||
"table": "OMDB_RD_LINK_KIND",
|
||||
"code": 2008,
|
||||
@ -15,6 +20,51 @@
|
||||
"code": 2010,
|
||||
"name": "道路方向"
|
||||
},
|
||||
"2019": {
|
||||
"table": "OMDB_LINK_SPEEDLIMIT",
|
||||
"code": 2019,
|
||||
"name": "常规线限速"
|
||||
},
|
||||
"2020": {
|
||||
"table": "OMDB_LINK_SPEEDLIMIT_COND",
|
||||
"code": 2020,
|
||||
"name": "条件线限速"
|
||||
},
|
||||
"2021": {
|
||||
"table": "OMDB_LINK_SPEEDLIMIT_VAR",
|
||||
"code": 2021,
|
||||
"name": "可变线限速"
|
||||
},
|
||||
"2022": {
|
||||
"table": "OMDB_CON_ACCESS",
|
||||
"code": 2022,
|
||||
"name": "全封闭"
|
||||
},
|
||||
"2037": {
|
||||
"table": "OMDB_FORM_OF_WAY",
|
||||
"code": 2037,
|
||||
"name": "匝道"
|
||||
},
|
||||
"2040": {
|
||||
"table": "OMDB_MULTI_DIGITIZED",
|
||||
"code": 2040,
|
||||
"name": "上下线分离"
|
||||
},
|
||||
"2041":{
|
||||
"table": "OMDB_LANE_NUM",
|
||||
"code": 2041,
|
||||
"name": "车道数"
|
||||
},
|
||||
"2201":{
|
||||
"table": "OMDB_BRIDGE",
|
||||
"code": 2201,
|
||||
"name": "桥"
|
||||
},
|
||||
"2202":{
|
||||
"table": "OMDB_TUNNEL",
|
||||
"code": 2202,
|
||||
"name": "隧道"
|
||||
},
|
||||
"4002": {
|
||||
"table": "OMDB_SPEEDLIMIT",
|
||||
"code": 4002,
|
||||
@ -66,23 +116,16 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"4006":{
|
||||
"table": "OMDB_RESTRICTION",
|
||||
"code": 4006,
|
||||
"name": "普通交限"
|
||||
},
|
||||
"5001":{
|
||||
"table": "OMDB_LANE_LINK_LG",
|
||||
"code": 5001,
|
||||
"name": "车道中心线"
|
||||
},
|
||||
"2041":{
|
||||
"table": "OMDB_LANE_NUM",
|
||||
"code": 2041,
|
||||
"name": "车道数",
|
||||
"transformer": [
|
||||
{
|
||||
"k": "laneS2e",
|
||||
"v": "~",
|
||||
"klib": "left_00",
|
||||
"vlib": "laneNumLeft00()"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -17,7 +17,7 @@ data class SignBean(
|
||||
val linkId: String,
|
||||
//坐标
|
||||
val geometry: String,
|
||||
//底部文字
|
||||
//名称
|
||||
val name: String,
|
||||
//底部右侧文字
|
||||
val bottomRightText: String,
|
||||
|
@ -60,7 +60,7 @@ class MainActivity : BaseActivity() {
|
||||
private val signAdapter by lazy {
|
||||
SignAdapter { position, signBean ->
|
||||
rightController.currentDestination?.let {
|
||||
if (it.id == R.id.EmptyFragment) {
|
||||
if (it.id == R.id.RightEmptyFragment) {
|
||||
val bundle = Bundle()
|
||||
bundle.putParcelable("SignBean", signBean)
|
||||
rightController.navigate(R.id.EvaluationResultFragment, bundle)
|
||||
@ -75,7 +75,7 @@ class MainActivity : BaseActivity() {
|
||||
private val topSignAdapter by lazy {
|
||||
TopSignAdapter { position, signBean ->
|
||||
rightController.currentDestination?.let {
|
||||
if (it.id == R.id.EmptyFragment) {
|
||||
if (it.id == R.id.RightEmptyFragment) {
|
||||
val bundle = Bundle()
|
||||
bundle.putParcelable("SignBean", signBean)
|
||||
rightController.navigate(R.id.EvaluationResultFragment, bundle)
|
||||
@ -147,9 +147,9 @@ class MainActivity : BaseActivity() {
|
||||
this,
|
||||
RecyclerView.HORIZONTAL, false
|
||||
)
|
||||
binding.mainActivityTopSignRecyclerview.addItemDecoration(
|
||||
RecycleViewDivider(this, LinearLayoutManager.HORIZONTAL)
|
||||
)
|
||||
// binding.mainActivityTopSignRecyclerview.addItemDecoration(
|
||||
// RecycleViewDivider(this, LinearLayoutManager.HORIZONTAL)
|
||||
// )
|
||||
binding.mainActivityTopSignRecyclerview.adapter = topSignAdapter
|
||||
|
||||
|
||||
@ -276,7 +276,7 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*展开或收起右侧面板
|
||||
*/
|
||||
fun onSwitchFragment() {
|
||||
switchFragment = !switchFragment
|
||||
@ -288,6 +288,13 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 隐藏或显示右侧展开按钮
|
||||
*/
|
||||
fun setRightSwitchButton(visibility: Int) {
|
||||
binding.mainActivityFragmentSwitch.visibility = visibility
|
||||
}
|
||||
|
||||
/**
|
||||
* 点击录音按钮
|
||||
*/
|
||||
|
@ -223,7 +223,7 @@ class MainViewModel @Inject constructor(
|
||||
)
|
||||
|
||||
when (element.code) {
|
||||
2041, 2008 -> topSignList.add(
|
||||
2041, 2008, 2010 -> topSignList.add(
|
||||
signBean
|
||||
)
|
||||
else -> signList.add(
|
||||
@ -386,8 +386,7 @@ class MainViewModel @Inject constructor(
|
||||
if (layerConfigList != null && !layerConfigList.isEmpty()) {
|
||||
val omdbVisibleList = layerConfigList.filter { importConfig ->
|
||||
importConfig.tableGroupName == "OMDB数据"
|
||||
}.first().tableMap.filter {
|
||||
entry ->
|
||||
}.first().tableMap.filter { entry ->
|
||||
val tableInfo = entry.value
|
||||
!tableInfo.checked
|
||||
}.map { entry ->
|
||||
@ -426,7 +425,7 @@ class MainViewModel @Inject constructor(
|
||||
// }
|
||||
// }
|
||||
when (navDestination.id) {
|
||||
R.id.EmptyFragment -> {
|
||||
R.id.RightEmptyFragment -> {
|
||||
if (list.size == 1) {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("QsId", list[0])
|
||||
|
@ -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
|
||||
@ -27,6 +28,36 @@ class TopSignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = nul
|
||||
bd.topSignText.background = holder.viewBinding.root.context.getDrawable(item.iconId)
|
||||
bd.topSignName.text = item.name
|
||||
bd.topSignText.text = item.iconText
|
||||
if (data.size == 1) {
|
||||
bd.topSignLeftLine.visibility = View.GONE
|
||||
bd.topSignRightLine.visibility = View.GONE
|
||||
bd.topSignName.background =
|
||||
holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_top_bg)
|
||||
bd.topSignText.background =
|
||||
holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_bottom_bg)
|
||||
} else if (position == 0) {
|
||||
bd.topSignLeftLine.visibility = View.GONE
|
||||
bd.topSignRightLine.visibility = View.VISIBLE
|
||||
bd.topSignName.background =
|
||||
holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_left_top_bg)
|
||||
bd.topSignText.background =
|
||||
holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_left_bottom_bg)
|
||||
} else if (position == data.size - 1) {
|
||||
bd.topSignLeftLine.visibility = View.VISIBLE
|
||||
bd.topSignRightLine.visibility = View.GONE
|
||||
bd.topSignName.background =
|
||||
holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_right_top_bg)
|
||||
bd.topSignText.background =
|
||||
holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_right_bottom_bg)
|
||||
} else {
|
||||
bd.topSignLeftLine.visibility = View.VISIBLE
|
||||
bd.topSignRightLine.visibility = View.VISIBLE
|
||||
bd.topSignName.background =
|
||||
holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_middle_top_bg)
|
||||
bd.topSignText.background =
|
||||
holder.viewBinding.root.context.getDrawable(R.drawable.shape_road_info_middle_bottom_bg)
|
||||
}
|
||||
|
||||
bd.root.setOnClickListener {
|
||||
itemListener?.invoke(position, item)
|
||||
}
|
||||
|
@ -5,13 +5,17 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.databinding.FragmentEmptyBinding
|
||||
import com.navinfo.omqs.ui.activity.map.MainActivity
|
||||
|
||||
class EmptyFragment :Fragment(){
|
||||
class EmptyFragment : Fragment() {
|
||||
private var _binding: FragmentEmptyBinding? = null
|
||||
|
||||
private var currentDestinationLabel = ""
|
||||
private val binding get() = _binding!!
|
||||
// private val viewModel by lazy { viewModels<EvaluationResultViewModel>().value}
|
||||
|
||||
// private val viewModel by lazy { viewModels<EvaluationResultViewModel>().value}
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
@ -25,6 +29,22 @@ class EmptyFragment :Fragment(){
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
val currentDestination = findNavController().currentDestination
|
||||
if (currentDestination?.label == "右侧空页面") {
|
||||
currentDestinationLabel = "右侧空页面"
|
||||
(activity as MainActivity).setRightSwitchButton(View.GONE)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
if (currentDestinationLabel == "右侧空页面") {
|
||||
(activity as MainActivity).setRightSwitchButton(View.VISIBLE)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
|
@ -103,7 +103,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||
* 读取元数据
|
||||
*/
|
||||
// val id = args.qsId
|
||||
var id: String = ""
|
||||
var id = ""
|
||||
var signBean: SignBean? = null
|
||||
var filePath: String = ""
|
||||
arguments?.let {
|
||||
@ -235,7 +235,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||
val controller = findNavController(R.id.main_activity_middle_fragment)
|
||||
controller.currentDestination?.let {
|
||||
//如果之前页面是空fragment,直接打开面板
|
||||
if (it.id == R.id.EmptyFragment) {
|
||||
if (it.id == R.id.MiddleEmptyFragment) {
|
||||
findNavController(
|
||||
R.id.main_activity_middle_fragment
|
||||
).navigate(R.id.PhenomenonFragment)
|
||||
@ -258,7 +258,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||
val controller = findNavController(R.id.main_activity_middle_fragment)
|
||||
controller.currentDestination?.let {
|
||||
//如果之前页面是空fragment,直接打开面板
|
||||
if (it.id == R.id.EmptyFragment) {
|
||||
if (it.id == R.id.MiddleEmptyFragment) {
|
||||
findNavController(
|
||||
R.id.main_activity_middle_fragment
|
||||
).navigate(R.id.ProblemLinkFragment)
|
||||
@ -282,13 +282,13 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||
}
|
||||
|
||||
fun voiceOnTouchStart() {
|
||||
viewModel!!.startSoundMetter(requireActivity(), binding.evaluationVoice)
|
||||
viewModel.startSoundMetter(requireActivity(), binding.evaluationVoice)
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.Q)
|
||||
fun voiceOnTouchStop() {
|
||||
if (Constant.IS_VIDEO_SPEED) {
|
||||
viewModel!!.stopSoundMeter()
|
||||
viewModel.stopSoundMeter()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -190,19 +190,22 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
list?.let {
|
||||
if (list.isNotEmpty()) {
|
||||
//通知页面更新
|
||||
var classType = list[0]
|
||||
liveDataLeftTypeList.postValue(it)
|
||||
var classType = it[0]
|
||||
if (bean != null) {
|
||||
val classType2 = roomAppDatabase.getScProblemTypeDao()
|
||||
.findClassTypeByCode(bean.elementCode)
|
||||
if (classType2 != null)
|
||||
if (classType2 != null) {
|
||||
classType = classType2
|
||||
}
|
||||
}
|
||||
//如果右侧栏没数据,给个默认值
|
||||
if (liveDataQsRecordBean.value!!.classType.isEmpty()) {
|
||||
|
||||
liveDataQsRecordBean.value!!.classType = classType
|
||||
classTypeTemp = classType
|
||||
} else {
|
||||
classType = liveDataQsRecordBean.value!!.classType
|
||||
}
|
||||
getProblemList(classType)
|
||||
}
|
||||
@ -313,7 +316,7 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
fun saveData() {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val realm = Realm.getDefaultInstance()
|
||||
liveDataQsRecordBean.value!!.checkTime = DateTimeUtil.getDataTime()
|
||||
liveDataQsRecordBean.value!!.checkTime = DateTimeUtil.getDataTime()
|
||||
realm.executeTransaction {
|
||||
it.copyToRealmOrUpdate(liveDataQsRecordBean.value)
|
||||
}
|
||||
@ -444,7 +447,6 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
|
||||
Constant.IS_VIDEO_SPEED = true
|
||||
//录音动画
|
||||
//录音动画
|
||||
if (pop != null) {
|
||||
pop!!.showAtLocation(v, Gravity.CENTER, 0, 0)
|
||||
}
|
||||
|
@ -44,10 +44,9 @@ class LeftAdapter(private var itemListener: ((Int, String) -> Unit?)? = null) :
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
fun setRightTitle(title: String) {
|
||||
fun setSelectTitle(title: String) {
|
||||
if (title != selectTitle) {
|
||||
selectTitle = title
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
}
|
@ -6,9 +6,12 @@ import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.recyclerview.widget.RecyclerView.OnScrollListener
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.databinding.FragmentPhenomenonBinding
|
||||
import com.navinfo.omqs.ui.fragment.BaseFragment
|
||||
import com.navinfo.omqs.ui.other.shareViewModels
|
||||
@ -19,6 +22,7 @@ class PhenomenonFragment :
|
||||
BaseFragment() {
|
||||
private var _binding: FragmentPhenomenonBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
|
||||
/**
|
||||
* 和[PhenomenonFragment],[ProblemLinkFragment],[EvaluationResultFragment]共用同一个viewModel
|
||||
*/
|
||||
@ -50,6 +54,7 @@ class PhenomenonFragment :
|
||||
binding.phenomenonLeftRecyclerview.adapter = leftAdapter
|
||||
//左侧菜单查询结果监听
|
||||
viewModel.liveDataLeftTypeList.observe(viewLifecycleOwner) {
|
||||
leftAdapter.setSelectTitle(viewModel.liveDataQsRecordBean.value!!.classType)
|
||||
leftAdapter.refreshData(it)
|
||||
}
|
||||
|
||||
@ -63,6 +68,9 @@ class PhenomenonFragment :
|
||||
*/
|
||||
val rightAdapter = RightGroupHeaderAdapter { _, bean ->
|
||||
viewModel.setPhenomenonMiddleBean(bean)
|
||||
if (activity != null) {
|
||||
requireActivity().findNavController(R.id.main_activity_middle_fragment).navigateUp()
|
||||
}
|
||||
}
|
||||
binding.phenomenonRightRecyclerview.adapter = rightAdapter
|
||||
//右侧菜单增加组标题
|
||||
@ -75,6 +83,7 @@ class PhenomenonFragment :
|
||||
}
|
||||
//右侧菜单查询数据监听
|
||||
viewModel.liveDataRightTypeList.observe(viewLifecycleOwner) {
|
||||
rightAdapter.setSelectTitle(viewModel.liveDataQsRecordBean.value!!.classType)
|
||||
rightAdapter.refreshData(it)
|
||||
}
|
||||
|
||||
|
@ -3,12 +3,13 @@ package com.navinfo.omqs.ui.fragment.evaluationresult
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.databinding.TextItemSelectBinding
|
||||
import com.navinfo.omqs.databinding.TextItemSelect2Binding
|
||||
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
|
||||
import com.navinfo.omqs.ui.other.BaseViewHolder
|
||||
|
||||
class RightGroupHeaderAdapter(private var itemListener: ((Int, RightBean) -> Unit?)? = null) :
|
||||
BaseRecyclerViewAdapter<RightBean>() {
|
||||
private var selectTitle = ""
|
||||
private var groupTitleList = mutableListOf<String>()
|
||||
override fun getItemViewRes(position: Int): Int {
|
||||
return R.layout.text_item_select2
|
||||
@ -16,14 +17,21 @@ class RightGroupHeaderAdapter(private var itemListener: ((Int, RightBean) -> Uni
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder {
|
||||
val viewBinding =
|
||||
TextItemSelectBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||
TextItemSelect2Binding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||
return BaseViewHolder(viewBinding)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
|
||||
val bd = holder.viewBinding as TextItemSelectBinding
|
||||
bd.itemId.text = data[position].text
|
||||
val bd = holder.viewBinding as TextItemSelect2Binding
|
||||
val title = data[position].text
|
||||
bd.itemId.text = title
|
||||
|
||||
holder.viewBinding.root.isSelected = selectTitle == title
|
||||
bd.root.setOnClickListener {
|
||||
if (selectTitle != title) {
|
||||
selectTitle = title
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
itemListener?.invoke(position, data[position])
|
||||
}
|
||||
}
|
||||
@ -86,7 +94,6 @@ class RightGroupHeaderAdapter(private var itemListener: ((Int, RightBean) -> Uni
|
||||
}
|
||||
|
||||
override fun refreshData(newData: List<RightBean>) {
|
||||
super.refreshData(newData)
|
||||
groupTitleList.clear()
|
||||
for (item in newData) {
|
||||
if (groupTitleList.size > 0) {
|
||||
@ -97,7 +104,15 @@ class RightGroupHeaderAdapter(private var itemListener: ((Int, RightBean) -> Uni
|
||||
groupTitleList.add(item.title)
|
||||
}
|
||||
}
|
||||
super.refreshData(newData)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设置当前选中的哪条数据
|
||||
*/
|
||||
fun setSelectTitle(title: String) {
|
||||
if (title != selectTitle) {
|
||||
selectTitle = title
|
||||
}
|
||||
}
|
||||
}
|
@ -40,7 +40,7 @@ class RightGroupHeaderDecoration(context: Context) : ItemDecoration() {
|
||||
mTextPaint.textSize = 46f
|
||||
mTextPaint.color = Color.WHITE
|
||||
mLinePaint = Paint(Paint.ANTI_ALIAS_FLAG)
|
||||
mLinePaint.color = Color.GRAY
|
||||
mLinePaint.color = Color.WHITE
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -7,38 +7,72 @@ import com.navinfo.omqs.R
|
||||
class SignUtil {
|
||||
companion object {
|
||||
|
||||
|
||||
/**
|
||||
* 获取面板上的文字
|
||||
*/
|
||||
fun getSignIconText(data: RenderEntity): String {
|
||||
return when (data.code) {
|
||||
//道路功能等级
|
||||
2002 -> getLinkFunctionClassText(data)
|
||||
//道路种别
|
||||
2008 -> getKindText(data)
|
||||
//道路方向
|
||||
2010 -> getRoadDirectionText(data)
|
||||
//车道数
|
||||
2041 -> getLaneNumText(data)
|
||||
//常规点限速,条件点限速
|
||||
4002, 4003 -> getSpeedLimitText(data)
|
||||
// //道路种别
|
||||
// 2008 -> getKindCodeIcon(data)
|
||||
// //道路方向
|
||||
// 2010 -> getRoadDirection(data)
|
||||
// //车道数
|
||||
// 2041 -> getLaneNumIcon(data)
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*获取道路功能等级文字
|
||||
*/
|
||||
private fun getLinkFunctionClassText(data: RenderEntity): String {
|
||||
return "等级${data.properties["functionClass"]}"
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取道路方向文字
|
||||
*/
|
||||
private fun getRoadDirectionText(data: RenderEntity): String {
|
||||
val direct = data.properties["direct"]
|
||||
when (direct?.toInt()) {
|
||||
0 -> return "不应用"
|
||||
1 -> return "双方向"
|
||||
2 -> return "顺方向"
|
||||
3 -> return "逆方向"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车道数展示文字
|
||||
*/
|
||||
private fun getLaneNumText(data: RenderEntity): String {
|
||||
return "${data.properties["laneNum"]}|${data.properties["laneS2e"]}|${data.properties["laneE2s"]}"
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取要素名称
|
||||
*/
|
||||
fun getSignNameText(data: RenderEntity): String {
|
||||
return when (data.code) {
|
||||
//可变点限速
|
||||
4004 -> "可变点限速"
|
||||
//道路功能等级
|
||||
2002 -> "功能等级"
|
||||
//道路种别
|
||||
2008 -> "种别"
|
||||
//道路方向
|
||||
2010 -> "方向"
|
||||
//车道数
|
||||
2041 -> "车道数"
|
||||
//常规点限速
|
||||
4002 -> "常规点限速"
|
||||
//常点限速
|
||||
4003 -> "条件点限速"
|
||||
//道路种别
|
||||
2008 -> "道路种别"
|
||||
//道路方向
|
||||
2010 -> "道路方向"
|
||||
//车道数
|
||||
2041 -> "车道数"
|
||||
//可变点限速
|
||||
4004 -> "可变点限速"
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
@ -57,7 +91,6 @@ class SignUtil {
|
||||
/**
|
||||
* 条件点限速文字
|
||||
*/
|
||||
|
||||
private fun getConditionLimitText(data: RenderEntity): String {
|
||||
var stringBuffer = StringBuffer()
|
||||
try {
|
||||
@ -119,6 +152,13 @@ class SignUtil {
|
||||
return ""
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取种别名称
|
||||
*/
|
||||
private fun getKindText(data: RenderEntity): String {
|
||||
return data.properties["kind"].toString()
|
||||
}
|
||||
|
||||
/**
|
||||
* 限速图标
|
||||
*/
|
||||
@ -132,7 +172,23 @@ class SignUtil {
|
||||
} catch (e: Exception) {
|
||||
Log.e("jingo", "获取限速面板ICON出错2 $e")
|
||||
}
|
||||
return R.drawable.icon_speed_limit
|
||||
return 0
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件限速图标
|
||||
*/
|
||||
private fun getConditionalSpeedLimitIcon(data: RenderEntity): Int {
|
||||
try {
|
||||
//限速标志 0 限速开始 1 限速解除
|
||||
return when (data.properties["speed_flag"]) {
|
||||
"1" -> return R.drawable.icon_conditional_speed_limit_off
|
||||
else -> return R.drawable.icon_conditional_speed_limit
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e("jingo", "获取限速面板ICON出错2 $e")
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
/**
|
||||
@ -141,14 +197,16 @@ class SignUtil {
|
||||
|
||||
fun getSignIcon(data: RenderEntity): Int {
|
||||
return when (data.code) {
|
||||
//道路种别
|
||||
2008 -> getKindCodeIcon(data)
|
||||
//道路方向
|
||||
2010 -> getRoadDirection(data)
|
||||
//车道数
|
||||
2041 -> getLaneNumIcon(data)
|
||||
//限速
|
||||
4002, 4003 -> getSpeedLimitIcon(data)
|
||||
// //道路种别
|
||||
// 2008 -> getKindCodeIcon(data)
|
||||
// //道路方向
|
||||
// 2010 -> getRoadDirection(data)
|
||||
// //车道数
|
||||
// 2041 -> getLaneNumIcon(data)
|
||||
//普通点限速
|
||||
4002 -> getSpeedLimitIcon(data)
|
||||
//条件点限速
|
||||
4003 -> getConditionalSpeedLimitIcon(data)
|
||||
//可变点限速
|
||||
4004 -> R.drawable.icon_change_limit
|
||||
else -> 0
|
||||
@ -187,7 +245,7 @@ class SignUtil {
|
||||
/**
|
||||
* 获取到路线
|
||||
*/
|
||||
fun getLaneNumIcon(data: RenderEntity): Int {
|
||||
private fun getLaneNumIcon(data: RenderEntity): Int {
|
||||
try {
|
||||
val lineNum = data.properties["laneNum"]
|
||||
return when (lineNum!!.toInt()) {
|
||||
@ -211,7 +269,7 @@ class SignUtil {
|
||||
return R.drawable.icon_road_direction
|
||||
}
|
||||
|
||||
fun getRoadDirection(data: RenderEntity): Int {
|
||||
private fun getRoadDirection(data: RenderEntity): Int {
|
||||
try {
|
||||
val direct = data.properties["direct"]
|
||||
return when (direct!!.toInt()) {
|
||||
|
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.0 KiB |
BIN
app/src/main/res/drawable-xxhdpi/icon_traffic_light.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
11
app/src/main/res/drawable/shape_road_info_bottom_bg.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#BA0C122B" />
|
||||
<corners
|
||||
android:topLeftRadius="0dp"
|
||||
android:topRightRadius="0dp"
|
||||
android:bottomLeftRadius="6dp"
|
||||
android:bottomRightRadius="6dp"/>
|
||||
</shape>
|
10
app/src/main/res/drawable/shape_road_info_left_bottom_bg.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#BA0C122B" />
|
||||
<corners
|
||||
android:bottomLeftRadius="6dp"
|
||||
android:bottomRightRadius="0dp"
|
||||
android:topLeftRadius="0dp"
|
||||
android:topRightRadius="0dp" />
|
||||
</shape>
|
10
app/src/main/res/drawable/shape_road_info_left_top_bg.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#990C122B" />
|
||||
<corners
|
||||
android:bottomLeftRadius="0dp"
|
||||
android:bottomRightRadius="0dp"
|
||||
android:topLeftRadius="6dp"
|
||||
android:topRightRadius="0dp" />
|
||||
</shape>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#BA0C122B" />
|
||||
</shape>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#990C122B" />
|
||||
</shape>
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#BA0C122B" />
|
||||
<corners
|
||||
android:bottomLeftRadius="0dp"
|
||||
android:bottomRightRadius="6dp"
|
||||
android:topLeftRadius="0dp"
|
||||
android:topRightRadius="0dp" />
|
||||
</shape>
|
11
app/src/main/res/drawable/shape_road_info_right_top_bg.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#990C122B" />
|
||||
<corners
|
||||
android:bottomLeftRadius="0dp"
|
||||
android:bottomRightRadius="0dp"
|
||||
android:topLeftRadius="0dp"
|
||||
android:topRightRadius="6dp" />
|
||||
</shape>
|
11
app/src/main/res/drawable/shape_road_info_top_bg.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#990C122B" />
|
||||
<corners
|
||||
android:bottomLeftRadius="0dp"
|
||||
android:bottomRightRadius="0dp"
|
||||
android:topLeftRadius="6dp"
|
||||
android:topRightRadius="6dp" />
|
||||
</shape>
|
@ -54,7 +54,8 @@
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/main_activity_top_sign_recyclerview"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="60dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
@ -143,9 +144,8 @@
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/main_activity_fragment_switch"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginRight="-10dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/selector_fragment_switch"
|
||||
android:elevation="2dp"
|
||||
android:onClick="@{()->mainActivity.onSwitchFragment()}"
|
||||
|
@ -1,28 +1,54 @@
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="com.navinfo.omqs.ui.activity.map.TopSignAdapter">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/top_sign_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginBottom="0.5dp"
|
||||
android:gravity="center"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:text="名称"
|
||||
android:textColor="#2F2F2F"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/top_sign_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/top_sign_name"
|
||||
android:layout_alignLeft="@id/top_sign_name"
|
||||
android:layout_alignRight="@id/top_sign_name"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:gravity="center"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:text="道路名"
|
||||
android:textColor="#2F2F2F"
|
||||
android:textSize="14sp" />
|
||||
android:textColor="@color/white"
|
||||
android:textSize="18sp" />
|
||||
|
||||
<View
|
||||
android:id="@+id/top_sign_left_line"
|
||||
android:layout_width="0.5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop="@id/top_sign_text"
|
||||
android:layout_alignBottom="@id/top_sign_text"
|
||||
android:background="#0C122B"
|
||||
android:visibility="gone" />
|
||||
|
||||
<View
|
||||
android:id="@+id/top_sign_right_line"
|
||||
android:layout_width="0.5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop="@id/top_sign_text"
|
||||
android:layout_alignBottom="@id/top_sign_text"
|
||||
android:layout_alignParentRight="true"
|
||||
android:background="#0C122B"
|
||||
android:visibility="gone" />
|
||||
</RelativeLayout>
|
@ -9,10 +9,10 @@
|
||||
android:id="@+id/item_id"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="3dp"
|
||||
android:layout_margin="4dp"
|
||||
android:gravity="center"
|
||||
android:padding="3dp"
|
||||
android:paddingLeft="0dp"
|
||||
android:padding="4dp"
|
||||
android:drawablePadding="10dp"
|
||||
android:drawableLeft="@drawable/selector_text_drawable_left_white_blue"
|
||||
android:textColor="@color/selector_black_blue_color"
|
||||
android:textSize="14sp"/>
|
||||
|
@ -7,12 +7,11 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_id"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="3dp"
|
||||
android:layout_margin="4dp"
|
||||
android:gravity="center_vertical"
|
||||
android:padding="3dp"
|
||||
android:drawableLeft="@drawable/selector_text_drawable_left_white_blue"
|
||||
android:padding="4dp"
|
||||
android:textColor="@color/selector_black_blue_color"
|
||||
android:textSize="14sp"/>
|
||||
|
||||
|
@ -2,12 +2,12 @@
|
||||
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
app:startDestination="@id/EmptyFragment">
|
||||
app:startDestination="@id/MiddleEmptyFragment">
|
||||
|
||||
<fragment
|
||||
android:id="@+id/EmptyFragment"
|
||||
android:id="@+id/MiddleEmptyFragment"
|
||||
android:name="com.navinfo.omqs.ui.fragment.empty.EmptyFragment"
|
||||
android:label="空页面"
|
||||
android:label="中间空页面"
|
||||
tools:layout="@layout/fragment_empty"></fragment>
|
||||
|
||||
<fragment
|
||||
|
@ -3,24 +3,24 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/right_fragment_nav_graph"
|
||||
app:startDestination="@id/EmptyFragment">
|
||||
app:startDestination="@id/RightEmptyFragment">
|
||||
|
||||
<fragment
|
||||
android:id="@+id/EmptyFragment"
|
||||
android:id="@+id/RightEmptyFragment"
|
||||
android:name="com.navinfo.omqs.ui.fragment.empty.EmptyFragment"
|
||||
android:label="空页面"
|
||||
android:label="右侧空页面"
|
||||
tools:layout="@layout/fragment_empty">
|
||||
<!-- <action-->
|
||||
<!-- android:id="@+id/EmptyFragment_to_EvaluationResultFragment"-->
|
||||
<!-- app:destination="@id/EvaluationResultFragment" />-->
|
||||
<!-- <argument-->
|
||||
<!-- android:name="QsId"-->
|
||||
<!-- app:argType="string"-->
|
||||
<!-- app:nullable="true" />-->
|
||||
<!-- <argument-->
|
||||
<!-- android:name="SignBean"-->
|
||||
<!-- app:argType="com.navinfo.omqs.ui.activity.map.SignBean"-->
|
||||
<!-- />-->
|
||||
<!-- <action-->
|
||||
<!-- android:id="@+id/EmptyFragment_to_EvaluationResultFragment"-->
|
||||
<!-- app:destination="@id/EvaluationResultFragment" />-->
|
||||
<!-- <argument-->
|
||||
<!-- android:name="QsId"-->
|
||||
<!-- app:argType="string"-->
|
||||
<!-- app:nullable="true" />-->
|
||||
<!-- <argument-->
|
||||
<!-- android:name="SignBean"-->
|
||||
<!-- app:argType="com.navinfo.omqs.ui.activity.map.SignBean"-->
|
||||
<!-- />-->
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
|