fix: 合并代码

This commit is contained in:
xiaoyan 2023-06-02 14:16:30 +08:00
commit 3d4b9ce78d
14 changed files with 155 additions and 83 deletions

View File

@ -76,7 +76,7 @@ class LoginViewModel @Inject constructor(
var jobLogin: Job? = null; var jobLogin: Job? = null;
init { init {
loginUser.value = LoginUserBean(userCode = "02911", passWord = "123456") loginUser.value = LoginUserBean(userCode = "haofuyue00213", passWord = "123456")
} }

View File

@ -75,11 +75,12 @@ class MainActivity : BaseActivity() {
* 提前显示要素看板 * 提前显示要素看板
*/ */
private val signAdapter by lazy { private val signAdapter by lazy {
SignAdapter { position, signBean -> SignAdapter { position, autoSave,signBean ->
rightController.currentDestination?.let { rightController.currentDestination?.let {
if (it.id == R.id.RightEmptyFragment) { if (it.id == R.id.RightEmptyFragment) {
val bundle = Bundle() val bundle = Bundle()
bundle.putParcelable("SignBean", signBean) bundle.putParcelable("SignBean", signBean)
bundle.putBoolean("AutoSave", autoSave)
rightController.navigate(R.id.EvaluationResultFragment, bundle) rightController.navigate(R.id.EvaluationResultFragment, bundle)
} }
} }
@ -253,7 +254,7 @@ class MainActivity : BaseActivity() {
//开启定位 //开启定位
mapController.locationLayerHandler.startLocation() mapController.locationLayerHandler.startLocation()
mapController.mMapView.setLogoVisable(View.GONE)
//启动轨迹存储 //启动轨迹存储
// viewModel.startSaveTraceThread(this) // viewModel.startSaveTraceThread(this)

View File

@ -85,6 +85,7 @@ class MainViewModel @Inject constructor(
//录音图标 //录音图标
var volume: ImageView? = null var volume: ImageView? = null
var mSoundMeter: SoundMeter? = null var mSoundMeter: SoundMeter? = null
var menuState: Boolean = false var menuState: Boolean = false
@ -98,6 +99,8 @@ class MainViewModel @Inject constructor(
*/ */
private var bSelectRoad = false private var bSelectRoad = false
private var linkIdCache = ""
init { init {
mapController.mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition -> mapController.mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition ->
when (e) { when (e) {
@ -210,80 +213,92 @@ class MainViewModel @Inject constructor(
val linkList = realmOperateHelper.queryLink( val linkList = realmOperateHelper.queryLink(
point = point, point = point,
) )
//看板数据
val signList = mutableListOf<SignBean>()
val topSignList = mutableListOf<SignBean>()
mapController.lineHandler.linksLayer.clear()
if (linkList.isNotEmpty()) { if (linkList.isNotEmpty()) {
//看板数据
val signList = mutableListOf<SignBean>()
val topSignList = mutableListOf<SignBean>()
mapController.lineHandler.linksLayer.clear()
val link = linkList[0] val link = linkList[0]
val linkId = link.properties[RenderEntity.Companion.LinkTable.linkPid] val linkId = link.properties[RenderEntity.Companion.LinkTable.linkPid]
Log.e("jingo", "捕捉到的linkid $linkId ${link.geometry}")
mapController.lineHandler.showLine(link.geometry)
linkId?.let {
var elementList = realmOperateHelper.queryLinkByLinkPid(it)
for (element in elementList) {
val distance = GeometryTools.distanceToDouble(
point, GeometryTools.createGeoPoint(element.geometry)
)
val signBean = SignBean( if(linkIdCache!=linkId){
iconId = SignUtil.getSignIcon(element),
iconText = SignUtil.getSignIconText(element),
distance = distance.toInt(),
elementId = element.id,
linkId = linkId,
geometry = element.geometry,
name = SignUtil.getSignNameText(element),
bottomRightText = SignUtil.getSignBottomRightText(element),
elementCode = element.code
)
when (element.code) { Log.e("jingo", "捕捉到的linkid $linkId ${link.geometry}")
2002, 2008, 2010, 2041 -> topSignList.add( mapController.lineHandler.showLine(link.geometry)
signBean linkId?.let {
var elementList = realmOperateHelper.queryLinkByLinkPid(it)
for (element in elementList) {
val distance = GeometryTools.distanceToDouble(
point, GeometryTools.createGeoPoint(element.geometry)
) )
4002, 4003, 4004, 4022 -> signList.add(
signBean val signBean = SignBean(
iconId = SignUtil.getSignIcon(element),
iconText = SignUtil.getSignIconText(element),
distance = distance.toInt(),
elementId = element.id,
linkId = linkId,
geometry = element.geometry,
name = SignUtil.getSignNameText(element),
bottomRightText = SignUtil.getSignBottomRightText(element),
elementCode = element.code
) )
when (element.code) {
2002, 2008, 2010, 2041 -> topSignList.add(
signBean
)
4002, 4003, 4004, 4022 -> signList.add(
signBean
)
}
} }
} val realm = Realm.getDefaultInstance()
val entity = realm.where(RenderEntity::class.java)
val realm = Realm.getDefaultInstance() .equalTo("table", "OMDB_RESTRICTION")
val entity = realm.where(RenderEntity::class.java)
.equalTo("table", "OMDB_RESTRICTION")
.and()
.equalTo(
"properties['linkIn']",
it
).findFirst()
if (entity != null) {
val outLink = entity.properties["linkOut"]
val linkOutEntity = realm.where(RenderEntity::class.java)
.equalTo("table", "OMDB_RD_LINK")
.and() .and()
.equalTo( .equalTo(
"properties['${RenderEntity.Companion.LinkTable.linkPid}']", "properties['linkIn']",
outLink it
).findFirst() ).findFirst()
if (linkOutEntity != null) { if (entity != null) {
mapController.lineHandler.linksLayer.addLine( val outLink = entity.properties["linkOut"]
linkOutEntity.geometry, val linkOutEntity = realm.where(RenderEntity::class.java)
0x7DFF0000 .equalTo("table", "OMDB_RD_LINK")
) .and()
Log.e("jingo", "捕捉到的linkid $outLink ${linkOutEntity.geometry}") .equalTo(
"properties['${RenderEntity.Companion.LinkTable.linkPid}']",
outLink
).findFirst()
if (linkOutEntity != null) {
mapController.lineHandler.linksLayer.addLine(
linkOutEntity.geometry,
0x7DFF0000
)
Log.e("jingo", "捕捉到的linkid $outLink ${linkOutEntity.geometry}")
}
} }
} }
liveDataTopSignList.postValue(topSignList.distinctBy { it.elementCode })
liveDataSignList.postValue(signList.distinctBy { it.elementCode })
val speechText = SignUtil.getRoadSpeechText(topSignList)
withContext(Dispatchers.Main) {
speakMode?.speakText(speechText)
}
} }
linkIdCache = linkId ?: ""
Log.e("jingo", "自动捕捉数据 共${signList.size}")
}else{
ToastUtils.showLong("未捕捉到数据")
} }
liveDataTopSignList.postValue(topSignList.distinctBy { it.elementCode })
liveDataSignList.postValue(signList.distinctBy { it.elementCode })
val speechText = SignUtil.getRoadSpeechText(topSignList)
withContext(Dispatchers.Main) {
speakMode?.speakText(speechText)
}
Log.e("jingo", "自动捕捉数据 共${signList.size}")
} }
} }
@ -483,6 +498,8 @@ class MainViewModel @Inject constructor(
*/ */
fun setSelectRoad(select: Boolean) { fun setSelectRoad(select: Boolean) {
bSelectRoad = select bSelectRoad = select
//去掉缓存
linkIdCache = ""
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mapController.lineHandler.removeLine() mapController.lineHandler.removeLine()
liveDataSignList.value = mutableListOf() liveDataSignList.value = mutableListOf()

View File

@ -8,7 +8,7 @@ import com.navinfo.omqs.databinding.AdapterSignBinding
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
import com.navinfo.omqs.ui.other.BaseViewHolder import com.navinfo.omqs.ui.other.BaseViewHolder
class SignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null) : class SignAdapter(private var itemListener: ((Int, Boolean, SignBean) -> Unit?)? = null) :
BaseRecyclerViewAdapter<SignBean>() { BaseRecyclerViewAdapter<SignBean>() {
override fun getItemViewRes(position: Int): Int { override fun getItemViewRes(position: Int): Int {
return R.layout.adapter_sign return R.layout.adapter_sign
@ -27,9 +27,12 @@ class SignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null)
bd.signMainIconBg.setImageResource(item.iconId) bd.signMainIconBg.setImageResource(item.iconId)
bd.signMainIcon.text = item.iconText bd.signMainIcon.text = item.iconText
bd.signBottomText.text = item.name bd.signBottomText.text = item.name
bd.signMainFastError.setOnClickListener{
itemListener?.invoke(position, true,item)
}
bd.signBottomRightText.text = item.bottomRightText bd.signBottomRightText.text = item.bottomRightText
bd.root.setOnClickListener { bd.root.setOnClickListener {
itemListener?.invoke(position, item) itemListener?.invoke(position, false,item)
} }
} }
} }

View File

@ -102,12 +102,18 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
voiceOnTouchStart()//Do Something voiceOnTouchStart()//Do Something
Log.e("qj", "voiceOnTouchStart") Log.e("qj", "voiceOnTouchStart")
} }
MotionEvent.ACTION_UP -> { MotionEvent.ACTION_UP -> {
voiceOnTouchStop()//Do Something voiceOnTouchStop()//Do Something
Log.e("qj", "voiceOnTouchStop") Log.e("qj", "ACTION_UP")
}
MotionEvent.ACTION_CANCEL -> {
voiceOnTouchStop()//Do Something
Log.e("qj", "ACTION_CANCEL")
} }
} }
return v?.onTouchEvent(event) ?: true return true
} }
}) })
@ -117,18 +123,26 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
// val id = args.qsId // val id = args.qsId
var id = "" var id = ""
var signBean: SignBean? = null var signBean: SignBean? = null
var autoSave: Boolean = false
var filePath: String = "" var filePath: String = ""
arguments?.let { arguments?.let {
id = it.getString("QsId", "") id = it.getString("QsId", "")
filePath = it.getString("filePath", "") filePath = it.getString("filePath", "")
try { try {
signBean = it.getParcelable("SignBean") signBean = it.getParcelable("SignBean")
autoSave = it.getBoolean("AutoSave")
} catch (e: java.lang.Exception) { } catch (e: java.lang.Exception) {
} }
} }
if (id == null || id.isEmpty()) { if (id == null || id.isEmpty()) {
viewModel.initNewData(signBean, filePath) viewModel.initNewData(signBean, filePath)
//增加监听,联动列表自动保存
viewModel.liveDataRightTypeList.observe(viewLifecycleOwner) {
if (autoSave) {
viewModel.saveData()
}
}
} else { } else {
viewModel.initData(id) viewModel.initData(id)
} }
@ -288,6 +302,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
} }
} }
else -> {} else -> {}
} }
} }
@ -299,6 +314,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
@RequiresApi(Build.VERSION_CODES.Q) @RequiresApi(Build.VERSION_CODES.Q)
fun voiceOnTouchStop() { fun voiceOnTouchStop() {
Log.e("qj", "voiceOnTouchStop====${Constant.IS_VIDEO_SPEED}")
if (Constant.IS_VIDEO_SPEED) { if (Constant.IS_VIDEO_SPEED) {
viewModel.stopSoundMeter() viewModel.stopSoundMeter()
} }

View File

@ -34,8 +34,12 @@ import com.navinfo.omqs.util.DateTimeUtil
import com.navinfo.omqs.util.SoundMeter import com.navinfo.omqs.util.SoundMeter
import com.navinfo.omqs.util.SpeakMode import com.navinfo.omqs.util.SpeakMode
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import io.realm.OrderedCollectionChangeSet
import io.realm.Realm import io.realm.Realm
import io.realm.RealmList import io.realm.RealmList
import io.realm.RealmModel
import io.realm.RealmResults
import io.realm.kotlin.addChangeListener
import io.realm.kotlin.where import io.realm.kotlin.where
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -359,28 +363,35 @@ class EvaluationResultViewModel @Inject constructor(
fun initData(id: String) { fun initData(id: String) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance()
val objects = realm.where<QsRecordBean>().equalTo("id", id).findFirst()
if (objects != null) { Realm.getDefaultInstance().use { realm ->
oldBean = realm.copyFromRealm(objects) realm.executeTransactionAsync { bgRealm ->
oldBean?.let { // find the item
liveDataQsRecordBean.postValue(it.copy()) val objects = bgRealm.where(QsRecordBean::class.java).equalTo("id", id).findFirst()
val p = GeometryTools.createGeoPoint(it.geometry) if (objects != null) {
mapController.markerHandle.addMarker( oldBean = bgRealm.copyFromRealm(objects)
GeoPoint(p.latitude, p.longitude), markerTitle oldBean?.let {
) liveDataQsRecordBean.postValue(it.copy())
val p = GeometryTools.createGeoPoint(it.geometry)
mapController.markerHandle.addMarker(GeoPoint(p.latitude, p.longitude), markerTitle)
if (it.linkId.isNotEmpty()) { //获取linkid
val link = realmOperateHelper.queryLink(it.linkId) if (it.linkId.isNotEmpty()) {
link?.let { l -> viewModelScope.launch(Dispatchers.IO) {
mapController.lineHandler.showLine(l.geometry) val link = realmOperateHelper.queryLink(it.linkId)
link?.let { l ->
mapController.lineHandler.showLine(l.geometry)
}
}
}
liveDataQsRecordBean.value?.attachmentBeanList = it.attachmentBeanList
// 显示语音数据到界面
getChatMsgEntityList()
} }
} }
} }
// 显示语音数据到界面
getChatMsgEntityList()
} }
} }
} }

View File

@ -111,7 +111,7 @@ class PersonalCenterFragment : BaseFragment(), FSAFActivityCallbacks {
viewModel.readRealmData() viewModel.readRealmData()
// 定位到指定位置 // 定位到指定位置
niMapController.mMapView.vtmMap.animator() niMapController.mMapView.vtmMap.animator()
.animateTo(GeoPoint(40.03342017243118, 116.3211538409127 )) .animateTo(GeoPoint(40.031657799200346, 116.32207834810715 ))
} }
R.id.personal_center_menu_task_list -> { R.id.personal_center_menu_task_list -> {
findNavController().navigate(R.id.TaskManagerFragment) findNavController().navigate(R.id.TaskManagerFragment)

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

View File

@ -117,6 +117,8 @@
tools:ignore="TouchTargetSizeCheck" /> tools:ignore="TouchTargetSizeCheck" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<TextView <TextView
android:id="@+id/tv_login_forget_passwd" android:id="@+id/tv_login_forget_passwd"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -47,4 +47,15 @@
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_marginRight="15dp" android:layout_marginRight="15dp"
android:textSize="14sp"/> android:textSize="14sp"/>
<ImageView
android:id="@+id/sign_main_fast_error"
android:layout_marginRight="4dp"
android:layout_marginTop="4dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/icon_evaluation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout> </RelativeLayout>

View File

@ -1,5 +1,5 @@
<resources> <resources>
<dimen name="fab_margin">200dp</dimen> <dimen name="fab_margin">48dp</dimen>
<dimen name="top_right_drawer_btns_wh" comment="地图主页右上角抽屉按钮的大小">54dp</dimen> <dimen name="top_right_drawer_btns_wh" comment="地图主页右上角抽屉按钮的大小">54dp</dimen>
<dimen name="top_right_drawer_wh" comment="地图主页右上角抽屉的把手按钮的大小">42dp</dimen> <dimen name="top_right_drawer_wh" comment="地图主页右上角抽屉的把手按钮的大小">42dp</dimen>
<dimen name="top_right_drawer_btns_mr" comment="地图主页右上角抽屉按钮距离右侧间距">44dp</dimen> <dimen name="top_right_drawer_btns_mr" comment="地图主页右上角抽屉按钮距离右侧间距">44dp</dimen>

View File

@ -1743,7 +1743,7 @@
<m v="2"> <m v="2">
<m k="markColor"> <m k="markColor">
<m v="0|1"> <m v="0|1">
<line stroke="#ffffff" use="boundaryType" dasharray="3,3"/> <line stroke="#ffffff" use="boundaryType" dasharray="3,13"/>
</m> </m>
<m v="2"> <m v="2">
<line stroke="#eccc68" use="boundaryType" dasharray="3,3"/> <line stroke="#eccc68" use="boundaryType" dasharray="3,3"/>

View File

@ -800,6 +800,17 @@ public final class NIMapView extends RelativeLayout {
} }
} }
/**
* 设置logo显隐
*
* @param position 按钮位置
*/
public void setLogoVisable(int visable) {
if (logoImage != null) {
logoImage.setVisibility(visable);
}
}
/** /**
* 设置缩放按钮位置 * 设置缩放按钮位置
* *