Merge branch 'master' of https://gitlab.navinfo.com/CollectVehicle/OneMapQS
Conflicts: app/src/main/res/layout/text_item_select.xml
This commit is contained in:
@@ -12,6 +12,7 @@ import androidx.databinding.DataBindingUtil
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.blankj.utilcode.util.SPStaticUtils
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
@@ -23,6 +24,7 @@ import com.navinfo.omqs.databinding.ActivityMainBinding
|
||||
import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager
|
||||
import com.navinfo.omqs.tools.LayerConfigUtils
|
||||
import com.navinfo.omqs.ui.activity.BaseActivity
|
||||
import com.navinfo.omqs.ui.widget.RecycleViewDivider
|
||||
import com.navinfo.omqs.util.FlowEventBus
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -52,14 +54,13 @@ class MainActivity : BaseActivity() {
|
||||
findNavController(R.id.main_activity_right_fragment)
|
||||
}
|
||||
|
||||
/**
|
||||
* 提前显示要素看板
|
||||
*/
|
||||
private val signAdapter by lazy {
|
||||
SignAdapter { position, signBean ->
|
||||
// val directions =
|
||||
// EmptyFragmentDirections.emptyFragmentToEvaluationResultFragment(
|
||||
// )
|
||||
// rightController.navigate(directions)
|
||||
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)
|
||||
@@ -68,6 +69,22 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 道路信息看板
|
||||
*/
|
||||
private val topSignAdapter by lazy {
|
||||
TopSignAdapter { position, signBean ->
|
||||
rightController.currentDestination?.let {
|
||||
if (it.id == R.id.RightEmptyFragment) {
|
||||
val bundle = Bundle()
|
||||
bundle.putParcelable("SignBean", signBean)
|
||||
rightController.navigate(R.id.EvaluationResultFragment, bundle)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
super.onCreate(savedInstanceState)
|
||||
@@ -125,6 +142,18 @@ class MainActivity : BaseActivity() {
|
||||
|
||||
}
|
||||
|
||||
//道路属性面板
|
||||
binding.mainActivityTopSignRecyclerview.layoutManager = LinearLayoutManager(
|
||||
this,
|
||||
RecyclerView.HORIZONTAL, false
|
||||
)
|
||||
// binding.mainActivityTopSignRecyclerview.addItemDecoration(
|
||||
// RecycleViewDivider(this, LinearLayoutManager.HORIZONTAL)
|
||||
// )
|
||||
binding.mainActivityTopSignRecyclerview.adapter = topSignAdapter
|
||||
|
||||
|
||||
//提前显示面板
|
||||
binding.mainActivitySignRecyclerview.layoutManager = LinearLayoutManager(this)
|
||||
binding.mainActivitySignRecyclerview.adapter = signAdapter
|
||||
//增加4dp的间隔
|
||||
@@ -139,6 +168,10 @@ class MainActivity : BaseActivity() {
|
||||
signAdapter.refreshData(it)
|
||||
}
|
||||
|
||||
viewModel.liveDataTopSignList.observe(this) {
|
||||
topSignAdapter.refreshData(it)
|
||||
}
|
||||
|
||||
lifecycleScope.launch {
|
||||
// 初始化地图图层控制接收器
|
||||
FlowEventBus.subscribe<List<ImportConfig>>(
|
||||
@@ -243,7 +276,7 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*展开或收起右侧面板
|
||||
*/
|
||||
fun onSwitchFragment() {
|
||||
switchFragment = !switchFragment
|
||||
@@ -255,6 +288,13 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 隐藏或显示右侧展开按钮
|
||||
*/
|
||||
fun setRightSwitchButton(visibility: Int) {
|
||||
binding.mainActivityFragmentSwitch.visibility = visibility
|
||||
}
|
||||
|
||||
/**
|
||||
* 点击录音按钮
|
||||
*/
|
||||
|
||||
@@ -67,9 +67,12 @@ class MainViewModel @Inject constructor(
|
||||
//地图点击捕捉到的质检数据ID列表
|
||||
val liveDataQsRecordIdList = MutableLiveData<List<String>>()
|
||||
|
||||
//看板数据
|
||||
//左侧看板数据
|
||||
val liveDataSignList = MutableLiveData<List<SignBean>>()
|
||||
|
||||
//顶部看板数据
|
||||
val liveDataTopSignList = MutableLiveData<List<SignBean>>()
|
||||
|
||||
// var testPoint = GeoPoint(0, 0)
|
||||
|
||||
//语音窗体
|
||||
@@ -150,8 +153,7 @@ class MainViewModel @Inject constructor(
|
||||
// location.latitude = testPoint.latitude
|
||||
val geometry = GeometryTools.createGeometry(
|
||||
GeoPoint(
|
||||
location.latitude,
|
||||
location.longitude
|
||||
location.latitude, location.longitude
|
||||
)
|
||||
)
|
||||
val tileX = RealmSet<Int>()
|
||||
@@ -176,8 +178,7 @@ class MainViewModel @Inject constructor(
|
||||
mapController.locationLayerHandler.niLocationFlow.collectLatest { location ->
|
||||
// location.longitude = testPoint.longitude
|
||||
// location.latitude = testPoint.latitude
|
||||
if (!isSelectRoad())
|
||||
captureLink(GeoPoint(location.latitude, location.longitude))
|
||||
if (!isSelectRoad()) captureLink(GeoPoint(location.latitude, location.longitude))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,6 +197,8 @@ class MainViewModel @Inject constructor(
|
||||
)
|
||||
//看板数据
|
||||
val signList = mutableListOf<SignBean>()
|
||||
val topSignList = mutableListOf<SignBean>()
|
||||
|
||||
if (linkList.isNotEmpty()) {
|
||||
val link = linkList[0]
|
||||
val linkId = link.properties[RenderEntity.Companion.LinkTable.linkPid]
|
||||
@@ -204,27 +207,36 @@ class MainViewModel @Inject constructor(
|
||||
var elementList = realmOperateHelper.queryLinkByLinkPid(it)
|
||||
for (element in elementList) {
|
||||
val distance = GeometryTools.distanceToDouble(
|
||||
point,
|
||||
GeometryTools.createGeoPoint(element.geometry)
|
||||
point, GeometryTools.createGeoPoint(element.geometry)
|
||||
)
|
||||
signList.add(
|
||||
SignBean(
|
||||
iconId = SignUtil.getSignIcon(element),
|
||||
iconText = SignUtil.getSignIconText(element),
|
||||
distance = distance.toInt(),
|
||||
elementId = element.id,
|
||||
linkId = linkId,
|
||||
geometry = element.geometry,
|
||||
bottomText = SignUtil.getSignBottomText(element),
|
||||
bottomRightText = SignUtil.getSignBottomRightText(element),
|
||||
elementCode = element.code
|
||||
|
||||
val signBean = SignBean(
|
||||
iconId = SignUtil.getSignIcon(element),
|
||||
iconText = SignUtil.getSignIconText(element),
|
||||
distance = distance.toInt(),
|
||||
elementId = element.id,
|
||||
linkId = linkId,
|
||||
geometry = element.geometry,
|
||||
name = SignUtil.getSignNameText(element),
|
||||
bottomRightText = SignUtil.getSignBottomRightText(element),
|
||||
elementCode = element.code
|
||||
)
|
||||
|
||||
when (element.code) {
|
||||
2041, 2008, 2010 -> topSignList.add(
|
||||
signBean
|
||||
)
|
||||
)
|
||||
else -> signList.add(
|
||||
signBean
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
liveDataSignList.postValue(signList)
|
||||
liveDataTopSignList.postValue(topSignList.distinctBy { it.elementCode })
|
||||
liveDataSignList.postValue(signList.distinctBy { it.elementCode })
|
||||
Log.e("jingo", "自动捕捉数据 共${signList.size}条")
|
||||
}
|
||||
}
|
||||
@@ -374,9 +386,11 @@ class MainViewModel @Inject constructor(
|
||||
if (layerConfigList != null && !layerConfigList.isEmpty()) {
|
||||
val omdbVisibleList = layerConfigList.filter { importConfig ->
|
||||
importConfig.tableGroupName == "OMDB数据"
|
||||
}.first().tables.filter { tableInfo ->
|
||||
}.first().tableMap.filter { entry ->
|
||||
val tableInfo = entry.value
|
||||
!tableInfo.checked
|
||||
}.map { tableInfo ->
|
||||
}.map { entry ->
|
||||
val tableInfo = entry.value
|
||||
tableInfo.table
|
||||
}.toList()
|
||||
com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY =
|
||||
@@ -411,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])
|
||||
|
||||
@@ -23,9 +23,10 @@ class SignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null)
|
||||
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
|
||||
val bd = holder.viewBinding as AdapterSignBinding
|
||||
val item = data[position]
|
||||
bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId)
|
||||
if (item.iconId != 0)
|
||||
bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId)
|
||||
bd.signMainIcon.text = item.iconText
|
||||
bd.signBottomText.text = item.bottomText
|
||||
bd.signBottomText.text = item.name
|
||||
bd.signBottomRightText.text = item.bottomRightText
|
||||
bd.root.setOnClickListener {
|
||||
itemListener?.invoke(position, item)
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
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
|
||||
import com.navinfo.omqs.databinding.AdapterTopSignBinding
|
||||
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
|
||||
import com.navinfo.omqs.ui.other.BaseViewHolder
|
||||
|
||||
class TopSignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null) :
|
||||
BaseRecyclerViewAdapter<SignBean>() {
|
||||
override fun getItemViewRes(position: Int): Int {
|
||||
return R.layout.adapter_top_sign
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder {
|
||||
val viewBinding =
|
||||
AdapterTopSignBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||
return BaseViewHolder(viewBinding)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
|
||||
val bd = holder.viewBinding as AdapterTopSignBinding
|
||||
val item = data[position]
|
||||
if (item.iconId != 0)
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user