From acd8251801cdcf3d0a6ea4cd4c8e6d3de4416321 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 23 Dec 2024 14:46:37 +0800 Subject: [PATCH 01/23] =?UTF-8?q?[6.8.4]=20[fix]=20[=E7=AB=99=E7=82=B9?= =?UTF-8?q?=E9=87=8D=E5=A4=8D]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/bridge/autopilot/line/LineManager.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt index 7f99955966..859578973f 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt @@ -85,7 +85,10 @@ object LineManager : CallerBase() { M_LISTENERS.forEach { it.value.onAutopilotIdChange(oldValue,newValue) } - if(!AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)&&!AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)){ + if(!AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)&& + !AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)&& + !AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode) + ){ val (start, end) = getStations() if(start!=null&&end!=null){ val ochInfo = OchInfo(0, mutableListOf(start.toMogoLocation(), end.toMogoLocation())) From 63749d3389e0a10d50a81f2f9ae2ef5d3920a8b7 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 23 Dec 2024 15:34:33 +0800 Subject: [PATCH 02/23] =?UTF-8?q?[6.8.4][Fix]=E8=A7=A3=E5=86=B3=E8=B5=B7?= =?UTF-8?q?=E7=BB=88=E7=82=B9=E6=9C=AA=E6=B8=85=E9=99=A4=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/eagle/core/function/view/TravelRealityView.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt index 9ac91e447f..10504d899b 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt @@ -1861,6 +1861,9 @@ class TravelRealityView @JvmOverloads constructor( clearSmallSites() } else { UiThreadHandler.post { + smallSiteMarkerList?.forEach { + it.destroy() + } smallSiteMarkerList = mAMap?.addMarkers(markerOptionsList, false) } } From d79a22d8a17cb3d056a99bf9e788bb301874c543 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 24 Dec 2024 10:39:22 +0800 Subject: [PATCH 03/23] =?UTF-8?q?[6.9.0]=20[fea]=20[tts=20=E6=96=87?= =?UTF-8?q?=E6=A1=88=E4=BF=AE=E6=94=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/common/module/utils/OchPhoneUtil.kt | 25 ++++++++++++++ .../com/mogo/och/weaknet/model/TicketModel.kt | 33 +++++++------------ .../weaknet/passenger/model/TicketModel.kt | 3 +- .../eagle/core/data/enums/EventTypeEnumNew.kt | 2 +- 4 files changed, 40 insertions(+), 23 deletions(-) create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/utils/OchPhoneUtil.kt diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/OchPhoneUtil.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/OchPhoneUtil.kt new file mode 100644 index 0000000000..8b7fa0e8bc --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/OchPhoneUtil.kt @@ -0,0 +1,25 @@ +package com.mogo.och.common.module.utils + +import com.mogo.eagle.core.utilcode.util.RegexUtils + +object OchPhoneUtil { + /** + * 获取脱敏手机号 + */ + fun getPhoneWithoutMiddle(phone:String?): String { + if (!RegexUtils.isMobileExact(phone)) { + return phone?:"" + } + var tempPhone = phone + tempPhone?.let { + if (it.length > 8) { + //截取电话号码前三位 + val phoneNumPre = it.substring(0, 3) + //截取电话号码后四位 + val phoneNumFix = it.substring(7) + tempPhone = "$phoneNumPre****$phoneNumFix" + } + } + return tempPhone?:"" + } +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt index 51ad5a56f2..c892957e6c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt @@ -24,8 +24,7 @@ import com.mogo.och.common.module.manager.socket.lan.LanSocketManager import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffResultMsg -import com.mogo.och.common.module.network.OchCommonServiceCallback -import com.mogo.och.weaknet.bean.response.WriteOffCountResponse +import com.mogo.och.common.module.utils.OchPhoneUtil import com.mogo.och.weaknet.bean.WriteOffPassenger import com.mogo.och.weaknet.repository.RepositoryManager import com.mogo.och.weaknet.repository.exception.DataException @@ -203,16 +202,16 @@ object TicketModel { */ private fun parseData(code:Int,msg:String,phone: String,orderNo: String){ when (code) { - 1009 -> sendMessage2Driver("车票所选乘车日期非今日", phone,1009,orderNo) - 1005 -> sendMessage2Driver("车辆未登录、或没有任务", phone,1005,orderNo) - 1006 -> sendMessage2Driver("车票路线信息与当前车辆执行任务的路线信息不符合", phone,1006,orderNo) - 1008 -> sendMessage2Driver("车票剩余可用次数为0", phone,99,orderNo) + 1009 -> sendMessage2Driver("乘车日期非今日", phone,1009,orderNo) + 1005 -> sendMessage2Driver("当前无路线任务", phone,1005,orderNo) + 1006 -> sendMessage2Driver("车票非当前路线", phone,1006,orderNo) + 1008 -> sendMessage2Driver("车票无剩余可用次数", phone,99,orderNo) 6001 -> sendMessage2Driver("二维码已过期", phone,6001,orderNo) 6002 -> sendMessage2Driver("同一订单核销间隔时间需大于2分钟", phone,6002,orderNo) - 6003 -> sendMessage2Driver("车票站点信息与当前车辆执行任务的站点信息不符合", phone,6003,orderNo) + 6003 -> sendMessage2Driver("车票非当前站点", phone,6003,orderNo) 6004 -> sendMessage2Driver("车辆未执行任务", phone,6004,orderNo) - 6005 -> sendMessage2Driver("车票站点信息与当前车辆执行任务信息不符合", phone,6005,orderNo) - 1012 -> sendMessage2Driver("当前用户下单路线非当前的车辆所属公司", phone,1012,orderNo) + 6005 -> sendMessage2Driver("车票非当前班次", phone,6005,orderNo) + 1012 -> sendMessage2Driver("车票与车辆所属租户不一致", phone,1012,orderNo) else -> { try { val tempcode=msg.toInt() @@ -233,19 +232,11 @@ object TicketModel { private fun sendMessage2Driver(message:String,phone:String,code:Int,orderNo: String){ // 发送乘客屏 通过蓝牙告知小程序 LanSocketManager.sendMsgToClient(WriteOffResultMsg(code, phone,orderNo, System.currentTimeMillis(),LineManager.lineInfos?.lineId?:0,LineManager.getStations()?.first?.siteId?.toLong()?:0L)) - val failedReason = "验票失败,${message}" + val failedReason = "核销失败,${message}" + // tts ShuttleVoiceManager.writeOffFaile(failedReason) - var tempPhone = phone - tempPhone.let { - if (it.length > 8) { - //截取电话号码前三位 - val phoneNumPre = it.substring(0, 3) - //截取电话号码后四位 - val phoneNumFix = it.substring(7) - tempPhone = "$phoneNumPre****$phoneNumFix" - } - } - val reaseonAndPhone = if(tempPhone.isNullOrEmpty()) { + val tempPhone = OchPhoneUtil.getPhoneWithoutMiddle(phone) + val reaseonAndPhone = if(tempPhone.isEmpty()) { failedReason }else{ "${failedReason};乘客:${tempPhone}" diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt index b87d0469e2..a0c397f54e 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt @@ -126,7 +126,8 @@ object TicketModel : StateChangeListener { e.printStackTrace() CallerLogger.d(M_BUS_P + TAG, "") // 通知司机屏二维码错误 - val writeOffDetail = WriteOffDetialMsg(code = 3001, msg = "参数错误:${payload}") + val writeOffDetail = WriteOffDetialMsg(code = 3001, msg = "出示错误二维码") + OchChainLogManager.writeChainLogWriteOff("核销失败","二维码错误+参数错误:${payload}") CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(writeOffDetail)) LanSocketManager.sendMsgToServer(writeOffDetail) } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt index 9eec609a5e..e189dc8e58 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt @@ -593,7 +593,7 @@ enum class EventTypeEnumNew( //核销异常 TYPE_ABNORMAL_VERIFICATION( "ABNORMAL_VERIFICATION", - "验票失败", + "核销失败", "%s", R.drawable.icon_warning_take_over, "%s", From 93ac33eb696597c837a7d38ba03d6e64e89a43b3 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 24 Dec 2024 16:55:29 +0800 Subject: [PATCH 04/23] =?UTF-8?q?[6.8.4]=20[fix]=20[=E6=9C=AA=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E4=BB=BB=E5=8A=A1=E3=80=81=E6=A0=B8=E9=94=80=E6=8F=90?= =?UTF-8?q?=E7=A4=BA]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/writeoff/impl/WriteOffCacheRepository.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt index 56c053050d..f88505f3b8 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt @@ -136,6 +136,9 @@ class WriteOffCacheRepository : IWriteOffRepository { throw DataException(1009,"车票所选乘车日期非今日") } // 6、校验线路 + if(LineManager.lineInfos==null||LineManager.lineInfos?.lineId==null){ + throw DataException(1005,"车辆未登录、或没有任务") + } if(it.lineId==LineManager.lineInfos?.lineId){ lineId = it.lineId }else{ From c0c42e76f8d9ad125e51e83cdc4e9e397925ba6b Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 24 Dec 2024 17:16:10 +0800 Subject: [PATCH 05/23] =?UTF-8?q?[6.8.4]=20[fea]=20[taxi=20=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E5=BD=93=E5=89=8D=E6=89=80=E5=9C=A8=E7=AB=99=E7=82=B9?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/weaknet/model/OrderModel.kt | 5 +- .../rodedata/OchAutomaticExplorationView.kt | 3 + .../itinerarycurrent/ItineraryCurrentView.kt | 294 +++++++++++------- .../res/layout/unmanned_itinerary_current.xml | 22 +- 4 files changed, 202 insertions(+), 122 deletions(-) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt index 8038400490..09cbe4267b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt @@ -273,11 +273,11 @@ object OrderModel { ?.observeOn(AndroidSchedulers.mainThread()) ?.subscribe(object : Observer { override fun onSubscribe(d: Disposable) { - d(TAG, "onSubscribe") + d(TAG, "driveToNextStation onSubscribe") } override fun onError(e: Throwable) { - d(TAG, "onError${e.printStackTrace()}") + d(TAG, "driveToNextStation onError${e.printStackTrace()}") if (e is DataException) { } @@ -297,6 +297,7 @@ object OrderModel { } override fun onNext(data: Boolean) { + d(TAG, "driveToNextStation onComplete") if (data) { LineModel.leaveStationSuccess() isArrivedStation = false diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/rodedata/OchAutomaticExplorationView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/rodedata/OchAutomaticExplorationView.kt index 13e9127b74..e96fe8fe32 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/rodedata/OchAutomaticExplorationView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/rodedata/OchAutomaticExplorationView.kt @@ -9,6 +9,9 @@ import com.mogo.och.data.taxi.TaxiOrderStatusEnum import com.mogo.och.unmanned.taxi.utils.order.OrderListener import com.mogo.och.unmanned.taxi.utils.order.OrderModel +/** + * 自动探查 + */ class OchAutomaticExplorationView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt index 28403aae59..fb88a7f362 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt @@ -17,6 +17,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.hmi.ui.widget.ItinerarySummaryDialog import com.mogo.eagle.core.network.utils.GsonUtil import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i import com.mogo.eagle.core.utilcode.util.ClickUtils @@ -29,6 +30,7 @@ import com.mogo.och.common.module.map.ICommonNaviChangedCallback import com.mogo.och.common.module.map.MapMakerManager import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.FlowBus +import com.mogo.och.common.module.utils.OchPhoneUtil import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.common.module.wigets.CommonSlideView @@ -50,28 +52,55 @@ import com.mogo.och.unmanned.taxi.ui.task.TaskWithOrderUIState import com.mogo.och.unmanned.taxi.ui.task.TaxiTaskModel import com.mogo.och.unmanned.taxi.ui.task.cancleorder.CancleOrderView import com.mogo.och.unmanned.taxi.utils.TaskUtils +//演练单标识 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.aciv_task_type_exercise -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.aciv_task_type_order +// 距离目的地距离和剩余时间 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.actv_distance_end +// 完成服务 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.actv_end_order -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.actv_order_phone +// 跳过乘客端验证 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.actv_submit_task -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.cancelOrder +// 取消虚拟单 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.cancelTask +// 开始服务 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.commonSlideViewStartServer + + import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.gourp_order -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.group_itinerary_info -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.include_empty -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.naviToEnd -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.naviToStart -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.prepareTaskCountdownTv +// 前往出车点、前往送架、等待乘客、前往接驾 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.taskStatus -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.endStationName -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.startStationName +// 用户手机号 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.actv_order_phone +// 用户人数 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.orderPhoneAndNum +// 运营单标识 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.aciv_task_type_order +// 取消订单 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.cancelOrder +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.currentTaskStation + +// 展示站点信息 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.group_itinerary_info + +// 没有任务的情况下展示的 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.include_empty +// 导航到终点 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.naviToEnd +// 导航到起点 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.naviToStart +// 拉取任务倒计时 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.prepareTaskCountdownTv +// 终点名称 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.endStationName +// 起始站点名称 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.startStationName +// 途径点展示 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.pathwayPoint -import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.trajectoryType +// 途径站点标识 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.v_bg_route_point_station_name +// 自主算路标识 +import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.trajectoryType + import kotlinx.coroutines.flow.map class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineViewCallback, @@ -117,9 +146,6 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi viewModel?.uiStateFlow?.map { it.taskWithOrderUIState }?.collect { taskAndOrderUiState -> d(TAG, "uiStateFlow-initViewModelObserver: $taskAndOrderUiState") when (taskAndOrderUiState) { - is TaskWithOrderUIState.Init -> { - } - // 开始接单后 需要将车开到最近的一个站点就位,然后才能开启 无人化 流程 is TaskWithOrderUIState.TaskDriveToNearestStationTask -> { if (taskAndOrderUiState.driveToNearestStationTask != null) { @@ -163,13 +189,100 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } } + // 1、无订单 无任务 + // 2、标定单 + // 3、虚拟单 + // 4、运营单 + // 5、倒计时获取虚拟任务 + + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(ItineraryCurrentModel::class.java) + } + viewModel?.setDistanceCallback(this) + initOnClickListener() + initTaskDebugViewListener() + initViewModelObserver() + showEmptyView() + } + + private fun initOnClickListener() { + CallerLogger.d(TAG,"initOnClickListener") + naviToStart.setOnClickListener(this) + naviToEnd.setOnClickListener(this) + cancelTask.setOnClickListener(this) + + cancelOrder.setOnClickListener(this) + taskStatus.setOnClickListener(this) + commonSlideViewStartServer.setSlideListener(object :CommonSlideView.SlideListener{ + override fun slideEnd() { + d(TAG, taskStatus.text.toString()) + startOrEndService() + } + }) + actv_submit_task.onClick { + startOrEndService() + } + actv_end_order.onClick { + startOrEndService() + } + } + + override fun onClick(v: View?) { + if (!ClickUtils.isFastClick()) { + i(TAG, "view点击过快") + return + } + when (v?.id) { + + cancelOrder.id -> { + val currentWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() + if (currentWithOrder?.order != null) { + context?.let { + CancleOrderView.showDialog(it) + } + } + } + + naviToStart.id, + naviToEnd.id -> { + showNaviToEndStationFragment() + } + cancelTask.id -> { + val builder = CommonDialogStatus.Builder() + val closeLineConfirmDialog = builder + .title(ResourcesUtils.getString(R.string.common_dialog_title)) + .tips(ResourcesUtils.getString(R.string.taxi_dialog_cancle_task)) + .confirmStr(ResourcesUtils.getString(R.string.common_dialog_confirm)) + .cancelStr(ResourcesUtils.getString(R.string.common_dialog_cancel)) + .status(CommonDialogStatus.Status.ask) + .build(context) + closeLineConfirmDialog.setClickListener(object : CommonDialogStatus.ClickListener { + override fun confirm() { + viewModel?.cancleTask() + } + + override fun cancel() { + closeLineConfirmDialog.dismiss() + } + }) + closeLineConfirmDialog.show() + } + } + } + + /** * 更新拉取任务倒计时 */ private fun updatePrepareTaskDelayUI(millisInFuture: Long, isStart: Boolean) { + CallerLogger.d(TAG,"updatePrepareTaskDelayUI") DebugView.printInfoMsg("距离任务获取还有 ${DateTimeUtil.second2MMSS(millisInFuture / 1000)}") if (!isStart) { prepareTaskCountdownTv.visibility = View.GONE + currentTaskStation.visibility = View.GONE mPrepareTasCountDownTimer?.cancel() mPrepareTasCountDownTimer = null return @@ -177,31 +290,37 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi if (mPrepareTasCountDownTimer != null) { prepareTaskCountdownTv.visibility = View.GONE + currentTaskStation.visibility = View.GONE mPrepareTasCountDownTimer?.cancel() mPrepareTasCountDownTimer = null } mPrepareTasCountDownTimer = object : CountDownTimer(millisInFuture, 1000L) {// 倒计时后开启自驾 - override fun onTick(millisUntilFinished: Long) { - DebugView.printInfoMsg("距离任务获取还有 ${DateTimeUtil.second2MMSS(millisUntilFinished / 1000)}") - // 倒计时 - UiThreadHandler.post { - prepareTaskCountdownTv.visibility = View.VISIBLE - prepareTaskCountdownTv.text = - "距离任务获取还有 ${DateTimeUtil.second2MMSS(millisUntilFinished / 1000)}" + override fun onTick(millisUntilFinished: Long) { + DebugView.printInfoMsg("距离任务获取还有 ${DateTimeUtil.second2MMSS(millisUntilFinished / 1000)}") + // 倒计时 + UiThreadHandler.post { + prepareTaskCountdownTv.visibility = View.VISIBLE + prepareTaskCountdownTv.text = "距离任务获取还有 ${DateTimeUtil.second2MMSS(millisUntilFinished / 1000)}" + val taskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() + if(taskWithOrder?.currentStatus == TaskStatusEnum.CompleteTask.code){ + currentTaskStation.visibility = View.VISIBLE + currentTaskStation.text = taskWithOrder.endSite?.siteName?:"" } } - - override fun onFinish() { - //倒计时结束了... - UiThreadHandler.post { - prepareTaskCountdownTv.visibility = View.INVISIBLE - } - mPrepareTasCountDownTimer?.cancel() - } } + override fun onFinish() { + //倒计时结束了... + UiThreadHandler.post { + prepareTaskCountdownTv.visibility = View.INVISIBLE + currentTaskStation.visibility = View.INVISIBLE + } + mPrepareTasCountDownTimer?.cancel() + } + } + mPrepareTasCountDownTimer?.start() } @@ -209,6 +328,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi * 更新当前任务和订单信息 */ private fun updateViewByCurrentTaskWithOrder(taskAndOrder: QueryCurrentTaskRespBean.Result?) { + CallerLogger.d(TAG,"updateViewByCurrentTaskWithOrder") if (taskAndOrder == null) return /** * 根据任务类型判断任务显示, @@ -263,6 +383,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi // 第一个特殊任务 也是虚拟任务 private fun updateViewByDriveToNearestStationTask(driveToNearestStationTask: StartServiceRespBean.Result?) { + CallerLogger.d(TAG,"updateViewByDriveToNearestStationTask 标定单") if (driveToNearestStationTask == null) return initContainerView(true) // DriverToNearestStationTask 任务更新 @@ -292,11 +413,13 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun showEmptyView() { + CallerLogger.d(TAG,"showEmptyView") gourp_order.visibility = GONE aciv_task_type_exercise.visibility = GONE group_itinerary_info.visibility = GONE include_empty.visibility = VISIBLE prepareTaskCountdownTv.visibility = GONE + currentTaskStation.visibility = View.GONE cancelTask.visibility = View.GONE actv_end_order.visibility = GONE @@ -305,28 +428,8 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } - private fun initOnClickListener() { - naviToStart.setOnClickListener(this) - naviToEnd.setOnClickListener(this) - cancelTask.setOnClickListener(this) - - cancelOrder.setOnClickListener(this) - taskStatus.setOnClickListener(this) - commonSlideViewStartServer.setSlideListener(object :CommonSlideView.SlideListener{ - override fun slideEnd() { - d(TAG, taskStatus.text.toString()) - startOrEndService() - } - }) - actv_submit_task.onClick { - startOrEndService() - } - actv_end_order.onClick { - startOrEndService() - } - } - private fun initTaskDebugViewListener() { + CallerLogger.d(TAG,"initTaskDebugViewListener") fragment?.let { fr-> aciv_task_type_exercise.setOnLongClickListener { FlowBus.with(TaxiDriverEventConst.TaxiFragmentEvent.EVENT_TYPE_SHOW_DEBUG_VIEW) @@ -342,6 +445,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun startOrEndService() { + CallerLogger.d(TAG,"startOrEndService") val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() if (currentTaskWithOrder?.order == null) return val order = currentTaskWithOrder.order @@ -364,6 +468,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun closeOrderDialog() { + CallerLogger.d(TAG,"closeOrderDialog") val builder = CommonDialogStatus.Builder() val closeOrderDialog = builder .title(ResourcesUtils.getString(R.string.dialog_order_close_title)) @@ -384,67 +489,13 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } - override fun onAttachedToWindow() { - super.onAttachedToWindow() - viewModel = findViewTreeViewModelStoreOwner()?.let { - ViewModelProvider(it).get(ItineraryCurrentModel::class.java) - } - viewModel?.setDistanceCallback(this) - initOnClickListener() - showEmptyView() - initTaskDebugViewListener() - initViewModelObserver() - } - - override fun onClick(v: View?) { - if (!ClickUtils.isFastClick()) { - i(TAG, "view点击过快") - return - } - when (v?.id) { - - cancelOrder.id -> { - val currentWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() - if (currentWithOrder?.order != null) { - context?.let { - CancleOrderView.showDialog(it) - } - } - } - - naviToStart.id, - naviToEnd.id -> { - showNaviToEndStationFragment() - } - cancelTask.id -> { - val builder = CommonDialogStatus.Builder() - val closeLineConfirmDialog = builder - .title(ResourcesUtils.getString(R.string.common_dialog_title)) - .tips(ResourcesUtils.getString(R.string.taxi_dialog_cancle_task)) - .confirmStr(ResourcesUtils.getString(R.string.common_dialog_confirm)) - .cancelStr(ResourcesUtils.getString(R.string.common_dialog_cancel)) - .status(CommonDialogStatus.Status.ask) - .build(context) - closeLineConfirmDialog.setClickListener(object : CommonDialogStatus.ClickListener { - override fun confirm() { - viewModel?.cancleTask() - } - - override fun cancel() { - closeLineConfirmDialog.dismiss() - } - }) - closeLineConfirmDialog.show() - } - } - } - /** * 显示/隐藏 前往任务目的地的导航 * * @param isShow */ private fun showNaviToEndStationFragment() { + CallerLogger.d(TAG,"showNaviToEndStationFragment") fragment?.let { TaxiTaskModel.startNaviToEndStation(true); } @@ -456,6 +507,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi * @param hasCurrentTask */ private fun initContainerView(hasCurrentTask: Boolean) { + CallerLogger.d(TAG,"initContainerView") d( TAG, "hasCurrentTask = $hasCurrentTask" @@ -463,11 +515,13 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi if (hasCurrentTask) { include_empty.visibility = View.GONE prepareTaskCountdownTv.visibility = View.GONE + currentTaskStation.visibility = View.GONE } else { // 空页面 include_empty.visibility = View.VISIBLE // 倒计时 prepareTaskCountdownTv.visibility = View.GONE + currentTaskStation.visibility = View.GONE // 行程信息 group_itinerary_info.visibility = View.GONE // 订单信息 @@ -489,10 +543,12 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun removeAllMapMarker() { + CallerLogger.d(TAG,"removeAllMapMarker") MapMakerManager.removeAllMapMarkerByOwner(TYPE_MARKER_TAXI_ORDER) } private fun updateNextTaskFragment(result: QueryCurrentTaskRespBean.Result?) { + CallerLogger.d(TAG,"updateNextTaskFragment") fragment?.let { FlowBus.with(TaxiDriverEventConst.TabFragmentEvent.EVENT_TYPE_TASK_WITH_ORDER_CHANGED) .post(it.lifecycleScope, result) @@ -514,6 +570,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun updateOrderUI(order: OrderDetail) { + CallerLogger.d(TAG,"updateOrderUI") gourp_order.visibility = View.VISIBLE cancelOrder.visibility = if (order.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.code ) View.GONE else View.VISIBLE @@ -538,17 +595,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi order.passengerSize ) - var tempPhone = order.bookingUserPhone - tempPhone.let { - if (it.length > 8) { - //截取电话号码前三位 - val phoneNumPre = it.substring(0, 3) - //截取电话号码后四位 - val phoneNumFix = it.substring(7) - tempPhone = "$phoneNumPre****$phoneNumFix" - } - } - actv_order_phone.text = tempPhone + actv_order_phone.text = OchPhoneUtil.getPhoneWithoutMiddle(order.bookingUserPhone) orderPhoneAndNum.text = "${ order.passengerSize}人" @@ -629,7 +676,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi //展示虚拟订单 private fun updateVirtualTaskUI(taskAndOrder: QueryCurrentTaskRespBean.Result?) { - + CallerLogger.d(TAG,"updateVirtualTaskUI") if (taskAndOrder == null) return val startSite = taskAndOrder.startSite // 起点 @@ -642,6 +689,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi include_empty.visibility = View.GONE // 倒计时 prepareTaskCountdownTv.visibility = View.GONE + currentTaskStation.visibility = View.GONE // 行程信息 group_itinerary_info.visibility = View.VISIBLE // 订单信息 @@ -676,6 +724,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun updatePathwayPoint(taskType: Int, endSiteName: String?) { + CallerLogger.d(TAG,"updatePathwayPoint") if (TextUtils.isEmpty(endSiteName)) return pathwayPoint.visibility = if (taskType == TaskTypeEnum.ToOrderStartTask.code) View.VISIBLE else View.GONE @@ -683,6 +732,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun updateMapMarkers(taskAndOrder: QueryCurrentTaskRespBean.Result?) { + CallerLogger.d(TAG,"updateMapMarkers") if (taskAndOrder?.startSite != null && taskAndOrder.endSite != null ) { @@ -755,6 +805,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi isAdd: Boolean, uuid: String, lat: Double, lon: Double, resourceId: Int ) { + CallerLogger.d(TAG,"setOrRemoveMapMaker") if (isAdd) { MapMakerManager.addMapMaker(TYPE_MARKER_TAXI_ORDER, uuid, lat, lon, resourceId) } else { @@ -766,6 +817,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi * 根据任务状态计算剩余历程和时间 */ private fun updateRemainDistanceAndTime(isVoicePlay: Boolean) { + CallerLogger.d(TAG,"updateRemainDistanceAndTime") val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return d(TAG, "updateRemainDistanceAndTime ${currentTaskWithOrder.currentStatus}") if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code) { @@ -786,6 +838,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun startNaviToStation(isVoicePlay: Boolean, stationLat: Double, stationLng: Double) { + CallerLogger.d(TAG,"startNaviToStation") AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi() val gcJ02Location = OchLocationManager.getGCJ02Location() val mCurLatitude = gcJ02Location.latitude @@ -799,6 +852,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun showDialog(){ + CallerLogger.d(TAG,"showDialog") if(dialog==null&&context!=null){ } @@ -816,6 +870,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun dismissDialog(){ + CallerLogger.d(TAG,"dismissDialog") dialog?.let { if(it.isShowing){ it.dismiss() @@ -825,6 +880,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun hideNaviBtns() { + CallerLogger.d(TAG,"hideNaviBtns") naviToStart.visibility = View.GONE naviToEnd.visibility = View.GONE AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi() @@ -838,10 +894,12 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } override fun onCurrentNaviDistAndTimeChanged(meters: Int, timeInSecond: Long) { + CallerLogger.d(TAG,"onCurrentNaviDistAndTimeChanged") actv_distance_end.text = TaskUtils.getCurrentTaskDistance(meters.toLong())+" "+TaskUtils.getCurrentTaskTime(timeInSecond) } override fun reInitNaviAmap(isPlay: Boolean, isRestart: Boolean) { + CallerLogger.d(TAG,"reInitNaviAmap") d(TAG, "isPlay = $isPlay, isRestart=$isRestart") if (!isRestart) { fragment?.let { @@ -875,6 +933,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } fun onNaviToEndStationByAMap(isShow: Boolean) { + CallerLogger.d(TAG,"onNaviToEndStationByAMap") val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return fragment?.let { if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code) @@ -894,6 +953,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } override fun onStartTaskFail() { + CallerLogger.d(TAG,"onStartTaskFail") commonSlideViewStartServer.reset() } diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_itinerary_current.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_itinerary_current.xml index 53c8514f83..70044e1a21 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_itinerary_current.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_itinerary_current.xml @@ -25,8 +25,8 @@ app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="@dimen/dp_53" android:src="@drawable/taxi_task_close" - android:layout_width="wrap_content" - android:layout_height="wrap_content"/> + android:layout_width="@dimen/dp_46" + android:layout_height="@dimen/dp_46"/> + + + + \ No newline at end of file From 85bf4e840bcc287d61aabfc7c370735399bb615c Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 24 Dec 2024 17:18:04 +0800 Subject: [PATCH 06/23] =?UTF-8?q?[6.8.4]=20[fix]=20[=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt index a0c397f54e..bb43cd6c9d 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt @@ -133,7 +133,8 @@ object TicketModel : StateChangeListener { } }else{ // 通知司机屏二维码错误 - val writeOffDetail = WriteOffDetialMsg(code = 3001, msg = "参数错误:${payload}") + val writeOffDetail = WriteOffDetialMsg(code = 3001, msg = "出示错误二维码") + OchChainLogManager.writeChainLogWriteOff("核销失败","二维码错误+参数错误:${payload}") CallerLogger.d(M_BUS_P + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(writeOffDetail)) LanSocketManager.sendMsgToServer(writeOffDetail) } From 875243be9af4eff7fd748063e243e4d66d73c618 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 24 Dec 2024 18:26:14 +0800 Subject: [PATCH 07/23] =?UTF-8?q?[6.8.4]=20[fix]=20[=E5=8D=95=E7=A8=8B?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=20=E4=B8=8D=E4=B8=8B=E5=8F=91=E8=BD=A8?= =?UTF-8?q?=E8=BF=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt index 39eaf1b19f..a37fec0228 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt @@ -12,7 +12,9 @@ import com.mogo.och.bridge.autopilot.trajectory.ITrajectoryListListener import com.mogo.och.bridge.autopilot.trajectory.TrajectoryManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.weaknet.constant.BusConst +import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.model.LineModel.currentTask +import com.mogo.och.weaknet.model.LineModel.startStationIndex import com.mogo.och.weaknet.model.OrderModel.isGoingToNextStation import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers @@ -54,10 +56,11 @@ object BusTrajectoryManager : ITrajectoryListListener { } else { OchChainLogManager.writeChainLogTrajectory( "轨迹监控", - "开始或者结束下发轨迹 轨迹id:${mAutopilotControlParameters!!.autoPilotLine!!.lineId}" + "开始或者结束下发轨迹 轨迹id:${mAutopilotControlParameters!!.autoPilotLine!!.lineId}____${startStationIndex}" ) } - if (isLogin() && currentTask != null && !isGoingToNextStation) { + + if (isLogin() && currentTask != null && !isGoingToNextStation&&!(LineModel.isLastStation()?:true)) { d(TAG, "syncTrajectoryInfo() start.") startTrajReqLoop() } else { From 8b02e1494992103e4a552c976fded8cc67edc329 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 24 Dec 2024 18:27:36 +0800 Subject: [PATCH 08/23] =?UTF-8?q?[6.8.4]=20[fea]=20[status=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20=E7=A7=92]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/layout/view_status_bar.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml index b740f3c354..134b9386c0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml @@ -17,8 +17,8 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginStart="@dimen/dp_61" - android:format12Hour="HH:mm" - android:format24Hour="HH:mm" + android:format12Hour="HH:mm:ss" + android:format24Hour="HH:mm:ss" android:textColor="#ffffff" android:textSize="@dimen/dp_45" android:textStyle="bold" /> From 1e4c4b6331561d918800612e9dfe47637bbe8c6a Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 24 Dec 2024 18:40:07 +0800 Subject: [PATCH 09/23] =?UTF-8?q?[6.8.4]=20[fea]=20[=E6=A0=B8=E9=94=80?= =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81=E5=85=BC=E5=AE=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weaknet/passenger/model/TicketModel.kt | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt index bb43cd6c9d..4e9c01997c 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt @@ -103,6 +103,24 @@ object TicketModel : StateChangeListener { } } try { + var tempType = 0 + if (type is String) { + when (type) { + "shuttle" -> { + tempType = 11 + } + + "bus" -> { + tempType = 10 + } + + else -> { + type.toInt()?:0 + } + } + } else { + tempType = type?.toInt() ?: 0 + } val writeOffDetail = WriteOffDetialMsg(0,"", expiryTime?.toLong()?:0, bookingTime?.toLong()?:0, @@ -113,7 +131,7 @@ object TicketModel : StateChangeListener { phoneNum, ticketSize?.toInt()?:0, URLDecoder.decode(ticketName?:"","UTF-8"), - type?.toInt()?:0, + tempType, shiftsId?.toLong()?:0, pipe, startStationId?.toLong()?:0, From 4f38cd84d1fd347f11468116ba54e9b1e3dd22f2 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 20 Dec 2024 18:51:16 +0800 Subject: [PATCH 10/23] =?UTF-8?q?[6.8.2]=20[fix]=20[=E8=B7=9D=E7=A6=BB?= =?UTF-8?q?=E5=B1=95=E7=A4=BA]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bridge/utils/CoordinateCalculateRouteUtil.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/utils/CoordinateCalculateRouteUtil.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/utils/CoordinateCalculateRouteUtil.kt index 78ac9a26e2..f8e6bcbf22 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/utils/CoordinateCalculateRouteUtil.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/utils/CoordinateCalculateRouteUtil.kt @@ -549,7 +549,7 @@ object CoordinateCalculateRouteUtil { } fun getHeadingAngle(location: MogoLocation, nextPoint: MogoLocation): Double { - return getHeadingAngle( + return getHeadingAngleTemp( location.longitude, location.latitude, nextPoint.longitude, From 596401208c85cc3e5cd27e3370c789658072f95d Mon Sep 17 00:00:00 2001 From: donghongyu-pc Date: Tue, 24 Dec 2024 18:56:47 +0800 Subject: [PATCH 11/23] =?UTF-8?q?[6.8.4]=201=E3=80=81=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E7=9A=AE=E8=82=A4=E5=8C=85sdk=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=9F=AD=E6=97=B6=E9=97=B4=E8=B0=83=E7=94=A8=E5=A4=9A=E6=AC=A1?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=90=8C=E4=B8=80=E4=B8=AA=E7=9A=AE=E8=82=A4?= =?UTF-8?q?=E5=8C=85=EF=BC=8C=E5=AF=BC=E8=87=B4MD5=E4=B8=8E=E4=BA=91?= =?UTF-8?q?=E7=AB=AF=E4=B8=8D=E4=B8=80=E8=87=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c40e73f3c1..ba822ad5c7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -80,7 +80,7 @@ MOGO_LOCATION_VERSION=1.4.7.59 # 远程通讯模块 MOGO_TELEMATIC_VERSION=1.4.7.59 # 动态换肤SDK -MOGO_SKIN_VERSION=1.4.7.49.19 +MOGO_SKIN_VERSION=1.4.7.50 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=3.5.0.0 From 7dc8771656977db9c82f2fb302bf686e378dccab Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 25 Dec 2024 11:51:11 +0800 Subject: [PATCH 12/23] =?UTF-8?q?[6.8.4]=20[fea]=20[=E6=A0=B8=E9=94=80=20t?= =?UTF-8?q?ype=20=E5=85=BC=E5=AE=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/common/module/debug/DebugDataDispatch.kt | 10 ++++++++++ .../och/common/module/manager/scnner/ScannerManager.kt | 2 +- .../och/shuttle/weaknet/passenger/model/TicketModel.kt | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index c255209fb5..7933ec7cca 100644 --- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -33,6 +33,8 @@ import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.debug.location.MogoLocationExit +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.scnner.ScannerManager //import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager //import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil //import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil @@ -63,6 +65,7 @@ object DebugDataDispatch { const val v2N = "xiaozhiV2N" const val romal = "romal" const val visualView = "visual" + const val scanner = "scanner" // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "location" --es path "1111/11111" // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "globalPath" --es path "sy73.json" @@ -77,6 +80,7 @@ object DebugDataDispatch { // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "romal" --ei show 0 // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "visual" --ei show 0 // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "showDebugView" +// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "scanner" --es qrInfo "" val ROOT_PATH = @@ -89,6 +93,12 @@ object DebugDataDispatch { } when (type) { + scanner -> { + val qrInfo = intent.getStringExtra("qrInfo") + BizLoopManager.runInIoThread{ + ScannerManager.parseParams("orderNo=1871744897569038336&uid=828aa91f-49a1-f9b3-4526-f58acda9df60&pipe=mogogosafety&phone=houyanli&lineId=134&expiryTime=1735094149070&bookingTime=1735056000000&tenantId=337197925358633123&availableTimes=1&ticketSize=1&ticketName=%E9%80%9A%E5%8B%A4%E7%A5%A8%E3%81%AE&type=14&shiftsId=4249") + } + } globalPathMock -> { sourceFilePath?.let { loadRawPoints(ROOT_PATH+it) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/scnner/ScannerManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/scnner/ScannerManager.kt index 3eb351e1a6..257da196a5 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/scnner/ScannerManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/scnner/ScannerManager.kt @@ -235,7 +235,7 @@ object ScannerManager : IOchLanPassengerStatusListener { } } - private fun parseParams(payload: String?) { + fun parseParams(payload: String?) { val parse = Uri.parse("${OchCommonConst.getShuttleUrl()}?${payload}") val queryParameterNames = parse.queryParameterNames val mutableMapOf = mutableMapOf() diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt index 4e9c01997c..4227ac0e66 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt @@ -115,7 +115,7 @@ object TicketModel : StateChangeListener { } else -> { - type.toInt()?:0 + tempType = type.toInt()?:0 } } } else { From 25d5884e3dd5bf3ee1a777b44a4f4051c6058e3f Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 25 Dec 2024 17:03:05 +0800 Subject: [PATCH 13/23] =?UTF-8?q?[6.8.4]=20[fix]=20[=E9=81=93=E8=B7=AF?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=92=8C=E5=B9=BF=E5=91=8A=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E5=86=B2=E7=AA=81]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/module/utils/CustomManager.java | 188 ++++++++++++++++++ .../wigets/media/MediaPlayerCustomView.kt | 47 +++++ OCH/common/common/src/main/res/values/ids.xml | 5 + 3 files changed, 240 insertions(+) create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CustomManager.java create mode 100644 OCH/common/common/src/main/res/values/ids.xml diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CustomManager.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CustomManager.java new file mode 100644 index 0000000000..d41245c3af --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CustomManager.java @@ -0,0 +1,188 @@ +package com.mogo.och.common.module.utils; + +import android.app.Activity; +import android.content.Context; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; + +import com.shuyu.gsyvideoplayer.GSYVideoBaseManager; +import com.shuyu.gsyvideoplayer.player.IPlayerManager; +import com.shuyu.gsyvideoplayer.player.IjkPlayerManager; +import com.shuyu.gsyvideoplayer.utils.CommonUtil; +import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer; +import com.mogo.och.common.module.R; + +import java.util.HashMap; +import java.util.Map; + +import static com.shuyu.gsyvideoplayer.utils.CommonUtil.hideNavKey; + +/** + * 多个播放的管理器 + * Created by guoshuyu on 2018/1/31. + */ + +public class CustomManager extends GSYVideoBaseManager { + + public static final int SMALL_ID = R.id.custom_small_id; + + public static final int FULLSCREEN_ID = R.id.custom_full_id; + + public static String TAG = "GSYVideoManager"; + + private static Map sMap = new HashMap<>(); + + + public CustomManager() { + init(); + } + + @Override + protected IPlayerManager getPlayManager() { + return new IjkPlayerManager(); + } + + /** + * 退出全屏,主要用于返回键 + * + * @return 返回是否全屏 + */ + @SuppressWarnings("ResourceType") + public static boolean backFromWindowFull(Context context, String key) { + boolean backFrom = false; + ViewGroup vp = (ViewGroup) (CommonUtil.scanForActivity(context)).findViewById(Window.ID_ANDROID_CONTENT); + View oldF = vp.findViewById(FULLSCREEN_ID); + if (oldF != null) { + backFrom = true; + hideNavKey(context); + if (getCustomManager(key).lastListener() != null) { + getCustomManager(key).lastListener().onBackFullscreen(); + } + } + return backFrom; + } + + /** + * 页面销毁了记得调用是否所有的video + */ + public static void releaseAllVideos(String key) { + if (getCustomManager(key).listener() != null) { + getCustomManager(key).listener().onCompletion(); + } + getCustomManager(key).releaseMediaPlayer(); + } + + + /** + * 暂停播放 + */ + public void onPause(String key) { + if (getCustomManager(key).listener() != null) { + getCustomManager(key).listener().onVideoPause(); + } + } + + /** + * 恢复播放 + */ + public void onResume(String key) { + if (getCustomManager(key).listener() != null) { + getCustomManager(key).listener().onVideoResume(); + } + } + + + /** + * 恢复暂停状态 + * + * @param seek 是否产生seek动作,直播设置为false + */ + public void onResume(String key, boolean seek) { + if (getCustomManager(key).listener() != null) { + getCustomManager(key).listener().onVideoResume(seek); + } + } + + + /** + * 单例管理器 + */ + public static synchronized Map instance() { + return sMap; + } + + /** + * 单例管理器 + */ + public static synchronized CustomManager getCustomManager(String key) { + if (TextUtils.isEmpty(key)) { + throw new IllegalStateException("key not be empty"); + } + CustomManager customManager = sMap.get(key); + if (customManager == null) { + customManager = new CustomManager(); + sMap.put(key, customManager); + } + return customManager; + } + + public static void onPauseAll() { + if (sMap.size() > 0) { + for (Map.Entry header : sMap.entrySet()) { + header.getValue().onPause(header.getKey()); + } + } + } + + public static void onResumeAll() { + if (sMap.size() > 0) { + for (Map.Entry header : sMap.entrySet()) { + header.getValue().onResume(header.getKey()); + } + } + } + + /** + * 恢复暂停状态 + * + * @param seek 是否产生seek动作 + */ + public static void onResumeAll(boolean seek) { + if (sMap.size() > 0) { + for (Map.Entry header : sMap.entrySet()) { + header.getValue().onResume(header.getKey(), seek); + } + } + } + + public static void clearAllVideo() { + if (sMap.size() > 0) { + for (Map.Entry header : sMap.entrySet()) { + CustomManager.releaseAllVideos(header.getKey()); + } + } + sMap.clear(); + } + + public static void removeManager(String key) { + sMap.remove(key); + } + + /** + * 当前是否全屏状态 + * + * @return 当前是否全屏状态, true代表是。 + */ + @SuppressWarnings("ResourceType") + public static boolean isFullState(Activity activity) { + ViewGroup vp = (ViewGroup) (CommonUtil.scanForActivity(activity)).findViewById(Window.ID_ANDROID_CONTENT); + final View full = vp.findViewById(FULLSCREEN_ID); + GSYVideoPlayer gsyVideoPlayer = null; + if (full != null) { + gsyVideoPlayer = (GSYVideoPlayer) full; + } + return gsyVideoPlayer != null; + } +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt index 83ad2d60ec..887d26c5ea 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/media/MediaPlayerCustomView.kt @@ -1,6 +1,7 @@ import android.content.Context import android.media.AudioManager import android.net.Uri +import android.text.TextUtils import android.util.AttributeSet import android.widget.ImageView import android.widget.RelativeLayout @@ -13,6 +14,7 @@ import com.mogo.eagle.core.utilcode.util.FileUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider +import com.mogo.och.common.module.utils.CustomManager import com.mogo.och.common.module.R import com.mogo.och.common.module.wigets.media.MediaFileCacheManager import com.mogo.och.common.module.wigets.media.MediaItem @@ -22,8 +24,10 @@ import com.mogo.skin.utils.SkinResources import com.mogo.skin.widget.SkinImageView import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack +import com.shuyu.gsyvideoplayer.utils.Debuger import com.shuyu.gsyvideoplayer.utils.GSYVideoType import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer +import com.shuyu.gsyvideoplayer.video.base.GSYVideoViewBridge import me.jessyan.autosize.utils.AutoSizeUtils import java.io.File @@ -250,6 +254,49 @@ class AdvanceGSYVideoPlayer : StandardGSYVideoPlayer { GSYVideoType.setRenderType(GSYVideoType.GLSURFACE) } + override fun init(context: Context) { + super.init(context) + onAudioFocusChangeListener = + AudioManager.OnAudioFocusChangeListener { focusChange -> + when (focusChange) { + AudioManager.AUDIOFOCUS_GAIN -> {} + AudioManager.AUDIOFOCUS_LOSS -> { + //todo 判断如果不是外界造成的就不处理 + } + + AudioManager.AUDIOFOCUS_LOSS_TRANSIENT -> { + //todo 判断如果不是外界造成的就不处理 + } + + AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK -> {} + } + } + } + + override fun getGSYVideoManager(): GSYVideoViewBridge { + CustomManager.getCustomManager(getKey()).initContext(getContext().getApplicationContext()); + return CustomManager.getCustomManager(getKey()); + } + + override fun releaseVideos() { + CustomManager.releaseAllVideos(getKey()) + } + + override fun backFromFull(context: Context?): Boolean { + return CustomManager.backFromWindowFull(context, getKey()) + } + + fun getKey(): String { + if (mPlayPosition == -22) { + Debuger.printfError(javaClass.simpleName + " used getKey() " + "******* PlayPosition never set. ********") + } + if (TextUtils.isEmpty(mPlayTag)) { + Debuger.printfError(javaClass.simpleName + " used getKey() " + "******* PlayTag never set. ********") + } + Logger.d("MediaLoopPlayView", "key ${(MediaLoopPlayView.TAG + mPlayPosition).toString() + mPlayTag}") + return (MediaLoopPlayView.TAG + mPlayPosition).toString() + mPlayTag + } + override fun hideAllWidget() { Logger.d(MediaLoopPlayView.TAG, "AdvanceGSYVideoPlayer,hideAllWidget") } diff --git a/OCH/common/common/src/main/res/values/ids.xml b/OCH/common/common/src/main/res/values/ids.xml new file mode 100644 index 0000000000..3b52790d4e --- /dev/null +++ b/OCH/common/common/src/main/res/values/ids.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file From 300e4b2b39bdea1866cfa655202f7401907a6785 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 25 Dec 2024 18:54:53 +0800 Subject: [PATCH 14/23] =?UTF-8?q?[6.8.4][Feat]=E6=96=B0=E5=A2=9E=E7=93=A6?= =?UTF-8?q?=E7=89=87=E6=95=B0=E6=8D=AE=E6=97=A5=E5=BF=97=E5=BC=80=E5=85=B3?= =?UTF-8?q?,=E9=BB=98=E8=AE=A4=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/setting/DebugSettingView.kt | 13 +++++++++ .../main/res/layout/view_debug_setting.xml | 16 +++++++++++ gradle.properties | 3 +- libraries/mapmodule/build.gradle | 2 +- .../src/main/java/com/mogo/map/IMogoData.kt | 6 ++++ .../main/java/com/mogo/map/MapDataWrapper.kt | 12 ++++++++ .../java/com/mogo/map/TileFileLogCallback.kt | 28 +++++++++++++++++++ 7 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/TileFileLogCallback.kt diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index 17d52a5c62..e9f5787c40 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -338,6 +338,7 @@ import kotlin.collections.set import kotlin.math.abs import kotlin.system.exitProcess import com.mogo.eagle.core.function.hmi.ui.tools.ShowDevicesManagerStateDialog +import kotlinx.android.synthetic.main.view_debug_setting.view.tbTileFileLog /** @@ -1188,6 +1189,18 @@ internal class DebugSettingView @JvmOverloads constructor( CallerMapUIServiceManager.getMapUIController()?.setIsDrawPointCloud(isChecked) CallerSopSettingManager.invokePointCloudListener(isChecked) } + tbTileFileLog.setOnCheckedChangeListener { compoundButton, isChecked -> + if (!compoundButton.isPressed) { + return@setOnCheckedChangeListener + } + if (isChecked) { + mogoMapData.get()?.openTileFileLog(true) + mogoMapData.get()?.listenTileFileLog() + } else { + mogoMapData.get()?.openTileFileLog(false) + mogoMapData.get()?.stopListenTileFileLog() + } + } //设置点云大小 btnPointCloudSize.setOnClickListener { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml index a39a16afc2..f1ecdf7c4f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml @@ -1904,6 +1904,22 @@ app:layout_constraintRight_toRightOf="@id/tbChangeAutoPilotStatus" app:layout_constraintTop_toBottomOf="@id/tbChangeAutoPilotStatus" /> + + +