修改离线地图下载的按钮状态
修改详细信息面板快捷进入新增数据界面
This commit is contained in:
parent
b9e3e4766e
commit
485c2b4b79
@ -79,7 +79,6 @@ class OfflineMapDownloadManager(
|
||||
}
|
||||
launchNext(id)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -34,7 +34,7 @@ class OfflineMapDownloadScope(
|
||||
/**
|
||||
* 管理观察者,同时只有一个就行了
|
||||
*/
|
||||
private val observer = Observer<Any> {}
|
||||
// private val observer = Observer<Any> {}
|
||||
// private var lifecycleOwner: LifecycleOwner? = null
|
||||
|
||||
/**
|
||||
@ -58,8 +58,14 @@ class OfflineMapDownloadScope(
|
||||
*/
|
||||
fun pause() {
|
||||
downloadJob?.cancel("pause")
|
||||
launch {
|
||||
if (cityBean.fileSize == 0L) {
|
||||
change(FileDownloadStatus.NONE)
|
||||
} else {
|
||||
change(FileDownloadStatus.PAUSE)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动协程进行下载
|
||||
@ -99,7 +105,6 @@ class OfflineMapDownloadScope(
|
||||
* 添加下载任务观察者
|
||||
*/
|
||||
fun observer(owner: LifecycleOwner, ob: Observer<OfflineMapCityBean>) {
|
||||
removeObserver()
|
||||
// this.lifecycleOwner = owner
|
||||
downloadData.observe(owner, ob)
|
||||
}
|
||||
@ -167,11 +172,15 @@ class OfflineMapDownloadScope(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun removeObserver() {
|
||||
downloadData.observeForever(observer)
|
||||
// lifecycleOwner?.let {
|
||||
downloadData.removeObserver(observer)
|
||||
// null
|
||||
// downloadData.observeForever(observer)
|
||||
//// lifecycleOwner?.let {
|
||||
// downloadData.removeObserver(observer)
|
||||
//// null
|
||||
//// }
|
||||
// if (lifecycleOwner != null) {
|
||||
// downloadData.removeObservers(lifecycleOwner!!)
|
||||
// }
|
||||
}
|
||||
}
|
@ -248,10 +248,6 @@ class TaskDownloadScope(
|
||||
//// null
|
||||
//// }
|
||||
if (lifecycleOwner != null) {
|
||||
Log.e(
|
||||
"jingo",
|
||||
"移除的上一个监听者 ${lifecycleOwner.hashCode()} ${(lifecycleOwner as BaseViewHolder).tag}"
|
||||
)
|
||||
downloadData.removeObservers(lifecycleOwner!!)
|
||||
}
|
||||
}
|
||||
|
@ -362,6 +362,7 @@ class LoginViewModel @Inject constructor(
|
||||
.directory(userFolder)
|
||||
.name("OMQS.realm")
|
||||
.encryptionKey(password)
|
||||
.allowQueriesOnUiThread(true)
|
||||
// .modules(Realm.getDefaultModule(), MyRealmModule())
|
||||
.schemaVersion(2)
|
||||
.build()
|
||||
|
@ -174,7 +174,7 @@ class MainViewModel @Inject constructor(
|
||||
*/
|
||||
private var bSelectPauseTrace = false
|
||||
|
||||
private var linkIdCache = ""
|
||||
var linkIdCache = ""
|
||||
|
||||
private var lastNiLocaion: NiLocation? = null
|
||||
|
||||
|
@ -444,10 +444,11 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
*/
|
||||
|
||||
fun initData(id: String) {
|
||||
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
Log.e("jingo", "捕捉到的要素 id = $id")
|
||||
viewModelScope.launch(Dispatchers.Main) {
|
||||
|
||||
val realm = Realm.getDefaultInstance()
|
||||
|
||||
val objects = realm.where(QsRecordBean::class.java).equalTo("id", id).findFirst()
|
||||
Log.e("jingo", "查询数据 id= $id")
|
||||
if (objects != null) {
|
||||
@ -491,10 +492,10 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
} else {
|
||||
liveDataToastMessage.postValue("数据读取失败")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* 查询问题类型列表
|
||||
*/
|
||||
private suspend fun getChatMsgEntityList() {
|
||||
@ -509,9 +510,9 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
listDataChatMsgEntityList.postValue(chatMsgEntityList)
|
||||
}
|
||||
}
|
||||
|
||||
fun addChatMsgEntity(filePath: String) {
|
||||
fun addChatMsgEntity(filePath: String) {
|
||||
|
||||
if (filePath.isNotEmpty()) {
|
||||
var chatMsgEntityList: MutableList<ChatMsgEntity> = ArrayList()
|
||||
@ -539,9 +540,9 @@ fun addChatMsgEntity(filePath: String) {
|
||||
|
||||
listDataChatMsgEntityList.postValue(chatMsgEntityList)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun startSoundMetter(activity: Activity, v: View) {
|
||||
fun startSoundMetter(activity: Activity, v: View) {
|
||||
|
||||
if (mSpeakMode == null) {
|
||||
mSpeakMode = SpeakMode(activity)
|
||||
@ -602,11 +603,11 @@ fun startSoundMetter(activity: Activity, v: View) {
|
||||
mSoundMeter!!.start(Constant.USER_DATA_ATTACHEMNT_PATH + name)
|
||||
ToastUtils.showLong("开始录音")
|
||||
mSpeakMode!!.speakText("开始录音")
|
||||
}
|
||||
}
|
||||
|
||||
//停止语音录制
|
||||
@RequiresApi(api = Build.VERSION_CODES.Q)
|
||||
fun stopSoundMeter() {
|
||||
//停止语音录制
|
||||
@RequiresApi(api = Build.VERSION_CODES.Q)
|
||||
fun stopSoundMeter() {
|
||||
//先重置标识,防止按钮抬起时触发语音结束
|
||||
Constant.IS_VIDEO_SPEED = false
|
||||
if (mSoundMeter != null && mSoundMeter!!.isStartSound) {
|
||||
@ -617,10 +618,10 @@ fun stopSoundMeter() {
|
||||
it.dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun savePhoto(bitmap: Bitmap) {
|
||||
fun savePhoto(bitmap: Bitmap) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
// 创建一个名为 "MyApp" 的文件夹
|
||||
val myAppDir = File(Constant.USER_DATA_ATTACHEMNT_PATH)
|
||||
@ -661,5 +662,5 @@ fun savePhoto(bitmap: Bitmap) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -5,6 +5,7 @@ import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.Observer
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.databinding.AdapterOfflineMapCityBinding
|
||||
@ -14,6 +15,7 @@ import com.navinfo.omqs.tools.FileManager
|
||||
import com.navinfo.omqs.tools.FileManager.Companion.FileDownloadStatus
|
||||
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
|
||||
import com.navinfo.omqs.ui.other.BaseViewHolder
|
||||
import com.navinfo.omqs.ui.other.OnLifecycleStateListener
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
@ -68,7 +70,26 @@ class OfflineMapCityListAdapter(
|
||||
|
||||
changeViews(binding, cityBean)
|
||||
downloadManager.addTask(cityBean)
|
||||
downloadManager.observer(cityBean.id, holder, DownloadObserver(cityBean.id, holder))
|
||||
|
||||
holder.addObserver(object : OnLifecycleStateListener {
|
||||
override fun onState(tag: String, state: Lifecycle.State) {
|
||||
when (state) {
|
||||
Lifecycle.State.STARTED -> {
|
||||
downloadManager.observer(
|
||||
cityBean.id,
|
||||
holder,
|
||||
DownloadObserver(cityBean.id, holder)
|
||||
)
|
||||
}
|
||||
Lifecycle.State.DESTROYED -> {
|
||||
downloadManager.removeObserver(cityBean.id)
|
||||
}
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
binding.offlineMapDownloadBtn.tag = position
|
||||
binding.offlineMapDownloadBtn.setOnClickListener(downloadBtnClick)
|
||||
binding.offlineMapCityName.text = cityBean.name
|
||||
|
@ -51,6 +51,23 @@ class OfflineMapCityListFragment : Fragment() {
|
||||
viewModel.cityListLiveData.observe(viewLifecycleOwner) {
|
||||
adapter.refreshData(it)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
viewModel.getCityList()
|
||||
}
|
||||
|
||||
|
@ -54,6 +54,18 @@ class OfflineMapStateListFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
|
@ -29,12 +29,7 @@ class OfflineMapStateListViewModel @Inject constructor(
|
||||
fun getCityList() {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val list = roomDatabase.getOfflineMapDao().getOfflineMapListWithOutNone()
|
||||
if (cityListLiveData.value != null) {
|
||||
if (cityListLiveData.value!!.size != list.size)
|
||||
cityListLiveData.postValue(list)
|
||||
}else{
|
||||
cityListLiveData.postValue(list)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -5,8 +5,11 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.navinfo.collect.library.data.entity.RenderEntity
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.bean.SignBean
|
||||
import com.navinfo.omqs.databinding.FragmentSignInfoBinding
|
||||
import com.navinfo.omqs.ui.activity.map.MainViewModel
|
||||
import com.navinfo.omqs.ui.fragment.BaseFragment
|
||||
@ -53,7 +56,7 @@ class SignMoreInfoFragment : BaseFragment() {
|
||||
adapter.refreshData(SignUtil.getRoadNameList(it))
|
||||
}
|
||||
//常规点限速
|
||||
4002->{
|
||||
4002 -> {
|
||||
val adapter = ElectronicEyeInfoAdapter()
|
||||
binding.signInfoRecyclerview.adapter = adapter
|
||||
adapter.refreshData(SignUtil.getSpeedLimitMoreInfoText(it))
|
||||
@ -91,6 +94,33 @@ class SignMoreInfoFragment : BaseFragment() {
|
||||
.commit()
|
||||
}
|
||||
}
|
||||
binding.signInfoTitle.setOnClickListener {
|
||||
activity?.run {
|
||||
val rightController = findNavController(R.id.main_activity_right_fragment)
|
||||
rightController.currentDestination?.let {
|
||||
if (it.id == R.id.RightEmptyFragment) {
|
||||
val bundle = Bundle()
|
||||
val element = viewModel.liveDataSignMoreInfo.value
|
||||
if (element != null) {
|
||||
val signBean = SignBean(
|
||||
iconId = SignUtil.getSignIcon(element),
|
||||
iconText = SignUtil.getSignIconText(element),
|
||||
linkId = element.properties[RenderEntity.Companion.LinkTable.linkPid]
|
||||
?: "",
|
||||
name = SignUtil.getSignNameText(element),
|
||||
bottomRightText = SignUtil.getSignBottomRightText(element),
|
||||
renderEntity = element,
|
||||
isMoreInfo = SignUtil.isMoreInfo(element),
|
||||
index = SignUtil.getRoadInfoIndex(element)
|
||||
)
|
||||
bundle.putParcelable("SignBean", signBean)
|
||||
bundle.putBoolean("AutoSave", false)
|
||||
rightController.navigate(R.id.EvaluationResultFragment, bundle)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.navinfo.omqs.ui.other
|
||||
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
|
@ -604,11 +604,10 @@ public final class NIMapView extends RelativeLayout {
|
||||
BASE(0)/*底图图层组*/,
|
||||
VECTOR_TILE(1)/*矢量瓦片组*/,
|
||||
VECTOR(2)/*高亮组*/,
|
||||
OPERATE_LINE(3)/*操作图层组*/,
|
||||
OPERATE_MARKER(4)/*操作图层组*/,
|
||||
NAVIGATION(5)/*定位导航组*/,
|
||||
LABEL(6)/*图标,文字图层*/;
|
||||
|
||||
NAVIGATION(3)/*定位导航组*/,
|
||||
LABEL(4)/*图标,文字图层*/,
|
||||
OPERATE_LINE(5)/*操作图层组*/,
|
||||
OPERATE_MARKER(6)/*操作图层组*/;
|
||||
int groupIndex;
|
||||
|
||||
LAYER_GROUPS(int groupIndex) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user