From d86ec46943328b141548f3bd1919de7e207533ba Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Sat, 6 May 2023 11:01:50 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=BA=BF=E5=88=B7=E6=96=B0=EF=BC=8C=E6=95=B0=E6=8D=AE=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/navinfo/omqs/db/ImportOMDBHelper.kt | 2 +- .../com/navinfo/omqs/db/RealmOperateHelper.kt | 20 ++- .../com/navinfo/omqs/hilt/ActivityModule.kt | 3 +- .../com/navinfo/omqs/hilt/GlobalModule.kt | 2 +- .../http/taskdownload/TaskDownloadManager.kt | 2 + .../http/taskdownload/TaskDownloadScope.kt | 5 + .../omqs/http/taskupload/TaskUploadScope.kt | 7 +- .../omqs/ui/activity/map/MainActivity.kt | 11 +- .../omqs/ui/activity/map/MainViewModel.kt | 130 ++++++++++-------- .../omqs/ui/activity/map/SignAdapter.kt | 1 + .../EvaluationResultViewModel.kt | 26 ++-- .../ui/fragment/tasklist/TaskListViewModel.kt | 12 +- .../res/drawable/baseline_timeline_24.xml | 5 + app/src/main/res/layout/activity_main.xml | 7 + app/src/main/res/layout/adapter_sign.xml | 11 ++ 15 files changed, 160 insertions(+), 84 deletions(-) create mode 100644 app/src/main/res/drawable/baseline_timeline_24.xml diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt index 1bbdd8e6..bc31837e 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt @@ -129,7 +129,7 @@ class ImportOMDBHelper @AssistedInject constructor( // 开始解压zip文件 val unZipFiles = ZipUtils.unzipFile(omdbZipFile, unZipFolder) // 将listResult数据插入到Realm数据库中 - Realm.getDefaultInstance().beginTransaction() + val realm = Realm.getDefaultInstance() // 遍历解压后的文件,读取该数据返回 for ((index, currentConfig) in importConfig.tables.withIndex()) { val txtFile = unZipFiles.find { diff --git a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt index 3bedd606..73057c4c 100644 --- a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt @@ -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 { val result = mutableListOf() 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() 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): List { val sortList = unSortList.stream().sorted { renderEntity, renderEntity2 -> val near = point.distance(renderEntity.wkt) - point.distance(renderEntity2.wkt) diff --git a/app/src/main/java/com/navinfo/omqs/hilt/ActivityModule.kt b/app/src/main/java/com/navinfo/omqs/hilt/ActivityModule.kt index 1619dd5e..5c0829ef 100644 --- a/app/src/main/java/com/navinfo/omqs/hilt/ActivityModule.kt +++ b/app/src/main/java/com/navinfo/omqs/hilt/ActivityModule.kt @@ -46,8 +46,9 @@ class ActivityModule { fun providesTaskListDownloadManager( networkServiceAPI: RetrofitNetworkServiceAPI, importFactory: ImportOMDBHiltFactory, + mapController: NIMapController ): TaskDownloadManager = - TaskDownloadManager(importFactory, networkServiceAPI) + TaskDownloadManager(importFactory, networkServiceAPI, mapController) /** * 注入任务下载 diff --git a/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt b/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt index e68fde92..b33f5bf1 100644 --- a/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt +++ b/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt @@ -67,7 +67,7 @@ class GlobalModule { }.apply { level = if (Constant.DEBUG) { //坑 !!!! 下载文件时打印log 内存不足 - HttpLoggingInterceptor.Level.BODY + HttpLoggingInterceptor.Level.BASIC } else { HttpLoggingInterceptor.Level.NONE } diff --git a/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadManager.kt b/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadManager.kt index 8c5c1b5c..daad0253 100644 --- a/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadManager.kt +++ b/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadManager.kt @@ -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 diff --git a/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadScope.kt b/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadScope.kt index 7e3e3c77..d88f4788 100644 --- a/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadScope.kt +++ b/app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadScope.kt @@ -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") diff --git a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt index a34a6c25..7d15cc43 100644 --- a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt +++ b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt @@ -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 = ArrayList() if (objects != null) { - val copyList =realm.copyFromRealm(objects) + val copyList = realm.copyFromRealm(objects) copyList.forEach { val evaluationInfo = EvaluationInfo( taskBean.id.toString(), diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index b048abf0..7ff32e0c 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -227,8 +227,15 @@ 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()) } fun voiceOnTouchStart() { diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index bb0219f7..ffd27a22 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -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>() - 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() + /** + * 是不是线选择模式 + */ + 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() - 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,47 @@ 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() + 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) + ) + ) + } + + } + } + liveDataSignList.postValue(signList) + Log.e("jingo", "自动捕捉数据 共${signList.size}条") + } + } + /** * 点击我的位置,回到我的位置 */ @@ -360,15 +369,16 @@ class MainViewModel @Inject constructor( * */ fun refreshOMDBLayer(layerConfigList: List) { // 根据获取到的配置信息,筛选未勾选的图层名称 - 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 +419,16 @@ class MainViewModel @Inject constructor( } } } + + /** + * 开启线选择 + */ + fun setSelectRoad(select: Boolean) { + bSelectRoad = select + } + + fun isSelectRoad(): Boolean { + return bSelectRoad + } + } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt index a49d2543..5ae873f5 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt @@ -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) } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index 35b9d371..90b80835 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -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 @@ -130,7 +126,9 @@ class EvaluationResultViewModel @Inject constructor( 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) } @@ -152,7 +150,7 @@ class EvaluationResultViewModel @Inject constructor( } val point = GeometryTools.createGeoPoint(bean.geometry) liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(point).toText() - mapController.animationHandler.animationByLonLat(point.latitude,point.longitude) + mapController.animationHandler.animationByLonLat(point.latitude, point.longitude) mapController.markerHandle.addMarker(point, markerTitle) } @@ -165,16 +163,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 { @@ -328,8 +322,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() @@ -354,8 +349,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()) { diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListViewModel.kt index 6bb8bebe..b6578c07 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListViewModel.kt @@ -2,6 +2,7 @@ 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 @@ -23,7 +24,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>() @@ -66,6 +67,7 @@ class TaskListViewModel @Inject constructor( } val objects = realm.where(TaskBean::class.java).findAll() taskList = realm.copyFromRealm(objects) + } } } @@ -95,6 +97,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) + } + } + } } diff --git a/app/src/main/res/drawable/baseline_timeline_24.xml b/app/src/main/res/drawable/baseline_timeline_24.xml new file mode 100644 index 00000000..1d0c6fa9 --- /dev/null +++ b/app/src/main/res/drawable/baseline_timeline_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 071b3a81..19540197 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -133,6 +133,13 @@ app:layout_constraintRight_toRightOf="parent" tools:ignore="MissingConstraints"> + + \ No newline at end of file From 8501f64b2cd69d4c43941e3a0b7a3313f7592e02 Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Sat, 6 May 2023 14:30:30 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BA=BF=E9=80=89?= =?UTF-8?q?=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../omqs/ui/activity/map/MainActivity.kt | 14 +++++--- .../omqs/ui/activity/map/MainViewModel.kt | 4 +++ .../baseline_timeline_24.xml | 0 .../baseline_timeline_select_24.xml | 5 +++ .../drawable/selector_road_line_btn_bg.xml | 5 +++ .../res/drawable/selector_road_line_src.xml | 5 +++ .../res/drawable/shape_card_bg_default.xml | 35 +++++++++++++------ .../res/drawable/shape_card_bg_select.xml | 26 ++++++++++++++ app/src/main/res/layout/activity_main.xml | 17 +++++---- 9 files changed, 89 insertions(+), 22 deletions(-) rename app/src/main/res/{drawable => drawable-v24}/baseline_timeline_24.xml (100%) create mode 100644 app/src/main/res/drawable-v24/baseline_timeline_select_24.xml create mode 100644 app/src/main/res/drawable/selector_road_line_btn_bg.xml create mode 100644 app/src/main/res/drawable/selector_road_line_src.xml create mode 100644 app/src/main/res/drawable/shape_card_bg_select.xml diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index 7ff32e0c..afdec6e8 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -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>(lifecycle, Constant.EVENT_LAYER_MANAGER_CHANGE) { + FlowEventBus.subscribe>( + lifecycle, + Constant.EVENT_LAYER_MANAGER_CHANGE + ) { viewModel.refreshOMDBLayer(it) } } @@ -227,15 +230,16 @@ class MainActivity : BaseActivity() { * 点击录音按钮 */ fun voiceOnclick() { - val naviController = findNavController(R.id.main_activity_right_fragment) + val naviController = findNavController(R.id.main_activity_right_fragment) naviController.navigate(R.id.EvaluationResultFragment) } /** * 点击线选择 */ - fun selectLineOnclick(){ + fun selectLineOnclick() { viewModel.setSelectRoad(!viewModel.isSelectRoad()) + binding.mainActivitySelectLine.isSelected = viewModel.isSelectRoad() } fun voiceOnTouchStart() { diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index ffd27a22..06620940 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -425,6 +425,10 @@ 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 { diff --git a/app/src/main/res/drawable/baseline_timeline_24.xml b/app/src/main/res/drawable-v24/baseline_timeline_24.xml similarity index 100% rename from app/src/main/res/drawable/baseline_timeline_24.xml rename to app/src/main/res/drawable-v24/baseline_timeline_24.xml diff --git a/app/src/main/res/drawable-v24/baseline_timeline_select_24.xml b/app/src/main/res/drawable-v24/baseline_timeline_select_24.xml new file mode 100644 index 00000000..70bddb36 --- /dev/null +++ b/app/src/main/res/drawable-v24/baseline_timeline_select_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/selector_road_line_btn_bg.xml b/app/src/main/res/drawable/selector_road_line_btn_bg.xml new file mode 100644 index 00000000..d4f61e9e --- /dev/null +++ b/app/src/main/res/drawable/selector_road_line_btn_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_road_line_src.xml b/app/src/main/res/drawable/selector_road_line_src.xml new file mode 100644 index 00000000..76e005e3 --- /dev/null +++ b/app/src/main/res/drawable/selector_road_line_src.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_card_bg_default.xml b/app/src/main/res/drawable/shape_card_bg_default.xml index 8abc0e3e..e716c562 100644 --- a/app/src/main/res/drawable/shape_card_bg_default.xml +++ b/app/src/main/res/drawable/shape_card_bg_default.xml @@ -1,11 +1,26 @@ - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/shape_card_bg_select.xml b/app/src/main/res/drawable/shape_card_bg_select.xml new file mode 100644 index 00000000..7dc4311f --- /dev/null +++ b/app/src/main/res/drawable/shape_card_bg_select.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a847d7db..e1d7c190 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -67,6 +67,16 @@ app:layout_constraintRight_toRightOf="parent" tools:ignore="MissingConstraints"> + + + - Date: Sat, 6 May 2023 14:57:04 +0800 Subject: [PATCH 3/7] merge code --- .../omqs/ui/activity/login/LoginViewModel.kt | 2 +- .../EvaluationResultViewModel.kt | 1 + .../qsrecordlist/QsRecordListAdapter.kt | 10 +- .../qsrecordlist/QsRecordListFragment.kt | 3 +- .../ui/fragment/tasklist/TaskListViewModel.kt | 3 +- .../main/res/drawable-xhdpi/icon_filter.png | Bin 0 -> 643 bytes .../main/res/drawable-xhdpi/icon_order.png | Bin 0 -> 235 bytes .../main/res/drawable-xhdpi/icon_refrush.png | Bin 0 -> 697 bytes .../main/res/drawable-xxhdpi/icon_filter.png | Bin 0 -> 913 bytes .../main/res/drawable-xxhdpi/icon_order.png | Bin 0 -> 423 bytes .../main/res/drawable-xxhdpi/icon_refrush.png | Bin 0 -> 1092 bytes app/src/main/res/drawable/separator.xml | 6 +- .../res/layout/adapter_qs_record_list.xml | 58 +++++----- .../res/layout/fragment_qs_record_list.xml | 99 ++++++++++++++---- .../res/menu/evaluation_list_bar_mean.xml | 25 +++++ .../main/res/menu/personal_center_menu.xml | 2 +- app/src/main/res/mipmap-xhdpi/icon_back_n.png | Bin 1141 -> 355 bytes app/src/main/res/mipmap-xhdpi/icon_back_p.png | Bin 15582 -> 332 bytes app/src/main/res/values/styles.xml | 9 ++ .../src/main/res/mipmap-hdpi/marker.png | Bin 1598 -> 1300 bytes 20 files changed, 162 insertions(+), 56 deletions(-) create mode 100644 app/src/main/res/drawable-xhdpi/icon_filter.png create mode 100644 app/src/main/res/drawable-xhdpi/icon_order.png create mode 100644 app/src/main/res/drawable-xhdpi/icon_refrush.png create mode 100644 app/src/main/res/drawable-xxhdpi/icon_filter.png create mode 100644 app/src/main/res/drawable-xxhdpi/icon_order.png create mode 100644 app/src/main/res/drawable-xxhdpi/icon_refrush.png create mode 100644 app/src/main/res/menu/evaluation_list_bar_mean.xml diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt index 1b054ca1..947032d7 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/login/LoginViewModel.kt @@ -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) } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index 764030cf..5803c3a2 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -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) } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListAdapter.kt index 17d56a3c..434d1196 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListAdapter.kt @@ -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 { diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt index 60076cbb..e4fb1819 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/qsrecordlist/QsRecordListFragment.kt @@ -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() } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListViewModel.kt index 6bb8bebe..af3a65af 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListViewModel.kt @@ -8,6 +8,7 @@ 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 @@ -35,7 +36,7 @@ class TaskListViewModel @Inject constructor( viewModelScope.launch(Dispatchers.IO) { var taskList: List = 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() diff --git a/app/src/main/res/drawable-xhdpi/icon_filter.png b/app/src/main/res/drawable-xhdpi/icon_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..453920cf5be7ff91dde6449433d543bba4f5e457 GIT binary patch literal 643 zcmV-}0(||6P)^a@-e%jmp_e8koLHFz*3jptWabJMm0Pt;rF)#&VL>cdg zf4ouI?i?U^GTwo}CtHqnb_inQOY(AZ_1PR?;Kav7^i;R#wovNjnE88@dVMWG&>K$y zJer-g9}lM+^1rn)aDHwP@c|e=!qnZWiolR4KmXC}ti5du;(hPei;S}aBCKcNw_g)) zs0HYEes@}H7b60mgE5(%w>NJKkvm6rL_kLuehIQr1vVi}oG$^$2^$a#&Vl_Xad)Z` zN-IPX;=#j=AYe3K4!XI`lTI>Lby=ZVRTV?koOT*Ku(O`U6xployw0ZawN zW);LuoErhiMRgE?6YqiO1AtRz>PP9TLsJnkZbnrQYF;`g2*2)_8s$KFao~&(i^SxQ zVe0M4=Rt4GMJShb-Xsdf5y+jXP-_6f#BF3t!8O`s3J`Q-pU}!9qa7`rs-vGVxlU=I)F*yX}h7xM$;THv2~|Ocy|EZ*hhL2UzM4 zm%U(R5vT(wav-bwz?p=JyW2PibcrQDXykm9dh7DnqzYu~4imRy1wcx#G<4G|e4{F8 dA~2?F{{yVNfiUWey!8M8002ovPDHLkV1j``9bo_f literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/icon_order.png b/app/src/main/res/drawable-xhdpi/icon_order.png new file mode 100644 index 0000000000000000000000000000000000000000..ccf3811f495e96b0ce9c608504612a6536dd3545 GIT binary patch literal 235 zcmV8Ky5*K14;T(PNfB(mFf?#~mSRWj~K7n^J z(wTG6Oy$N@?4Q=7CYl4B>3*-*VFC`|33vkL379V;a{%)zxFtYc3;_vW?Oayb{{!h` z#NrRY4<}CqohpD7{{c|12Cx8C(Rmba=Vwp@ki*W-S)6O?08)Gf&{{+?cA176KCUg`h< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/icon_refrush.png b/app/src/main/res/drawable-xhdpi/icon_refrush.png new file mode 100644 index 0000000000000000000000000000000000000000..446107d4db1872067809aa8d7b41891488a1f16c GIT binary patch literal 697 zcmV;q0!ICbP)HMIuZeY?lrc+K3asxRyb+|#q4cr?C`2@iyh^XYG3Auq9Fr^zg zv8~nQtw21G1(LviSgq#IZ)RtAza?z>qb=u0Zh&UxX9M65M9{z}gHW3mVKc)8kuAJe zm)6bOo224SDvpT&c4u6-<^N0oM)`NSSi1kh#4Td<1LB?{;6_1YAZb%5-RmIM2{4%P zT?E{=#&vfdBsV}x2bh455!S!MBRKUE!r7$!mKc1G{o(f?ck(wK=FLU1EqNtW4} zbneaq;kECnA0>QdfM)gTlo*0c{#2Ez7%TEbKHO_N7ZvLG<_ z3H)azfU)Oj#R3g{Pt~3(`E32Gj?GN_6!7uVUC^vJ78C4m!@8Aao#Qrg-FJ2$4w8I> z0&4`eAozVEz~}0(TEL=rKB{Z$BoDWv?4SZ;mA@ariiUdO90&(5fZMq~I$akauiqj- z#c@RdeVr|rH*sVi@4(=EcoZG2>&DFGHv>4?b95A7c7}C5SA-3X7XcJ%bw)>x4P)kV ze_;UITmsp*X7y@&Ll^?QfNi+lgXk%a;|5dH5oyrZ6 fcMj6*w+`?hjQegd#OKHC00000NkvXXu0mjf5-&O( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/icon_filter.png b/app/src/main/res/drawable-xxhdpi/icon_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6d03c74b7de0d4c658b8c1ba5ac8c6aa6732c9 GIT binary patch literal 913 zcmV;C18)3@P)g)&IBebDu$2@CO%MKRir;*1BFJ1$Pi(EiVfZ!N9a= zzk8t$!ZgfTpjqm55TTKmaQ?jnFj7F-`eMB72kG$uG)rf7MEZUo#5)>nOI$5)c1N2d zKV2SxR;hOg2yg6#MEmWbx|at`V_n}U6z~uMUQDInwl;iq7!6SFk+Z06RC5h*k2i!I zrr<*Q01=-th>1zhqXH;P>$FPx9w2^<@&*y0i->QhUxNPRYI!Tj_p%hvP9Kmu2-7Tx zplk*OvIn5C_H%7%b zr54sIX9mDFjss!W6|y><+gzq0K2{9)orVZO7VK(&st5eqSv@&+`WgU8P5i9^{44<` zZSmQuS?>LH#1p`|X;MASE;msOh}LM9dwr+ai2$wH9fOE|n^!B9w7c7M0QjI5EZ_hD z&}rLHYchcuXH6;qp3BGo1i;2OpeV0nojBqVpL%n%0K2#^74TOa@oX(??KPwNG*KlE zdRY<|n!Ei;lCWf;4b_bt006{EhiwG_SBwn9u7EkaPHYlE7z_V88;FK z38?_^Q#Em_ebbHJ<1942*qqfB#DRFnT^NACJ}KiLO;T~8FyDR97MT5vv?CL|&Ke>- z;O9uWSs-a0U?6-~n>m0xdLcM!536l}yAuHE!%eVo;Q{^u)P-J86L6cy00000NkvXXu0mjfV3eAB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/icon_order.png b/app/src/main/res/drawable-xxhdpi/icon_order.png new file mode 100644 index 0000000000000000000000000000000000000000..44e138d841f8af83341ff922c0ad65f2fa356856 GIT binary patch literal 423 zcmV;Y0a*TtP)7xV5WWjkmC6!USa^g^ly2}Q40(^1=O7Q!H|W@Qf>&T5a~T*ANJd5&S;2|yST1LJ zS-HD>KX=YygvcL^96vCDTRX@Oumhe7VAlJ2^Q_S*JuhBnrbHc2Rg9j8S^rx!Lg1N{ zuSdrD)A3Zr+!=x1*Sn{fjnebt)%ad#2O7OSU=kAuD6Um$cEC!efI;j)Kyj@~vjbK# z1q@;b0*Y%@+Svhe>$J8V|C4Pr`u_vGPFu~Ub&&HATUY+0z`G|fO&94yXFr&)hfAp` zxr?nj2PF9R)9zCs3=&8tl0-BF6nH>*mdXo&Ur8bg0%h=O9EA`o@&u~D1Hc9$8IvY( z*gke;&#Si44#E?7@-qMemUZCCpF)OD&qaCl8|fA*5x4?>a)9zWZR+{5E2M9y&tQ$p zUs{Or^}0GL)!JZM$1tO|PHT7&TOW1cNuENkOE0-ohzYnVaO-$(A$Gu1fg|+^>PfdJ R#{B>Q002ovPDHLkV1iPXw5R|8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/icon_refrush.png b/app/src/main/res/drawable-xxhdpi/icon_refrush.png new file mode 100644 index 0000000000000000000000000000000000000000..a77e808d863cb826c8896407363cd4a301edb045 GIT binary patch literal 1092 zcmV-K1iSl*P)2iPwPypCIG};1xNGTh}83;pWT*z<3Fizk1pPz-PfNI9#dO!b5(C?jr@=iCqk)Q(x%C5850H2AY z1YArz$UqiE0`<3I5*tEmZ1ZvRs_={LESNjbd1L@GV8WocL?{8cW}rznx9V4gj!sl7 z=`SU~DG`ypzs-!M?eNhekm^pihy=AG0jQ?G9D>+n=1V4+ANqx+j?;cN`(8=i3*e{oz@>eYEKWy8*Re2mYCg7GAlkNV z-W7dW4)6_MKE^bs`;SO@=6Dc&min+Z=)`KFY4VU$YH<#E9q{Nh+fNo+5pvz z)n?{rjX@#1%%nQ+yxIBsQpb)BCj~-F8^DXc1ODeehg6Vra<>Vxnf+fY1ClZT#W8k5+ zyIIR!zBE!!;fdFn}K_JdW;(I8FiR^yc zW&+)%#|8ojvM2F96vU)e<$Mfs-uEuFXlt9&DZd+J?8hZFs?H7ZN0IS$^jNJ7cu=lV z-BLX+CbK?xaTI1RzspvY%+~E8fSTx_<59A#Q?8)^JO`>1<>F9v9Er?E|Ha9&Ad_1E z?|_MGB;V)`OuyY`(fCUN$Y7HuA50Nl85ojk@)@n!lXB6-)wH$8KnaABbT^s##2#(d zbfT_x66;3PEh~v$S-Oqxd!p%I5NM{&%2@((s>i0I)bP`CMMX?bqT|&AUirelHAnphUjsHKDvo%j%x5Y330000< KMNUMnLSTYDtPy+w literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/separator.xml b/app/src/main/res/drawable/separator.xml index 161848ea..459b9d40 100644 --- a/app/src/main/res/drawable/separator.xml +++ b/app/src/main/res/drawable/separator.xml @@ -2,8 +2,8 @@ android:shape="line"> \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_qs_record_list.xml b/app/src/main/res/layout/adapter_qs_record_list.xml index 8ed12efd..7d3a48dc 100644 --- a/app/src/main/res/layout/adapter_qs_record_list.xml +++ b/app/src/main/res/layout/adapter_qs_record_list.xml @@ -1,53 +1,63 @@ + + - - - - + + + + diff --git a/app/src/main/res/layout/fragment_qs_record_list.xml b/app/src/main/res/layout/fragment_qs_record_list.xml index 35742580..00ed3cf2 100644 --- a/app/src/main/res/layout/fragment_qs_record_list.xml +++ b/app/src/main/res/layout/fragment_qs_record_list.xml @@ -13,30 +13,85 @@ android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" style="@style/left_pannel_title_layout"> - - + app:layout_constraintTop_toTopOf="parent"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/personal_center_menu.xml b/app/src/main/res/menu/personal_center_menu.xml index 3bd6f840..bbf5b357 100644 --- a/app/src/main/res/menu/personal_center_menu.xml +++ b/app/src/main/res/menu/personal_center_menu.xml @@ -39,7 +39,7 @@ + android:title="测评结果" /> Up02<)qaC7Y+r2&M) z5#XX*y>`}cdXLG#d$@m72YK`}0f-1s4KQn-2B?rdojD@zbi1$R(H_2=ID%>Gq*Z`y z=_TIbi3UW6#{$R*{|O)~{3`%094O?#t7Or_RXS^{YsQwaZ~#gd9RV1+-J6Io!canS z5V3neh6%<+#NR|B0G-q0?T3IqxphP^d{^~auDTjuFPCIdXTVhKv4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`Gu2HtFf>sxx70H< zH8im>)KM@pFf`UTFxEFT)-^P;GO)BVG*y5CC7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX) z@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal z@=Hr>m4GgVcp0+w{G(ayiGsViq)y3S^(b&k?*~Q$@(ACV*)x^=s*ww_y z+1$v|!oVD+*Cju>G&eP`1g19yq1PCvUQkNNEdbi=l3J8mmYU*Ll%J~r_OVqaZnqfV zG!Lpb1-Dxaaq86vIz}H9uSoF>69Oh45EGtifgE_cPt5}+_99@ap3@bO4a^a*JY5_^ zDsFAL?#nrdBQR8X0<(KO;XQerg1&D<1y5$Y<1c3-}1pkP=vGzN2u=^>W%3sIa8yFeZzux^Rbgozxs37ok^>bP0l+XkK DYEXrT diff --git a/app/src/main/res/mipmap-xhdpi/icon_back_p.png b/app/src/main/res/mipmap-xhdpi/icon_back_p.png index ca2d8dda835e3e551a8da11dfc5e2e81c572336b..190179711440182f2eda401dc98c4424cfa5474c 100644 GIT binary patch literal 332 zcmV-S0ki&zP)W9BdI5_~*Rj&X5E?VnD2p!HP3<=S?2V$7$wTMEP=mdCoA|;{% z5f=<0giu3&LZ41K0W?6ALWs>65Y7OhAbJ6WfancShlu_p`;>7gUmqP>td%LrH+q+$^N7`PGmT*wpBCSU0c6YAb^zQc9 z-Es$iQ3y{HHAbTnV`4-kpoRn!{?I65Kx2$TAR$3WO4J1K4<#Cj_`unFckVh8!ym@X zC3kzj`Ofb@O z9z$>TZj@qtEZqi&jgD;=?Af-iSKBtC$+~w{xIUCskUf_JC6ipOOxx*( z0#3`?O}70CQEV-Vy%W9BR&a0SD7>oW{pYGTqU2Dn^XCr4k0M9 zn6ln7(DYXm5mOs=@2fKsMuJZ_bOp2uQAq@{*cJ%_(B9MEf(HMIy4&?@=m5I3ns zc}5kQsbS9x0YL(-?ULZm+s>5js3{E=dTpRyLtSgq zWj??HH7K)j-7m4SECH5>K?(2yP1S{9(YhkN$~poqV++)ymYK{gmb7Zw(4Dx=-r~$H zt*!#m+|*Z$>ON_b7;NG-jpfz2pN;$7KDiwe;z3oH0;&qtc!;Y?FZT&G5X#H?zZs{h z)UtCCMaAt_Pm&J9c1&w)h2VC`-9mcc=82_6Az|DlwGunD+7(rEH>a?zBJwVfin4N- z^BHbK`3g0F4+=n4WuUP^Q5yK!-9f!a!UTivAVpledu>hN&>xtphAC zut4esk^*Ff7nk!vh3AV_xmuH(*k;_xs1|G)LJKXNe>`**cMDHjn`hZZBc+=e`_ZD| z#Ei+EwP7_i1obdiOe_}QDIv}swS@6s9JISzxm9D1-(q=UOc*o)^a4?lfFd;gKL#y7 zloJIVcKeK_F$7E&u^Jhh*kS}EhH z<;)E!!wI7;GS^Y8xFX9vS>$2#pwl!AH%XExg*dzz&*(C;Fwqw=(1F8t_j>`gl*_?| znu-18L=l}5%83<1Au+#3D$c#ReJ@{%PSxl@&y`N}Ra;`|Idd=nl<(+Xx?*0m5ex`9 zq`1g@FqPuMfRICqi_8a8DJ~2MIi$GAd@z;b!hn!Nii^w#QzCY_|^FBs4;77X;(d$=1N#rJ3zDp|b93jwzEf{C9G$VL&JlKIuEq!7es;a3 zC5FG>IDV+%!>9h3vUcpq(O)(!8*BLK*wH(4m^F_jFR-_K^W8U)JKNVq-fJD$@i#dE B0JZ=C diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 3299be77..3beb0530 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -63,6 +63,15 @@ wrap_content + + +