Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS
This commit is contained in:
@@ -84,6 +84,8 @@ class Constant {
|
||||
const val SELECT_TAKEPHOTO_OR_RECORD = "select_takephoto_or_record"
|
||||
|
||||
const val OMDB_CONFIG = "omdb.config"
|
||||
const val OTHER_CONFIG = "other.config"
|
||||
const val LAYER_MANAGER_CONFIG = "LAYER_MANAGER_CONFIG" // 图层管理界面缓存的key
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3,10 +3,13 @@ package com.navinfo.omqs.bean
|
||||
|
||||
class ImportConfig {
|
||||
var tables: MutableList<TableInfo> = mutableListOf()
|
||||
val tableGroupName: String = "OMDB数据"
|
||||
var checked : Boolean = true
|
||||
}
|
||||
|
||||
class TableInfo {
|
||||
val table: String = ""
|
||||
val code: Int = 0
|
||||
val name: String = ""
|
||||
var checked : Boolean = true
|
||||
}
|
||||
@@ -50,7 +50,6 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||
adapter.refreshData(it)
|
||||
}
|
||||
|
||||
viewModel.getChatMsgEntityList()
|
||||
return binding.root
|
||||
}
|
||||
|
||||
@@ -117,7 +116,6 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||
} else {
|
||||
viewModel.initData(id)
|
||||
}
|
||||
|
||||
// //监听大分类数据变化
|
||||
// viewModel.liveDataClassTypeList.observe(viewLifecycleOwner) {
|
||||
// if (it == null || it.isEmpty()) {
|
||||
|
||||
@@ -357,6 +357,8 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
}
|
||||
// 显示语音数据到界面
|
||||
getChatMsgEntityList()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.navinfo.omqs.ui.fragment.layermanager
|
||||
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.BaseExpandableListAdapter
|
||||
import android.widget.CheckBox
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.bean.ImportConfig
|
||||
import com.navinfo.omqs.bean.TableInfo
|
||||
|
||||
class LayerManagerExpandableListAdapter(private val context: Context, private val parentItems: List<ImportConfig>) :
|
||||
BaseExpandableListAdapter() {
|
||||
|
||||
override fun getGroupCount(): Int {
|
||||
return parentItems.size
|
||||
}
|
||||
|
||||
override fun getChildrenCount(groupPosition: Int): Int {
|
||||
return parentItems[groupPosition].tables.size
|
||||
}
|
||||
|
||||
|
||||
override fun getGroup(groupPosition: Int): Any {
|
||||
return parentItems[groupPosition]
|
||||
}
|
||||
|
||||
override fun getChild(groupPosition: Int, childPosition: Int): Any {
|
||||
return parentItems[groupPosition].tables[childPosition]
|
||||
}
|
||||
|
||||
|
||||
override fun getGroupId(groupPosition: Int): Long = groupPosition.toLong()
|
||||
|
||||
override fun getChildId(groupPosition: Int, childPosition: Int): Long = childPosition.toLong()
|
||||
|
||||
override fun hasStableIds(): Boolean = false
|
||||
|
||||
override fun getGroupView(
|
||||
groupPosition: Int,
|
||||
isExpanded: Boolean,
|
||||
convertView: View?,
|
||||
parent: ViewGroup?
|
||||
): View {
|
||||
var view = convertView
|
||||
val viewHolder: ParentViewHolder
|
||||
if (convertView == null) {
|
||||
view =
|
||||
LayoutInflater.from(context).inflate(R.layout.layer_manager_checked_parent, parent, false)
|
||||
viewHolder = ParentViewHolder(view)
|
||||
view.tag = viewHolder
|
||||
} else {
|
||||
viewHolder = convertView.tag as ParentViewHolder
|
||||
view = convertView
|
||||
}
|
||||
|
||||
val parentItem = getGroup(groupPosition) as ImportConfig
|
||||
viewHolder.parentCheckBox.text = parentItem.tableGroupName
|
||||
viewHolder.parentCheckBox.isChecked = parentItem.checked
|
||||
viewHolder.parentCheckBox.setOnCheckedChangeListener { _, isChecked ->
|
||||
parentItem.checked = isChecked
|
||||
parentItem.tables.forEach { it.checked = isChecked }
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
return view!!
|
||||
}
|
||||
|
||||
override fun getChildView(
|
||||
groupPosition: Int,
|
||||
childPosition: Int,
|
||||
isLastChild: Boolean,
|
||||
convertView: View?,
|
||||
parent: ViewGroup?
|
||||
): View {
|
||||
var view = convertView
|
||||
val viewHolder: ChildViewHolder
|
||||
if (convertView == null) {
|
||||
view =
|
||||
LayoutInflater.from(context).inflate(R.layout.layer_manager_checked_child, parent, false)
|
||||
viewHolder = ChildViewHolder(view)
|
||||
view.tag = viewHolder
|
||||
} else {
|
||||
viewHolder = convertView.tag as ChildViewHolder
|
||||
view = convertView
|
||||
}
|
||||
|
||||
val childItem = getChild(groupPosition, childPosition) as TableInfo
|
||||
viewHolder.childCheckBox.text = childItem.name
|
||||
viewHolder.childCheckBox.isChecked = childItem.checked
|
||||
viewHolder.childCheckBox.setOnCheckedChangeListener { _, isChecked ->
|
||||
childItem.checked = isChecked
|
||||
parentItems[groupPosition].checked = parentItems[groupPosition].tables.all { it.checked }
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
return view!!
|
||||
}
|
||||
|
||||
override fun isChildSelectable(groupPosition: Int, childPosition: Int): Boolean = true
|
||||
|
||||
internal class ParentViewHolder(view: View) {
|
||||
val parentCheckBox: CheckBox = view.findViewById(R.id.chk_layermanager_parent)
|
||||
}
|
||||
|
||||
internal class ChildViewHolder(view: View) {
|
||||
val childCheckBox: CheckBox = view.findViewById(R.id.chk_layermanager_child)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.navinfo.omqs.ui.fragment.layermanager
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.blankj.utilcode.util.FileIOUtils
|
||||
import com.blankj.utilcode.util.SPStaticUtils
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import com.navinfo.omqs.Constant
|
||||
import com.navinfo.omqs.bean.ImportConfig
|
||||
import java.io.File
|
||||
|
||||
class LayerManagerViewModel(): ViewModel() {
|
||||
private val omdbConfigFile = File("${Constant.USER_DATA_PATH}", Constant.OMDB_CONFIG)
|
||||
private val otherConfigFile = File("${Constant.USER_DATA_PATH}", Constant.OTHER_CONFIG)
|
||||
private val gson = Gson()
|
||||
|
||||
fun getLayerConfigList(): List<ImportConfig> {
|
||||
// 首先读取Shared文件,如果存在则直接返回,否则读取config文件
|
||||
val importConfigList = with(SPStaticUtils.getString(Constant.LAYER_MANAGER_CONFIG, null)) {
|
||||
if (this!=null) {
|
||||
gson.fromJson(this, object : TypeToken<List<ImportConfig>>(){}.type)
|
||||
} else {
|
||||
null
|
||||
}
|
||||
}
|
||||
if (importConfigList==null) {
|
||||
return getLayerConfigListFromAssetsFile()
|
||||
} else {
|
||||
return importConfigList as List<ImportConfig>
|
||||
}
|
||||
}
|
||||
|
||||
private fun getLayerConfigListFromAssetsFile(): List<ImportConfig> {
|
||||
val resultList = mutableListOf<ImportConfig>()
|
||||
if (omdbConfigFile.exists()) {
|
||||
val omdbConfiStr = FileIOUtils.readFile2String(omdbConfigFile)
|
||||
val omdbConfig = gson.fromJson<ImportConfig>(omdbConfiStr, ImportConfig::class.java)
|
||||
resultList.add(omdbConfig)
|
||||
}
|
||||
if (otherConfigFile.exists()) {
|
||||
val otherConfiStr = FileIOUtils.readFile2String(otherConfigFile)
|
||||
val otherConfig = gson.fromJson<ImportConfig>(otherConfiStr, ImportConfig::class.java)
|
||||
resultList.add(otherConfig)
|
||||
}
|
||||
return resultList
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.navinfo.omqs.ui.fragment.layermanager
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.navinfo.omqs.databinding.FragmentEmptyBinding
|
||||
import com.navinfo.omqs.databinding.FragmentLayerManagerBinding
|
||||
import com.navinfo.omqs.ui.fragment.offlinemap.OfflineMapCityListViewModel
|
||||
|
||||
class LayermanagerFragment :Fragment(){
|
||||
private var _binding: FragmentLayerManagerBinding? = null
|
||||
|
||||
private val binding get() = _binding!!
|
||||
private val viewModel by viewModels<LayerManagerViewModel>()
|
||||
// private val viewModel by lazy { viewModels<EvaluationResultViewModel>().value}
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
_binding = FragmentLayerManagerBinding.inflate(inflater, container, false)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val adapter = LayerManagerExpandableListAdapter(requireContext(), viewModel.getLayerConfigList())
|
||||
binding.elvLayerManager.setAdapter(adapter)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
}
|
||||
@@ -117,6 +117,9 @@ class PersonalCenterFragment : BaseFragment(), FSAFActivityCallbacks {
|
||||
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)
|
||||
}
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user