1.优化部分页面2.修复Task无link数据地图及控制业务无效问题

This commit is contained in:
qiji4215 2023-06-14 14:20:37 +08:00
parent e0b6d687f6
commit 4e98a5745c
12 changed files with 107 additions and 66 deletions

View File

@ -13,12 +13,12 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
open class BaseActivity : AppCompatActivity() { open class BaseActivity : AppCompatActivity() {
private var loadingDialog: AlertDialog? = null private var loadingDialog: AlertDialog? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
} }

View File

@ -200,12 +200,19 @@ class MainActivity : BaseActivity() {
} }
//监听地图中点变化 //监听地图中点变化
viewModel.liveDataCenterPoint.observe(this) { viewModel.liveDataCenterPoint.observe(this) {
binding.mainActivityGeometry.text = "经纬度:${ Log.e("qj","${it.longitude}")
BigDecimal(it.longitude).setScale( try{
7, if(it!=null&&it.longitude!=null&&it.latitude!=null){
RoundingMode.HALF_UP binding.mainActivityGeometry.text = "经纬度:${
) BigDecimal(it.longitude).setScale(
},${BigDecimal(it.latitude).setScale(7, RoundingMode.HALF_UP)}" 7,
RoundingMode.HALF_UP
)
},${BigDecimal(it.latitude).setScale(7, RoundingMode.HALF_UP)}"
}
}catch (e:Exception){
Log.e("qj","异常")
}
} }
lifecycleScope.launch { lifecycleScope.launch {
@ -266,9 +273,6 @@ class MainActivity : BaseActivity() {
//开启定位 //开启定位
mapController.locationLayerHandler.startLocation() mapController.locationLayerHandler.startLocation()
mapController.mMapView.setLogoVisable(View.GONE) mapController.mMapView.setLogoVisable(View.GONE)
//启动轨迹存储
// viewModel.startSaveTraceThread(this)
} }
override fun onPause() { override fun onPause() {
@ -399,8 +403,4 @@ class MainActivity : BaseActivity() {
viewModel.stopSoundMeter() viewModel.stopSoundMeter()
} }
} }
// override fun onBackPressed() {
// super.onBackPressed()
// }
} }

View File

@ -9,6 +9,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.EditText import android.widget.EditText
import android.widget.Toast
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
@ -40,7 +41,11 @@ class TaskFragment : BaseFragment() {
private val adapter: TaskAdapter by lazy { private val adapter: TaskAdapter by lazy {
TaskAdapter(object : TaskAdapterCallback { TaskAdapter(object : TaskAdapterCallback {
override fun itemOnClick(bean: HadLinkDvoBean) { override fun itemOnClick(bean: HadLinkDvoBean) {
viewModel.showCurrentLink(bean) if(bean!=null){
viewModel.showCurrentLink(bean)
}else{
Toast.makeText(context, "数据错误,无法显示!", Toast.LENGTH_SHORT).show()
}
} }
override fun editOnclick(position: Int, bean: HadLinkDvoBean) { override fun editOnclick(position: Int, bean: HadLinkDvoBean) {

View File

@ -36,18 +36,24 @@ class TaskListAdapter(
val downloadBtnClick = View.OnClickListener() { val downloadBtnClick = View.OnClickListener() {
if (it.tag != null) { if (it.tag != null) {
val taskBean = data[it.tag as Int] val taskBean = data[it.tag as Int]
when (taskBean.status) { if (taskBean.hadLinkDvoList.isNotEmpty()) {
FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.IMPORT, FileDownloadStatus.ERROR -> { when (taskBean.status) {
Log.e("jingo", "开始下载 ${taskBean.status}") FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.IMPORT, FileDownloadStatus.ERROR -> {
downloadManager.start(taskBean.id) Log.e("jingo", "开始下载 ${taskBean.status}")
} downloadManager.start(taskBean.id)
FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> { }
Log.e("jingo", "暂停 ${taskBean.status}")
downloadManager.pause(taskBean.id) FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> {
} Log.e("jingo", "暂停 ${taskBean.status}")
else -> { downloadManager.pause(taskBean.id)
Log.e("jingo", "暂停 ${taskBean.status}") }
else -> {
Log.e("jingo", "暂停 ${taskBean.status}")
}
} }
} else {
Toast.makeText(downloadManager.context, "数据错误无Link信息无法执行下载", Toast.LENGTH_LONG).show()
} }
} }
} }
@ -56,10 +62,14 @@ class TaskListAdapter(
if (it.tag != null) { if (it.tag != null) {
val taskBean = data[it.tag as Int] val taskBean = data[it.tag as Int]
Log.e("jingo", "开始上传 ${taskBean.syncStatus}") Log.e("jingo", "开始上传 ${taskBean.syncStatus}")
when (taskBean.syncStatus) { if (taskBean.hadLinkDvoList.isNotEmpty()) {
FileUploadStatus.NONE, FileUploadStatus.UPLOADING,FileUploadStatus.ERROR, FileUploadStatus.WAITING -> { when (taskBean.syncStatus) {
uploadManager.start(taskBean.id) FileUploadStatus.NONE, FileUploadStatus.UPLOADING, FileUploadStatus.ERROR, FileUploadStatus.WAITING -> {
uploadManager.start(taskBean.id)
}
} }
}else{
Toast.makeText(uploadManager.context, "数据错误无Link信息无法执行同步", Toast.LENGTH_LONG).show()
} }
} }
} }
@ -160,19 +170,23 @@ class TaskListAdapter(
binding.taskUploadBtn.setProgress(0) binding.taskUploadBtn.setProgress(0)
binding.taskUploadBtn.setBackgroundColor(binding.root.resources.getColor(R.color.ripple_end_color)) binding.taskUploadBtn.setBackgroundColor(binding.root.resources.getColor(R.color.ripple_end_color))
} }
FileUploadStatus.ERROR -> { FileUploadStatus.ERROR -> {
binding.taskUploadBtn.stopAnimator() binding.taskUploadBtn.stopAnimator()
binding.taskUploadBtn.setText("重新同步") binding.taskUploadBtn.setText("重新同步")
binding.taskUploadBtn.setProgress(100) binding.taskUploadBtn.setProgress(100)
} }
FileUploadStatus.NONE -> { FileUploadStatus.NONE -> {
binding.taskUploadBtn.setText("未上传") binding.taskUploadBtn.setText("未上传")
binding.taskUploadBtn.setProgress(0) binding.taskUploadBtn.setProgress(0)
} }
FileUploadStatus.WAITING -> { FileUploadStatus.WAITING -> {
binding.taskUploadBtn.setText("等待同步") binding.taskUploadBtn.setText("等待同步")
binding.taskUploadBtn.setProgress(100) binding.taskUploadBtn.setProgress(100)
} }
FileUploadStatus.UPLOADING -> { FileUploadStatus.UPLOADING -> {
binding.taskUploadBtn.setText("上传中") binding.taskUploadBtn.setText("上传中")
binding.taskUploadBtn.setProgress(100) binding.taskUploadBtn.setProgress(100)
@ -203,26 +217,31 @@ class TaskListAdapter(
View.INVISIBLE View.INVISIBLE
binding.taskDownloadBtn.setText("下载") binding.taskDownloadBtn.setText("下载")
} }
FileDownloadStatus.WAITING -> { FileDownloadStatus.WAITING -> {
if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility = if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility =
View.VISIBLE View.VISIBLE
binding.taskDownloadBtn.setText("等待中") binding.taskDownloadBtn.setText("等待中")
} }
FileDownloadStatus.LOADING -> { FileDownloadStatus.LOADING -> {
if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility = if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility =
View.VISIBLE View.VISIBLE
binding.taskDownloadBtn.setText("暂停") binding.taskDownloadBtn.setText("暂停")
} }
FileDownloadStatus.PAUSE -> { FileDownloadStatus.PAUSE -> {
if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility = if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility =
View.VISIBLE View.VISIBLE
binding.taskDownloadBtn.setText("继续") binding.taskDownloadBtn.setText("继续")
} }
FileDownloadStatus.ERROR -> { FileDownloadStatus.ERROR -> {
if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility = if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility =
View.VISIBLE View.VISIBLE
binding.taskDownloadBtn.setText("重试") binding.taskDownloadBtn.setText("重试")
} }
FileDownloadStatus.DONE -> { FileDownloadStatus.DONE -> {
if (binding.taskProgressText.visibility == View.VISIBLE) binding.taskProgressText.visibility = if (binding.taskProgressText.visibility == View.VISIBLE) binding.taskProgressText.visibility =
View.INVISIBLE View.INVISIBLE
@ -230,11 +249,13 @@ class TaskListAdapter(
binding.taskDownloadBtn.visibility = View.INVISIBLE binding.taskDownloadBtn.visibility = View.INVISIBLE
binding.taskUploadBtn.visibility = View.VISIBLE binding.taskUploadBtn.visibility = View.VISIBLE
} }
FileDownloadStatus.UPDATE -> { FileDownloadStatus.UPDATE -> {
if (binding.taskProgressText.visibility == View.VISIBLE) binding.taskProgressText.visibility = if (binding.taskProgressText.visibility == View.VISIBLE) binding.taskProgressText.visibility =
View.INVISIBLE View.INVISIBLE
binding.taskDownloadBtn.setText("更新") binding.taskDownloadBtn.setText("更新")
} }
FileDownloadStatus.IMPORTING -> { FileDownloadStatus.IMPORTING -> {
if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility = if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility =
View.VISIBLE View.VISIBLE
@ -253,10 +274,11 @@ class TaskListAdapter(
binding.taskProgressText.text = "0%" binding.taskProgressText.text = "0%"
} }
val errMsg = taskBean.errMsg val errMsg = taskBean.errMsg
if(errMsg!=null&&errMsg.isNotEmpty()){ if (errMsg != null && errMsg.isNotEmpty()) {
Toast.makeText(binding.taskProgressText.context,errMsg,Toast.LENGTH_LONG) Toast.makeText(binding.taskProgressText.context, errMsg, Toast.LENGTH_LONG).show()
} }
} }
FileDownloadStatus.IMPORT -> { FileDownloadStatus.IMPORT -> {
if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility = if (binding.taskProgressText.visibility != View.VISIBLE) binding.taskProgressText.visibility =
View.INVISIBLE View.INVISIBLE

View File

@ -6,8 +6,7 @@ import android.text.TextWatcher
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.viewModels import android.widget.Toast
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.navinfo.omqs.databinding.FragmentTaskListBinding import com.navinfo.omqs.databinding.FragmentTaskListBinding
import com.navinfo.omqs.http.taskdownload.TaskDownloadManager import com.navinfo.omqs.http.taskdownload.TaskDownloadManager
@ -35,7 +34,10 @@ class TaskListFragment : BaseFragment() {
private val adapter: TaskListAdapter by lazy { private val adapter: TaskListAdapter by lazy {
TaskListAdapter( TaskListAdapter(
downloadManager, uploadManager downloadManager, uploadManager
) { position, taskBean -> ) { _, taskBean ->
if(taskBean.hadLinkDvoList.isEmpty()){
Toast.makeText(context, "数据错误无Link数据", Toast.LENGTH_SHORT).show()
}
viewModel.setSelectTaskBean(taskBean) viewModel.setSelectTaskBean(taskBean)
} }
} }

View File

@ -19,6 +19,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel
import io.realm.Realm import io.realm.Realm
import kotlinx.coroutines.* import kotlinx.coroutines.*
import javax.inject.Inject import javax.inject.Inject
import kotlin.math.max
@HiltViewModel @HiltViewModel
@ -143,30 +144,37 @@ class TaskViewModel @Inject constructor(
liveDataTaskLinks.value = taskBean.hadLinkDvoList liveDataTaskLinks.value = taskBean.hadLinkDvoList
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mapController.lineHandler.omdbTaskLinkLayer.removeAll() mapController.lineHandler.omdbTaskLinkLayer.removeAll()
mapController.lineHandler.omdbTaskLinkLayer.addLineList(taskBean.hadLinkDvoList) if(taskBean.hadLinkDvoList.isNotEmpty()){
var maxX = 0.0 mapController.lineHandler.omdbTaskLinkLayer.addLineList(taskBean.hadLinkDvoList)
var maxY = 0.0 var maxX = 0.0
var minX = 0.0 var maxY = 0.0
var minY = 0.0 var minX = 0.0
for (item in taskBean.hadLinkDvoList) { var minY = 0.0
val geometry = GeometryTools.createGeometry(item.geometry) for (item in taskBean.hadLinkDvoList) {
val envelope = geometry.envelopeInternal val geometry = GeometryTools.createGeometry(item.geometry)
if (envelope.maxX > maxX) { if(geometry!=null){
maxX = envelope.maxX val envelope = geometry.envelopeInternal
if (envelope.maxX > maxX) {
maxX = envelope.maxX
}
if (envelope.maxY > maxY) {
maxY = envelope.maxY
}
if (envelope.minX < minX || minX == 0.0) {
minX = envelope.minX
}
if (envelope.minY < minY || minY == 0.0) {
minY = envelope.minY
}
}
} }
if (envelope.maxY > maxY) { //增加异常数据判断
maxY = envelope.maxY if(maxX!=0.0&&maxY!=0.0&&minX!=0.0&&minY!=0.0){
} mapController.animationHandler.animateToBox(
if (envelope.minX < minX || minX == 0.0) { maxX = maxX, maxY = maxY, minX = minX, minY = minY
minX = envelope.minX )
}
if (envelope.minY < minY || minY == 0.0) {
minY = envelope.minY
} }
} }
mapController.animationHandler.animateToBox(
maxX = maxX, maxY = maxY, minX = minX, minY = minY
)
} }
} }
@ -177,13 +185,15 @@ class TaskViewModel @Inject constructor(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mapController.lineHandler.omdbTaskLinkLayer.showSelectLine(link) mapController.lineHandler.omdbTaskLinkLayer.showSelectLine(link)
val geometry = GeometryTools.createGeometry(link.geometry) val geometry = GeometryTools.createGeometry(link.geometry)
val envelope = geometry.envelopeInternal if(geometry!=null){
mapController.animationHandler.animateToBox( val envelope = geometry.envelopeInternal
maxX = envelope.maxX, mapController.animationHandler.animateToBox(
maxY = envelope.maxY, maxX = envelope.maxX,
minX = envelope.minX, maxY = envelope.maxY,
minY = envelope.minY minX = envelope.minX,
) minY = envelope.minY
)
}
} }
} }

View File

@ -35,7 +35,7 @@
<com.google.android.material.tabs.TabLayout <com.google.android.material.tabs.TabLayout
android:id="@+id/offline_map_tab_layout" android:id="@+id/offline_map_tab_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="26dp" android:layout_height="@dimen/fragment_tabLayout_height"
android:layout_marginLeft="8dp" android:layout_marginLeft="8dp"
android:layout_marginTop="11dp" android:layout_marginTop="11dp"
android:layout_marginRight="8dp" android:layout_marginRight="8dp"

View File

@ -4,6 +4,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@drawable/shape_rect_white_6dp_bg"
android:padding="@dimen/default_widget_padding" android:padding="@dimen/default_widget_padding"
tools:context=".ui.fragment.offlinemap.OfflineMapCityListFragment"> tools:context=".ui.fragment.offlinemap.OfflineMapCityListFragment">

View File

@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/bg_left_pannel" android:background="@drawable/shape_rect_white_6dp_bg"
tools:context=".ui.fragment.qsrecordlist.QsRecordListFragment"> tools:context=".ui.fragment.qsrecordlist.QsRecordListFragment">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout

View File

@ -34,7 +34,7 @@
<com.google.android.material.tabs.TabLayout <com.google.android.material.tabs.TabLayout
android:id="@+id/task_manager_tab_layout" android:id="@+id/task_manager_tab_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="26dp" android:layout_height="@dimen/fragment_tabLayout_height"
android:layout_marginLeft="8dp" android:layout_marginLeft="8dp"
android:layout_marginTop="11dp" android:layout_marginTop="11dp"
android:layout_marginRight="8dp" android:layout_marginRight="8dp"

View File

@ -40,5 +40,5 @@
<dimen name="main_activity_geometry_w" comment="地图主页坐标框宽度">230dp</dimen> <dimen name="main_activity_geometry_w" comment="地图主页坐标框宽度">230dp</dimen>
<dimen name="main_activity_geometry_h" comment="地图主页坐标框高度">28dp</dimen> <dimen name="main_activity_geometry_h" comment="地图主页坐标框高度">28dp</dimen>
<dimen name="fragment_problem_link_width" comment="问题原因面板宽度">213dp</dimen> <dimen name="fragment_problem_link_width" comment="问题原因面板宽度">213dp</dimen>
<dimen name="fragment_tabLayout_height">32dp</dimen>
</resources> </resources>

View File

@ -84,5 +84,6 @@ class OmdbTaskLinkLayer(map: Map, private var style: Style) : VectorLayer(map) {
} }
lineMap.clear() lineMap.clear()
clearSelectLine() clearSelectLine()
update()
} }
} }