diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/BaseActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/BaseActivity.kt index 7cd9155e..53b9439f 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/BaseActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/BaseActivity.kt @@ -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; } 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 5a130f78..010f9b91 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 @@ -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() -// } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskFragment.kt index e7d00a93..502b8ae3 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskFragment.kt @@ -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) { diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt index 30032f5b..9530ea95 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt @@ -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 diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListFragment.kt index fc9c5780..7670904d 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListFragment.kt @@ -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) } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt index d166ce76..3bf42632 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt @@ -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 + ) + } } } diff --git a/app/src/main/res/layout/fragment_offline_map.xml b/app/src/main/res/layout/fragment_offline_map.xml index 16aef497..7b0bed8c 100644 --- a/app/src/main/res/layout/fragment_offline_map.xml +++ b/app/src/main/res/layout/fragment_offline_map.xml @@ -35,7 +35,7 @@ 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 863b4fb0..8d22ee53 100644 --- a/app/src/main/res/layout/fragment_qs_record_list.xml +++ b/app/src/main/res/layout/fragment_qs_record_list.xml @@ -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"> 230dp 28dp 213dp - + 32dp \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/layers/OmdbTaskLinkLayer.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/layers/OmdbTaskLinkLayer.kt index ba4ed19b..731a4570 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/layers/OmdbTaskLinkLayer.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/layers/OmdbTaskLinkLayer.kt @@ -84,5 +84,6 @@ class OmdbTaskLinkLayer(map: Map, private var style: Style) : VectorLayer(map) { } lineMap.clear() clearSelectLine() + update() } } \ No newline at end of file