fix: 合并代码

This commit is contained in:
2023-04-25 15:40:23 +08:00
34 changed files with 560 additions and 188 deletions

View File

@@ -3,38 +3,24 @@ package com.navinfo.omqs.ui.fragment.personalcenter
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import com.blankj.utilcode.util.UriUtils
import com.github.k1rakishou.fsaf.FileChooser
import com.github.k1rakishou.fsaf.callback.FSAFActivityCallbacks
import com.github.k1rakishou.fsaf.callback.FileChooserCallback
import com.navinfo.collect.library.data.RealmUtils
import com.navinfo.collect.library.data.entity.OMDBEntity
import com.navinfo.collect.library.map.NIMapController
import com.navinfo.omqs.R
import com.navinfo.omqs.databinding.FragmentPersonalCenterBinding
import com.navinfo.omqs.db.ImportOMDBHelper
import com.navinfo.omqs.hilt.ImportOMDBHiltFactory
import com.navinfo.omqs.tools.CoroutineUtils
import com.navinfo.omqs.ui.activity.BaseActivity
import com.navinfo.omqs.ui.fragment.BaseFragment
import dagger.hilt.android.AndroidEntryPoint
import io.realm.Realm
import io.realm.RealmDictionary
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.FlowCollector
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.oscim.core.GeoPoint
import java.io.File
import java.util.UUID
import javax.inject.Inject
/**

View File

@@ -28,6 +28,7 @@ class QsRecordListAdapter(
private val context: Context
) : BaseRecyclerViewAdapter<QsRecordBean>() {
private var itemClickListener: IKotlinItemClickListener? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder {
val viewBinding =
@@ -46,6 +47,10 @@ class QsRecordListAdapter(
val qsRecordBean = data[position]
//tag 方便onclick里拿到数据
holder.tag = qsRecordBean.id.toString()
// 点击事件
holder.itemView.setOnClickListener {
itemClickListener!!.onItemClickListener(position)
}
changeViews(binding, qsRecordBean)
}
@@ -59,6 +64,16 @@ class QsRecordListAdapter(
override fun getItemViewRes(position: Int): Int {
return R.layout.adapter_qs_record_list
}
// 提供set方法
fun setOnKotlinItemClickListener(itemClickListener: IKotlinItemClickListener) {
this.itemClickListener = itemClickListener
}
//自定义接口
interface IKotlinItemClickListener {
fun onItemClickListener(position: Int)
}
}

View File

@@ -5,13 +5,17 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView.VERTICAL
import com.blankj.utilcode.util.ToastUtils
import com.navinfo.omqs.R
import com.navinfo.omqs.databinding.FragmentQsRecordListBinding
import com.navinfo.omqs.ui.activity.map.MainActivity
import com.navinfo.omqs.ui.fragment.BaseFragment
import com.navinfo.omqs.ui.fragment.tasklist.QsRecordListAdapter
import com.navinfo.omqs.ui.other.BaseToast.makeText
import com.navinfo.omqs.ui.widget.RecycleViewDivider
import dagger.hilt.android.AndroidEntryPoint
import org.apache.poi.xwpf.usermodel.VerticalAlign
@@ -51,6 +55,18 @@ class QsRecordListFragment : BaseFragment(){
itemDecoration.setDrawable(resources.getDrawable(R.drawable.separator))
binding.qsRecyclerview.addItemDecoration(itemDecoration)
viewModel.getList(requireContext())
// itemClick
adapter!!.setOnKotlinItemClickListener(object : QsRecordListAdapter.IKotlinItemClickListener {
override fun onItemClickListener(position: Int) {
viewModel.onItemClickListener(activity as MainActivity,position)
findNavController().popBackStack()
}
})
}
override fun onResume() {
super.onResume()
viewModel.getList(requireContext())
}
override fun onDestroyView() {

View File

@@ -1,11 +1,16 @@
package com.navinfo.omqs.ui.fragment.qsrecordlist
import android.content.Context
import android.os.Bundle
import android.util.Log
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.QsRecordBean
import com.navinfo.omqs.R
import com.navinfo.omqs.ui.activity.map.MainActivity
import dagger.hilt.android.lifecycle.HiltViewModel
import io.realm.Realm
import kotlinx.coroutines.Dispatchers
@@ -27,4 +32,11 @@ class QsRecordListViewModel @Inject constructor(
}
}
fun onItemClickListener(activity: MainActivity, position :Int){
val naviController = activity.findNavController(R.id.main_activity_right_fragment)
val bundle = Bundle()
bundle.putString("QsId", liveDataQSList.value?.get(position)?.id)
naviController.navigate(R.id.EvaluationResultFragment, bundle)
ToastUtils.showLong(liveDataQSList.value?.get(position)?.classType)
}
}

View File

@@ -13,6 +13,8 @@ import com.navinfo.omqs.http.taskdownload.TaskDownloadManager
import com.navinfo.omqs.tools.FileManager.Companion.FileDownloadStatus
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
import com.navinfo.omqs.ui.other.BaseViewHolder
import java.io.File
import javax.inject.Inject
/**
* 离线地图城市列表 RecyclerView 适配器
@@ -31,7 +33,7 @@ class TaskListAdapter(
if (it.tag != null) {
val taskBean = data[it.tag as Int]
when (taskBean.status) {
FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.ERROR -> {
FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.IMPORT, FileDownloadStatus.ERROR -> {
Log.e("jingo", "开始下载 ${taskBean.status}")
downloadManager.start(taskBean.id)
}
@@ -125,6 +127,29 @@ class TaskListAdapter(
View.INVISIBLE
binding.taskDownloadBtn.text = "更新"
}
FileDownloadStatus.IMPORTING -> {
if (binding.taskProgress.visibility != View.VISIBLE) binding.taskProgress.visibility =
View.VISIBLE
binding.taskDownloadBtn.text = "安装中"
val split = taskBean.message.split("/")
if (split.size == 2) {
try {
val index = split[0].toInt()
val count = split[1].toInt()
binding.taskProgress.progress =
index * 100 / count
} catch (e: Exception) {
Log.e("jingo", "更新进度条 $e")
}
} else {
binding.taskProgress.progress = 0
}
}
FileDownloadStatus.IMPORT -> {
if (binding.taskProgress.visibility != View.VISIBLE) binding.taskProgress.visibility =
View.INVISIBLE
binding.taskDownloadBtn.text = "安装"
}
}
}

View File

@@ -30,6 +30,7 @@ class TaskListFragment : BaseFragment(){
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
downloadManager.init(requireContext())
_binding = FragmentTaskListBinding.inflate(inflater, container, false)
return binding.root

View File

@@ -27,12 +27,28 @@ class TaskListViewModel @Inject constructor(
fun getTaskList(context: Context) {
viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance()
Log.e("jingo","realm hashCOde ${realm.hashCode()}")
Log.e("jingo", "realm hashCOde ${realm.hashCode()}")
var taskList: List<TaskBean> = mutableListOf()
when (val result = networkService.getTaskList("02911")) {
is NetResult.Success -> {
if (result.data != null) {
realm.executeTransaction {
realm.copyToRealmOrUpdate(result.data.obj)
result.data.obj?.let { list ->
for (task in list) {
val item = realm.where(TaskBean::class.java).equalTo(
"id", task.id
).findFirst()
if (item != null) {
task.fileSize = item.fileSize
Log.e("jingo", "当前文件大小 ${task.fileSize}")
task.status = item.status
task.currentSize = item.currentSize
}
realm.copyToRealmOrUpdate(task)
}
}
val objects = realm.where(TaskBean::class.java).findAll()
taskList = realm.copyFromRealm(objects)
}
}
}
@@ -51,9 +67,8 @@ class TaskListViewModel @Inject constructor(
is NetResult.Loading -> {}
else -> {}
}
val objects = realm.where(TaskBean::class.java).findAll()
val taskList = realm.copyFromRealm(objects)
for(item in taskList){
for (item in taskList) {
FileManager.checkOMDBFileInfo(item)
}
liveDataTaskList.postValue(taskList)