Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS

This commit is contained in:
xiaoyan 2023-05-06 15:42:17 +08:00
commit 9f619a2f50
46 changed files with 488 additions and 223 deletions

View File

@ -19,4 +19,6 @@ data class SignBean(
val geometry: String,
//底部文字
val bottomText: String,
//要素code类型
val elementCode: Int
) : Parcelable

View File

@ -13,8 +13,6 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.locationtech.jts.geom.*
import org.locationtech.jts.operation.buffer.BufferOp
import org.locationtech.spatial4j.context.SpatialContext
import org.locationtech.spatial4j.distance.DistanceUtils
import org.oscim.core.GeoPoint
import org.oscim.core.MercatorProjection
import javax.inject.Inject
@ -33,14 +31,18 @@ class RealmOperateHelper() {
* */
@RequiresApi(Build.VERSION_CODES.N)
suspend fun queryLink(
point: Point,
point: GeoPoint,
buffer: Double = DEFAULT_BUFFER,
bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE,
sort: Boolean = true
): MutableList<RenderEntity> {
val result = mutableListOf<RenderEntity>()
withContext(Dispatchers.IO) {
val polygon = getPolygonFromPoint(point, buffer, bufferType)
val polygon = getPolygonFromPoint(
GeometryTools.createPoint(point.longitude, point.latitude),
buffer,
bufferType
)
// 根据polygon查询相交的tile号
val tileXSet = mutableSetOf<Int>()
tileXSet.toString()
@ -68,7 +70,14 @@ class RealmOperateHelper() {
queryResult?.let {
if (sort) {
result.addAll(sortRenderEntity(point, it))
result.addAll(
sortRenderEntity(
GeometryTools.createPoint(
point.longitude,
point.latitude
) , it
)
)
} else {
result.addAll(it)
}
@ -172,6 +181,7 @@ class RealmOperateHelper() {
* @param unSortList 未排序的数据
* @return 排序后的数据
* */
@RequiresApi(Build.VERSION_CODES.N)
fun sortRenderEntity(point: Point, unSortList: List<RenderEntity>): List<RenderEntity> {
val sortList = unSortList.stream().sorted { renderEntity, renderEntity2 ->
val near = point.distance(renderEntity.wkt) - point.distance(renderEntity2.wkt)

View File

@ -33,6 +33,9 @@ interface ScProblemTypeDao {
@Query("select DISTINCT CLASS_TYPE from ScProblemType order by CLASS_TYPE")
suspend fun findClassTypeList(): List<String>?
@Query("select DISTINCT CLASS_TYPE from ScProblemType where ELEMENT_CODE=:code")
suspend fun findClassTypeByCode(code: Int): String?
/**
* 获取问题类型并去重
*/

View File

@ -46,8 +46,9 @@ class ActivityModule {
fun providesTaskListDownloadManager(
networkServiceAPI: RetrofitNetworkServiceAPI,
importFactory: ImportOMDBHiltFactory,
mapController: NIMapController
): TaskDownloadManager =
TaskDownloadManager(importFactory, networkServiceAPI)
TaskDownloadManager(importFactory, networkServiceAPI, mapController)
/**
* 注入任务下载

View File

@ -67,7 +67,7 @@ class GlobalModule {
}.apply {
level = if (Constant.DEBUG) {
//坑 下载文件时打印log 内存不足
HttpLoggingInterceptor.Level.BODY
HttpLoggingInterceptor.Level.BASIC
} else {
HttpLoggingInterceptor.Level.NONE
}

View File

@ -3,6 +3,7 @@ package com.navinfo.omqs.http.taskdownload
import android.content.Context
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.Observer
import com.navinfo.collect.library.map.NIMapController
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.omqs.hilt.ImportOMDBHiltFactory
import com.navinfo.omqs.hilt.OMDBDataBaseHiltFactory
@ -19,6 +20,7 @@ import javax.inject.Inject
class TaskDownloadManager constructor(
val importFactory: ImportOMDBHiltFactory,
val netApi: RetrofitNetworkServiceAPI,
val mapController:NIMapController
) {
lateinit var context: Context

View File

@ -131,6 +131,9 @@ class TaskDownloadScope(
Log.e("jingo", "数据安装 $it")
if (it == "finish") {
change(FileDownloadStatus.DONE)
withContext(Dispatchers.Main) {
downloadManager.mapController.mMapView.updateMap(true)
}
} else {
change(FileDownloadStatus.IMPORTING, it)
}
@ -138,6 +141,8 @@ class TaskDownloadScope(
} catch (e: Exception) {
Log.e("jingo", "数据安装失败 ${e.toString()}")
change(FileDownloadStatus.ERROR)
}finally {
}
Log.e("jingo", "importData EEE")

View File

@ -115,15 +115,16 @@ class TaskUploadScope(
taskBean.hadLinkDvoList.forEach { hadLinkDvoBean ->
val objects = realm.where(QsRecordBean::class.java)
.equalTo("linkId", /*"84207223282277331"*/hadLinkDvoBean.linkPid).findAll()
if(objects.size == 0){
// change(FileUploadStatus.NONE)
if (objects.size == 0) {
if (taskBean.syncStatus == FileUploadStatus.WAITING)
change(FileUploadStatus.NONE)
return
}
val bodyList: MutableList<EvaluationInfo> = ArrayList()
if (objects != null) {
val copyList =realm.copyFromRealm(objects)
val copyList = realm.copyFromRealm(objects)
copyList.forEach {
val evaluationInfo = EvaluationInfo(
taskBean.id.toString(),

View File

@ -116,7 +116,7 @@ class LoginViewModel @Inject constructor(
//文件夹初始化
try {
loginStatus.postValue(LoginStatus.LOGIN_STATUS_FOLDER_INIT)
createUserFolder(context, "1")
createUserFolder(context, "02911")
} catch (e: IOException) {
loginStatus.postValue(LoginStatus.LOGIN_STATUS_FOLDER_FAILURE)
}

View File

@ -114,9 +114,9 @@ class MainActivity : BaseActivity() {
viewModel.liveDataMenuState.observe(this) {
binding.mainActivityMenu.isSelected = it
if(it==true){
if (it == true) {
binding.mainActivityMenuLayout.visibility = View.VISIBLE
}else{
} else {
binding.mainActivityMenuLayout.visibility = View.GONE
}
@ -138,7 +138,10 @@ class MainActivity : BaseActivity() {
lifecycleScope.launch {
// 初始化地图图层控制接收器
FlowEventBus.subscribe<List<ImportConfig>>(lifecycle, Constant.EVENT_LAYER_MANAGER_CHANGE) {
FlowEventBus.subscribe<List<ImportConfig>>(
lifecycle,
Constant.EVENT_LAYER_MANAGER_CHANGE
) {
viewModel.refreshOMDBLayer(it)
}
}
@ -227,8 +230,16 @@ class MainActivity : BaseActivity() {
* 点击录音按钮
*/
fun voiceOnclick() {
/* val naviController = findNavController(R.id.main_activity_right_fragment)
naviController.navigate(R.id.EvaluationResultFragment)*/
val naviController = findNavController(R.id.main_activity_right_fragment)
naviController.navigate(R.id.EvaluationResultFragment)
}
/**
* 点击线选择
*/
fun selectLineOnclick() {
viewModel.setSelectRoad(!viewModel.isSelectRoad())
binding.mainActivitySelectLine.isSelected = viewModel.isSelectRoad()
}
fun voiceOnTouchStart() {

View File

@ -37,14 +37,12 @@ import com.navinfo.omqs.ui.dialog.CommonDialog
import com.navinfo.omqs.ui.manager.TakePhotoManager
import com.navinfo.omqs.ui.widget.SignUtil
import com.navinfo.omqs.util.DateTimeUtil
import com.navinfo.omqs.util.FlowEventBus
import com.navinfo.omqs.util.SoundMeter
import com.navinfo.omqs.util.SpeakMode
import dagger.hilt.android.lifecycle.HiltViewModel
import io.realm.Realm
import io.realm.RealmSet
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import org.oscim.core.GeoPoint
@ -72,7 +70,7 @@ class MainViewModel @Inject constructor(
//看板数据
val liveDataSignList = MutableLiveData<List<SignBean>>()
var testPoint = GeoPoint(0, 0)
// var testPoint = GeoPoint(0, 0)
//语音窗体
private var pop: PopupWindow? = null
@ -83,10 +81,15 @@ class MainViewModel @Inject constructor(
var volume: ImageView? = null
var mSoundMeter: SoundMeter? = null
var menuState :Boolean = false
var menuState: Boolean = false
val liveDataMenuState = MutableLiveData<Boolean>()
/**
* 是不是线选择模式
*/
private var bSelectRoad = false
init {
mapController.markerHandle.setOnQsRecordItemClickListener(object :
OnQsRecordItemClickListener {
@ -97,7 +100,10 @@ class MainViewModel @Inject constructor(
initLocation()
viewModelScope.launch {
mapController.onMapClickFlow.collectLatest {
testPoint = it
// testPoint = it
if (bSelectRoad) {
captureLink(it)
}
}
}
@ -140,8 +146,8 @@ class MainViewModel @Inject constructor(
//用于定位点存储到数据库
viewModelScope.launch(Dispatchers.Default) {
mapController.locationLayerHandler.niLocationFlow.collect { location ->
location.longitude = testPoint.longitude
location.latitude = testPoint.latitude
// location.longitude = testPoint.longitude
// location.latitude = testPoint.latitude
val geometry = GeometryTools.createGeometry(
GeoPoint(
location.latitude,
@ -168,48 +174,10 @@ class MainViewModel @Inject constructor(
//用于定位点捕捉道路
viewModelScope.launch(Dispatchers.Default) {
mapController.locationLayerHandler.niLocationFlow.collectLatest { location ->
Log.e("jingo", "定位点绑定道路 ${Thread.currentThread().name}")
location.longitude = testPoint.longitude
location.latitude = testPoint.latitude
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val linkList = realmOperateHelper.queryLink(
point = GeometryTools.createPoint(
location.longitude,
location.latitude
),
)
//看板数据
val signList = mutableListOf<SignBean>()
if (linkList.isNotEmpty()) {
val link = linkList[0]
val linkId = link.properties[RenderEntity.Companion.LinkTable.linkPid]
mapController.lineHandler.showLine(link.geometry)
linkId?.let {
var elementList = realmOperateHelper.queryLinkByLinkPid(it)
for (element in elementList) {
val distance = GeometryTools.distanceToDouble(
GeoPoint(
location.latitude, location.longitude,
),
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)
)
)
}
liveDataSignList.postValue(signList)
Log.e("jingo", "自动捕捉数据 共${elementList.size}")
}
}
}
// location.longitude = testPoint.longitude
// location.latitude = testPoint.latitude
if (!isSelectRoad())
captureLink(GeoPoint(location.latitude, location.longitude))
}
}
@ -218,6 +186,48 @@ class MainViewModel @Inject constructor(
}
/**
* 捕获道路和面板
*/
private suspend fun captureLink(point: GeoPoint) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val linkList = realmOperateHelper.queryLink(
point = point,
)
//看板数据
val signList = mutableListOf<SignBean>()
if (linkList.isNotEmpty()) {
val link = linkList[0]
val linkId = link.properties[RenderEntity.Companion.LinkTable.linkPid]
mapController.lineHandler.showLine(link.geometry)
linkId?.let {
var elementList = realmOperateHelper.queryLinkByLinkPid(it)
for (element in elementList) {
val distance = GeometryTools.distanceToDouble(
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),
elementCode = element.code
)
)
}
}
}
liveDataSignList.postValue(signList)
Log.e("jingo", "自动捕捉数据 共${signList.size}")
}
}
/**
* 点击我的位置回到我的位置
*/
@ -360,15 +370,16 @@ class MainViewModel @Inject constructor(
* */
fun refreshOMDBLayer(layerConfigList: List<ImportConfig>) {
// 根据获取到的配置信息,筛选未勾选的图层名称
if (layerConfigList!=null && !layerConfigList.isEmpty()) {
val omdbVisibleList = layerConfigList.filter { importConfig->
if (layerConfigList != null && !layerConfigList.isEmpty()) {
val omdbVisibleList = layerConfigList.filter { importConfig ->
importConfig.tableGroupName == "OMDB数据"
}.first().tables.filter { tableInfo ->
!tableInfo.checked
}.map {
tableInfo -> tableInfo.table
}.map { tableInfo ->
tableInfo.table
}.toList()
com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY = omdbVisibleList.toTypedArray()
com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY =
omdbVisibleList.toTypedArray()
// 刷新地图
mapController.mMapView.vtmMap.clearMap()
}
@ -409,4 +420,20 @@ class MainViewModel @Inject constructor(
}
}
}
/**
* 开启线选择
*/
fun setSelectRoad(select: Boolean) {
bSelectRoad = select
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mapController.lineHandler.removeLine()
liveDataSignList.value = mutableListOf()
}
}
fun isSelectRoad(): Boolean {
return bSelectRoad
}
}

View File

@ -25,6 +25,7 @@ class SignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null)
val item = data[position]
bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId)
bd.signMainIcon.text = item.iconText
bd.signBottomText.text = item.bottomText
bd.root.setOnClickListener {
itemListener?.invoke(position, item)
}

View File

@ -4,9 +4,7 @@ import android.app.Activity
import android.content.Context
import android.graphics.drawable.AnimationDrawable
import android.graphics.drawable.BitmapDrawable
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.view.Gravity
@ -15,11 +13,9 @@ import android.view.ViewGroup
import android.widget.ImageView
import android.widget.PopupWindow
import androidx.annotation.RequiresApi
import androidx.core.util.rangeTo
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import androidx.navigation.findNavController
import com.blankj.utilcode.util.ToastUtils
import com.navinfo.collect.library.data.entity.AttachmentBean
import com.navinfo.collect.library.data.entity.QsRecordBean
@ -121,16 +117,16 @@ class EvaluationResultViewModel @Inject constructor(
* 查询数据库获取问题分类
*/
fun initNewData(bean: SignBean?, filePath: String) {
viewModelScope.launch(Dispatchers.IO) {
getClassTypeList()
getProblemLinkList()
}
//获取当前定位点
val geoPoint = mapController.locationLayerHandler.getCurrentGeoPoint()
//如果不是从面板进来的
if (bean == null) {
geoPoint?.let {
liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText()
mapController.markerHandle.addMarker(geoPoint, markerTitle)
mapController.animationHandler.animationByLonLat(geoPoint.latitude,geoPoint.longitude)
mapController.animationHandler.animationByLonLat(
geoPoint.latitude, geoPoint.longitude
)
viewModelScope.launch {
captureLink(geoPoint.longitude, geoPoint.latitude)
}
@ -149,13 +145,17 @@ class EvaluationResultViewModel @Inject constructor(
}
}
}
val point = GeometryTools.createGeoPoint(bean.geometry)
this.geometry = GeometryTools.createGeometry(point).toText()
mapController.animationHandler.animationByLonLat(point.latitude, point.longitude)
mapController.markerHandle.addMarker(point, markerTitle)
}
val point = GeometryTools.createGeoPoint(bean.geometry)
liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(point).toText()
mapController.animationHandler.animationByLonLat(point.latitude,point.longitude)
mapController.markerHandle.addMarker(point, markerTitle)
}
//查询元数据
viewModelScope.launch(Dispatchers.IO) {
getClassTypeList(bean)
getProblemLinkList()
}
addChatMsgEntity(filePath)
}
@ -165,16 +165,12 @@ class EvaluationResultViewModel @Inject constructor(
private suspend fun captureLink(longitude: Double, latitude: Double) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val linkList = realmOperateHelper.queryLink(
point = GeometryTools.createPoint(
longitude,
latitude
),
point = GeoPoint(latitude, longitude),
)
liveDataQsRecordBean.value?.let {
if (linkList.isNotEmpty()) {
it.linkId =
linkList[0].properties[LinkTable.linkPid] ?: ""
it.linkId = linkList[0].properties[LinkTable.linkPid] ?: ""
mapController.lineHandler.showLine(linkList[0].geometry)
Log.e("jingo", "捕捉到的linkId = ${it.linkId}")
} else {
@ -188,18 +184,23 @@ class EvaluationResultViewModel @Inject constructor(
/**
* //获取问题分类列表
*/
fun getClassTypeList() {
Log.e("jingo", "getClassTypeList S")
fun getClassTypeList(bean: SignBean? = null) {
viewModelScope.launch(Dispatchers.IO) {
val list = roomAppDatabase.getScProblemTypeDao().findClassTypeList()
list?.let {
if (list.isNotEmpty()) {
//通知页面更新
liveDataLeftTypeList.postValue(it)
val classType = it[0]
var classType = it[0]
if (bean != null) {
val classType2 = roomAppDatabase.getScProblemTypeDao()
.findClassTypeByCode(bean.elementCode)
if (classType2 != null)
classType = classType2
}
//如果右侧栏没数据,给个默认值
if (liveDataQsRecordBean.value!!.classType.isEmpty()) {
Log.e("jingo", "getClassTypeList $classType")
liveDataQsRecordBean.value!!.classType = classType
classTypeTemp = classType
}
@ -207,7 +208,6 @@ class EvaluationResultViewModel @Inject constructor(
}
}
}
Log.e("jingo", "getClassTypeList E")
}
/**
@ -313,6 +313,7 @@ class EvaluationResultViewModel @Inject constructor(
fun saveData() {
viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance()
liveDataQsRecordBean.value!!.checkTime = DateTimeUtil.getDataTime()
realm.executeTransaction {
it.copyToRealmOrUpdate(liveDataQsRecordBean.value)
}
@ -328,8 +329,9 @@ class EvaluationResultViewModel @Inject constructor(
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()
val objects =
it.where(QsRecordBean::class.java).equalTo("id", liveDataQsRecordBean.value?.id)
.findFirst()
objects?.deleteFromRealm()
}
// realm.close()
@ -355,8 +357,7 @@ class EvaluationResultViewModel @Inject constructor(
liveDataQsRecordBean.postValue(it.copy())
val p = GeometryTools.createGeoPoint(it.geometry)
mapController.markerHandle.addMarker(
GeoPoint(p.latitude, p.longitude),
markerTitle
GeoPoint(p.latitude, p.longitude), markerTitle
)
if (it.linkId.isNotEmpty()) {

View File

@ -1,5 +1,6 @@
package com.navinfo.omqs.ui.fragment.evaluationresult
import android.os.Build
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
@ -62,11 +63,13 @@ class PhenomenonFragment :
}
binding.phenomenonRightRecyclerview.adapter = rightAdapter
//右侧菜单增加组标题
binding.phenomenonRightRecyclerview.addItemDecoration(
RightGroupHeaderDecoration(
requireContext()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
binding.phenomenonRightRecyclerview.addItemDecoration(
RightGroupHeaderDecoration(
requireContext()
)
)
)
}
//右侧菜单查询数据监听
viewModel.liveDataRightTypeList.observe(viewLifecycleOwner) {
rightAdapter.refreshData(it)

View File

@ -51,14 +51,18 @@ class QsRecordListAdapter(
holder.itemView.setOnClickListener {
itemClickListener!!.onItemClickListener(position)
}
changeViews(binding, qsRecordBean)
changeViews(position, binding, qsRecordBean)
}
private fun changeViews(binding: AdapterQsRecordListBinding, qsRecordBean: QsRecordBean) {
private fun changeViews(position: Int,binding: AdapterQsRecordListBinding, qsRecordBean: QsRecordBean) {
if(position<99)
binding.qsRecordIndex.text = (position+1).toString()
else
binding.qsRecordIndex.text = "99."
binding.qsRecordClassType.text = qsRecordBean.classType
binding.qsRecordProblemType.text = qsRecordBean.problemType
binding.qsRecordPhenomenon.text = qsRecordBean.phenomenon
binding.qsRecordProblemLink.text = qsRecordBean.problemLink
binding.qsRecordTime.text = qsRecordBean.checkTime
}
override fun getItemViewRes(position: Int): Int {

View File

@ -44,6 +44,7 @@ class QsRecordListFragment : BaseFragment(){
binding.qsRecyclerview.adapter = adapter
viewModel.liveDataQSList.observe(viewLifecycleOwner) {
adapter.refreshData(it)
binding.tvTitleCount.text = ""+adapter.data.size+""
}
val itemDecoration = DividerItemDecoration(context, DividerItemDecoration.VERTICAL)
itemDecoration.setDrawable(resources.getDrawable(R.drawable.separator))
@ -57,7 +58,7 @@ class QsRecordListFragment : BaseFragment(){
}
})
binding.recordBack.setOnClickListener{
binding.imgBack.setOnClickListener{
findNavController().navigateUp()
}
}

View File

@ -2,12 +2,14 @@ package com.navinfo.omqs.ui.fragment.tasklist
import android.content.Context
import android.graphics.Color
import android.os.Build
import android.util.Log
import android.widget.Toast
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.navinfo.collect.library.map.NIMapController
import com.navinfo.omqs.Constant
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.omqs.http.NetResult
import com.navinfo.omqs.http.NetworkService
@ -23,7 +25,7 @@ import javax.inject.Inject
@HiltViewModel
class TaskListViewModel @Inject constructor(
private val networkService: NetworkService,
private val niMapController: NIMapController
private val mapController: NIMapController
) : ViewModel() {
val liveDataTaskList = MutableLiveData<List<TaskBean>>()
@ -35,7 +37,7 @@ class TaskListViewModel @Inject constructor(
viewModelScope.launch(Dispatchers.IO) {
var taskList: List<TaskBean> = mutableListOf()
when (val result = networkService.getTaskList("02911")) {
when (val result = networkService.getTaskList(Constant.USER_ID)) {
is NetResult.Success -> {
if (result.data != null) {
val realm = Realm.getDefaultInstance()
@ -66,6 +68,7 @@ class TaskListViewModel @Inject constructor(
}
val objects = realm.where(TaskBean::class.java).findAll()
taskList = realm.copyFromRealm(objects)
}
}
}
@ -95,6 +98,14 @@ class TaskListViewModel @Inject constructor(
// }
// niMapController.lineHandler.omdbTaskLinkLayer.update()
liveDataTaskList.postValue(taskList)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mapController.lineHandler.omdbTaskLinkLayer.removeAll()
for (item in taskList) {
mapController.lineHandler.omdbTaskLinkLayer.setLineColor(Color.valueOf(item.color))
mapController.lineHandler.omdbTaskLinkLayer.addLineList(item.hadLinkDvoList)
}
}
}
}

View File

@ -1,4 +1,4 @@
<vector android:height="24dp" android:tint="#18FD00"
<vector android:height="24dp" android:tint="@color/icon_blue"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#3756DF"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M23,8c0,1.1 -0.9,2 -2,2c-0.18,0 -0.35,-0.02 -0.51,-0.07l-3.56,3.55C16.98,13.64 17,13.82 17,14c0,1.1 -0.9,2 -2,2s-2,-0.9 -2,-2c0,-0.18 0.02,-0.36 0.07,-0.52l-2.55,-2.55C10.36,10.98 10.18,11 10,11s-0.36,-0.02 -0.52,-0.07l-4.55,4.56C4.98,15.65 5,15.82 5,16c0,1.1 -0.9,2 -2,2s-2,-0.9 -2,-2s0.9,-2 2,-2c0.18,0 0.35,0.02 0.51,0.07l4.56,-4.55C8.02,9.36 8,9.18 8,9c0,-1.1 0.9,-2 2,-2s2,0.9 2,2c0,0.18 -0.02,0.36 -0.07,0.52l2.55,2.55C14.64,12.02 14.82,12 15,12s0.36,0.02 0.52,0.07l3.55,-3.56C19.02,8.35 19,8.18 19,8c0,-1.1 0.9,-2 2,-2S23,6.9 23,8z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="@color/white"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M23,8c0,1.1 -0.9,2 -2,2c-0.18,0 -0.35,-0.02 -0.51,-0.07l-3.56,3.55C16.98,13.64 17,13.82 17,14c0,1.1 -0.9,2 -2,2s-2,-0.9 -2,-2c0,-0.18 0.02,-0.36 0.07,-0.52l-2.55,-2.55C10.36,10.98 10.18,11 10,11s-0.36,-0.02 -0.52,-0.07l-4.55,4.56C4.98,15.65 5,15.82 5,16c0,1.1 -0.9,2 -2,2s-2,-0.9 -2,-2s0.9,-2 2,-2c0.18,0 0.35,0.02 0.51,0.07l4.56,-4.55C8.02,9.36 8,9.18 8,9c0,-1.1 0.9,-2 2,-2s2,0.9 2,2c0,0.18 -0.02,0.36 -0.07,0.52l2.55,2.55C14.64,12.02 14.82,12 15,12s0.36,0.02 0.52,0.07l3.55,-3.56C19.02,8.35 19,8.18 19,8c0,-1.1 0.9,-2 2,-2S23,6.9 23,8z"/>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_card_bg_select" android:state_selected="true"></item>
<item android:drawable="@drawable/shape_card_bg_default" />
</selector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/baseline_timeline_select_24" android:state_selected="true"></item>
<item android:drawable="@drawable/baseline_timeline_24" />
</selector>

View File

@ -2,8 +2,8 @@
android:shape="line">
<size android:height="2dp"/>
<stroke
android:color="@color/skyblue"
android:dashWidth="2px"
android:dashGap="2px"
android:color="@color/bg_gray2"
android:dashWidth="1px"
android:dashGap="1px"
android:width="1dp"/>
</shape>

View File

@ -1,11 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/default_widget_padding"></corners>
<padding
android:bottom="@dimen/nimap_defalut_padding"
android:left="@dimen/nimap_defalut_padding"
android:right="@dimen/nimap_defalut_padding"
android:top="@dimen/nimap_defalut_padding"></padding>
<solid android:color="@color/colorSurface"></solid>
</shape>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 灰色阴影 -->
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp">
<shape>
<solid android:color="#A1DBDCDF" />
<corners android:radius="2dp" />
</shape>
</item>
<!-- 白色前景 -->
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp">
<shape>
<solid android:color="#FFFFFF" />
<corners android:radius="2dp" />
</shape>
</item>
</layer-list>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 灰色阴影 -->
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp">
<shape>
<solid android:color="#A1DBDCDF" />
<corners android:radius="2dp" />
</shape>
</item>
<!-- 白色前景 -->
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp">
<shape>
<solid android:color="#03A9F4" />
<corners android:radius="2dp" />
</shape>
</item>
</layer-list>

View File

@ -42,9 +42,9 @@
android:layout_height="48dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:background="@null"
android:onClick="@{()->mainActivity.openMenu()}"
android:src="@drawable/baseline_person_24"
android:background="@null"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@ -57,38 +57,48 @@
app:layout_constraintTop_toBottomOf="@id/main_activity_person_center" />
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_marginBottom="108dp"
app:layout_constraintRight_toLeftOf="@+id/main_activity_right_fragment"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@+id/main_activity_right_fragment"
app:layout_constraintRight_toRightOf="parent"
tools:ignore="MissingConstraints">
<ImageButton
android:id="@+id/main_activity_select_line"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/selector_road_line_btn_bg"
android:onClick="@{()->mainActivity.selectLineOnclick()}"
android:src="@drawable/selector_road_line_src" />
<ImageButton
android:id="@+id/main_activity_voice"
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/icon_add_voice"
android:background="@null" />
android:background="@null"
android:src="@drawable/icon_add_voice" />
<ImageButton
android:id="@+id/main_activity_line"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@null"
android:onClick="@{()->mainActivity.voiceOnclick()}"
android:src="@drawable/icon_add_data"
android:background="@null" />
android:src="@drawable/icon_add_data" />
<ImageButton
android:id="@+id/main_activity_location"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@null"
android:onClick="@{()->viewModel.onClickLocationButton()}"
android:src="@drawable/icon_location"
android:background="@null" />
android:src="@drawable/icon_location" />
</LinearLayout>
@ -116,69 +126,70 @@
app:navGraph="@navigation/right_fragment_nav_graph" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintRight_toLeftOf="@+id/main_activity_right_fragment"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
app:layout_constraintTop_toTopOf="parent"
android:orientation="horizontal"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="MissingConstraints">
<LinearLayout
android:id="@+id/main_activity_menu_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:orientation="horizontal">
android:orientation="horizontal"
android:visibility="gone">
<ImageButton
android:id="@+id/main_activity_serach"
android:onClick="@{()->mainActivity.onClickSerach()}"
android:background="@drawable/icon_serach"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:background="@drawable/icon_serach"
android:onClick="@{()->mainActivity.onClickSerach()}" />
<ImageButton
android:id="@+id/main_activity_2d_3d"
android:background="@drawable/icon_2d_3d"
android:onClick="@{()->mainActivity.onClick2DOr3D()}"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:background="@drawable/icon_2d_3d"
android:onClick="@{()->mainActivity.onClick2DOr3D()}" />
<ImageButton
android:id="@+id/main_activity_camera"
android:background="@drawable/icon_page_video_a1"
android:onClick="@{()->mainActivity.openCamera()}"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:background="@drawable/icon_page_video_a1"
android:onClick="@{()->mainActivity.openCamera()}" />
<ImageButton
android:id="@+id/main_activity_trace"
android:onClick="@{()->mainActivity.onClickTrace()}"
android:background="@drawable/icon_trace"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:background="@drawable/icon_trace"
android:onClick="@{()->mainActivity.onClickTrace()}" />
<ImageButton
android:id="@+id/main_activity_calc_disance"
android:background="@drawable/icon_calc_disance"
android:onClick="@{()->mainActivity.onClickCalcDisance()}"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:background="@drawable/icon_calc_disance"
android:onClick="@{()->mainActivity.onClickCalcDisance()}" />
</LinearLayout>
<ImageButton
android:layout_marginTop="5dp"
android:id="@+id/main_activity_menu"
android:background="@drawable/chk_icon_menu_open_close_xml"
android:onClick="@{()->mainActivity.onClickMenu()}"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/chk_icon_menu_open_close_xml"
android:onClick="@{()->mainActivity.onClickMenu()}" />
</LinearLayout>
@ -190,9 +201,9 @@
android:layout_height="48dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:background="@null"
android:onClick="@{()->mainActivity.openCamera()}"
android:src="@drawable/baseline_person_24"
android:background="@null"
android:visibility="gone"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View File

@ -6,16 +6,16 @@
android:layout_height="wrap_content"
android:background="@color/ivory"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp"
android:paddingRight="10dp"
tools:context="com.navinfo.omqs.ui.fragment.offlinemap.OfflineMapCityListAdapter">
<TextView
android:id="@+id/offline_map_city_name"
style="@style/map_size_font_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="省市名称"
style="@style/map_size_font_style"
android:textSize="@dimen/default_font_size" />
<TextView
@ -24,25 +24,26 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/offline_map_city_name"
android:drawableLeft="@mipmap/point_blue"
android:layout_marginTop="5dp"
android:textColor="@color/gray_121"
android:text="文件大小" />
android:drawableLeft="@mipmap/point_blue"
android:text="文件大小"
android:textColor="@color/gray_121" />
<TextView
android:id="@+id/offline_map_download_btn"
style="@style/map_download_style_btn"
android:layout_width="60dp"
android:layout_alignTop="@id/offline_map_city_name"
android:layout_alignBottom="@id/offline_map_city_size"
android:layout_alignParentRight="true"
android:layout_gravity="center_vertical"
android:gravity="center"
android:shadowColor="@android:color/transparent"
android:text="下载"
android:textSize="@dimen/card_title_font_2size" />
<TextView
android:id="@+id/tv_city_list_status"
style="@style/content_font_default_size_13sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
@ -50,8 +51,7 @@
android:layout_toLeftOf="@id/offline_map_download_btn"
android:clickable="true"
android:focusable="false"
android:shadowColor="@android:color/transparent"
style="@style/content_font_default_size_13sp" />
android:shadowColor="@android:color/transparent" />
<com.navinfo.omqs.ui.widget.MyProgressBar
android:id="@+id/offline_map_progress"
@ -59,7 +59,7 @@
android:layout_width="match_parent"
android:layout_height="16dp"
android:layout_below="@id/offline_map_download_btn"
android:progressDrawable="@drawable/progress_bg"
android:paddingTop="10dp"
android:progressDrawable="@drawable/progress_bg"
android:visibility="invisible" />
</RelativeLayout>

View File

@ -1,53 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<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="match_parent"
android:layout_height="wrap_content"
android:background="@color/ivory"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
tools:context="com.navinfo.omqs.ui.fragment.qsrecordlist.QsRecordListAdapter">
<TextView
android:id="@+id/qs_record_index"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/marker"
android:maxLength="3"
android:text=""
android:layout_marginRight="@dimen/default_widget_padding"
style="@style/content_font_default_size_13sp" />
<TextView
android:id="@+id/qs_record_classType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/point_blue"
android:text="问题分类"
style="@style/content_font_default"
android:textSize="@dimen/default_font_size" />
<TextView
android:id="@+id/qs_record_problemLink"
style="@style/content_font_default"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/qs_record_classType"
android:drawableLeft="@mipmap/point_blue"
android:layout_marginLeft="@dimen/default_widget_padding"
android:text="问题环节" />
<TextView
android:id="@+id/qs_record_problem_type"
style="@style/content_font_default_size_13sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxEms="6"
android:singleLine="true"
android:ellipsize="end"
android:layout_toRightOf="@id/qs_record_index"
android:text="问题分类" />
<TextView
android:id="@+id/qs_record_time"
style="@style/content_font_default_size_13sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/default_widget_padding"
android:layout_toRightOf="@id/qs_record_classType"
android:maxLines="1"
android:text="" />
<TextView
android:id="@+id/qs_record_problem_type"
style="@style/content_font_default_size_10sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/qs_record_classType"
android:drawableLeft="@mipmap/point_blue"
android:layout_toRightOf="@id/qs_record_index"
android:layout_marginTop="5dp"
android:text="问题类型" />
<TextView
android:id="@+id/qs_record_phenomenon"
style="@style/content_font_default_size_13sp"
style="@style/content_font_default_size_10sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/qs_record_problem_type"
android:maxLines="2"
android:layout_below="@id/qs_record_classType"
android:drawableLeft="@mipmap/point_blue"
android:layout_marginLeft="@dimen/default_widget_padding"
android:layout_marginTop="5dp"
android:text="问题现象" />

View File

@ -17,4 +17,15 @@
android:text="80"
android:textColor="#2F2F2F"
android:textSize="14.67sp" />
<TextView
android:id="@+id/sign_bottom_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginLeft="15dp"
android:layout_marginBottom="5dp"
android:text="道路名"
android:layout_alignParentBottom="true"
android:textColor="@color/white"
android:textSize="14.67sp" />
</RelativeLayout>

View File

@ -15,11 +15,9 @@
android:id="@+id/task_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/task_download_btn"
android:layout_marginRight="5dp"
android:text="任务名称"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="@dimen/default_font_size" />
android:textSize="12sp" />
<TextView
android:id="@+id/task_city_name"
@ -37,10 +35,10 @@
style="@style/map_size_font_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/task_upload_btn"
android:layout_marginRight="5dp"
android:layout_below="@id/task_city_name"
android:textColor="@color/gray_121"
android:layout_toLeftOf="@id/task_upload_btn"
android:layout_alignParentLeft="true"
android:text="版本号"
android:textSize="@dimen/card_title_font_3size" />
@ -51,7 +49,6 @@
android:layout_height="wrap_content"
android:layout_below="@id/task_data_version"
android:layout_marginTop="5dp"
android:drawableLeft="@mipmap/point_blue"
android:text="路线颜色"
android:textSize="@dimen/card_title_font_3size" />
@ -65,6 +62,7 @@
android:gravity="center"
android:shadowColor="@android:color/transparent"
android:text="下载"
android:textColor="@color/btn_blue_solid"
android:textSize="@dimen/card_title_font_2size" />
<TextView
@ -78,6 +76,7 @@
android:gravity="center"
android:shadowColor="@android:color/transparent"
android:text="同步"
android:textColor="@color/btn_blue_solid"
android:textSize="@dimen/card_title_font_2size" />
<TextView

View File

@ -13,30 +13,85 @@
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
style="@style/left_pannel_title_layout">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/record_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="5dp"
app:layout_constraintBottom_toBottomOf="parent"
android:background="@drawable/selector_bg_round_button"
android:foreground="@drawable/ripple_btn_press"
style="@style/btn_round"
android:src="@drawable/ic_baseline_keyboard_arrow_left_24"></androidx.appcompat.widget.AppCompatImageView>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/record_title"
android:layout_width="wrap_content"
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/evaluation_appbar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/left_pannel_title_font"
android:textStyle="bold"
android:text="我的数据"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"></androidx.appcompat.widget.AppCompatTextView>
app:layout_constraintTop_toTopOf="parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/img_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/eight"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
android:src="@drawable/btn_back_xml" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:paddingTop="@dimen/ten"
android:paddingBottom="@dimen/five"
android:text="测评结果"
android:textColor="@color/highFontColor"
android:textSize="@dimen/default_font_size" />
<TextView
android:id="@+id/tv_title_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_title"
android:paddingLeft="@dimen/ten"
android:layout_alignStart="@+id/tv_title"
android:paddingBottom="@dimen/ten"
android:textSize="@dimen/card_title_font_3size"
android:text="共0个"
android:textColor="@color/cv_gray_153" />
<ImageView
android:id="@+id/img_refrush"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:padding="@dimen/eight"
android:layout_centerInParent="true"
android:layout_marginRight="@dimen/eight"
android:background="@drawable/icon_refrush" />
<ImageView
android:id="@+id/img_order"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="@dimen/eight"
android:layout_marginRight="@dimen/eight"
android:layout_toLeftOf="@+id/img_refrush"
android:background="@drawable/icon_order" />
<ImageView
android:id="@+id/img_filter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="@dimen/eight"
android:layout_marginRight="@dimen/eight"
android:layout_toLeftOf="@+id/img_order"
android:background="@drawable/icon_filter" />
</RelativeLayout>
</com.google.android.material.appbar.AppBarLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.cardview.widget.CardView

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/filter"
android:contentDescription="筛选"
android:icon="@drawable/icon_filter"
android:title="筛选"
app:showAsAction="ifRoom" />
<item
android:id="@+id/order"
android:contentDescription="排序"
android:icon="@drawable/icon_order"
android:title="排序"
app:showAsAction="ifRoom" />
<item
android:id="@+id/refrush"
android:contentDescription="刷新"
android:icon="@drawable/icon_refrush"
android:title="刷新"
app:showAsAction="ifRoom" />
</menu>

View File

@ -41,7 +41,7 @@
<item
android:id="@+id/personal_center_menu_qs_record_list"
android:icon="@drawable/ic_baseline_playlist_add_check_24"
android:title="我的数据" />
android:title="测评结果" />
<item
android:id="@+id/personal_center_menu_layer_manager"
android:icon="@drawable/ic_baseline_layers_24"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 332 B

View File

@ -166,6 +166,7 @@
<color name="highFontColor">#2631DD</color>
<color name="high_item_color">#FFF5F7FE</color>
<color name="contentColor">#000000</color>
<color name="icon_blue">#FF4263EB</color>
<!-- 一键连接对话框背景色 -->
<color name="bg_gray2">#d1d1d1</color>
<!-- 一键连接时间显示区域背景色 -->

View File

@ -63,6 +63,15 @@
<item name="android:layout_height">wrap_content</item>
</style>
<!-- 默认字体 -->
<style name="content_font_default_size_10sp">
<item name="android:gravity">center_vertical</item>
<item name="android:textSize">@dimen/card_title_font_3size</item>
<item name="android:textColor">@color/black</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
</style>
<!-- 输入框基本样式 -->
<style name="input_blue_type" parent="content_font_default">
<item name="android:textSize">16sp</item>

View File

@ -57,7 +57,7 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
private lateinit var canvas: org.oscim.backend.canvas.Canvas
private lateinit var itemizedLayer: MyItemizedLayer
private lateinit var markerRendererFactory: MarkerRendererFactory
private var resId = R.mipmap.map_icon_point_add
private var resId = R.mipmap.map_icon_report
private var itemListener: OnQsRecordItemClickListener? = null
/**

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB