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() {
private var loadingDialog: AlertDialog? = null
override fun onCreate(savedInstanceState: Bundle?) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
super.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
}

View File

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

View File

@ -9,6 +9,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import android.widget.Toast
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@ -40,7 +41,11 @@ class TaskFragment : BaseFragment() {
private val adapter: TaskAdapter by lazy {
TaskAdapter(object : TaskAdapterCallback {
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) {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="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">
<androidx.constraintlayout.widget.ConstraintLayout

View File

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

View File

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

View File

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