diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt index 76becb7860..cb1404fe9c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt @@ -2,7 +2,6 @@ package com.mogo.och.weaknet.ui.taskrunning import android.animation.ArgbEvaluator import android.content.Context -import android.graphics.Color import android.graphics.drawable.GradientDrawable import android.util.TypedValue import android.view.LayoutInflater @@ -93,13 +92,13 @@ class TaskRunningAdapter( holder.acivStationHeadBig.visibility = View.VISIBLE holder.acivStationHead.visibility = View.INVISIBLE holder.acivStationHeadBig.setImageResource(R.drawable.bus_runnint_task_start) - holder.bgPassBg.visibility = View.GONE - holder.bgPassBottomBg.visibility = View.VISIBLE - holder.bgPassHeadBg.visibility = View.GONE + holder.middleStationBg.visibility = View.GONE + holder.startStationBg.visibility = View.VISIBLE + holder.endStationBg.visibility = View.GONE if(startStationIndex==0){ if(line.isLeaving){ // 下端 灰色 - holder.bgPassBottomBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) + holder.startStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) holder.itemView.background = null }else{ // 下端 彩色 @@ -110,11 +109,11 @@ class TaskRunningAdapter( startColor, endColor )) - holder.bgPassBottomBg.background = temp01 + holder.startStationBg.background = temp01 } }else{ // 下端 灰色 - holder.bgPassBottomBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) + holder.startStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) holder.itemView.background = null } } @@ -122,16 +121,16 @@ class TaskRunningAdapter( holder.acivStationHeadBig.visibility = View.VISIBLE holder.acivStationHead.visibility = View.INVISIBLE holder.acivStationHeadBig.setImageResource(R.drawable.bus_runnint_task_end) - holder.bgPassBg.visibility = View.GONE - holder.bgPassBottomBg.visibility = View.GONE - holder.bgPassHeadBg.visibility = View.VISIBLE + holder.middleStationBg.visibility = View.GONE + holder.startStationBg.visibility = View.GONE + holder.endStationBg.visibility = View.VISIBLE if(startStationIndex==itemCount-1){ if(line.isLeaving){ - holder.bgPassHeadBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) + holder.endStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) holder.itemView.setBackgroundResource(R.drawable.bus_task_current_station_bg) }else{ holder.itemView.setBackgroundResource(R.drawable.bus_task_current_station_bg) - holder.bgPassHeadBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) + holder.endStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) } }else{ // 上端 彩色 @@ -143,19 +142,19 @@ class TaskRunningAdapter( startColorTemp, endColorTemp )) - holder.bgPassHeadBg.background = temp01 + holder.endStationBg.background = temp01 } } else -> { holder.acivStationHeadBig.visibility = View.GONE holder.acivStationHead.visibility = View.VISIBLE - holder.bgPassBg.visibility = View.VISIBLE - holder.bgPassBottomBg.visibility = View.GONE - holder.bgPassHeadBg.visibility = View.GONE + holder.middleStationBg.visibility = View.VISIBLE + holder.startStationBg.visibility = View.GONE + holder.endStationBg.visibility = View.GONE if(currentPosition==startStationIndex){ if(line.isLeaving){ // 灰色 - holder.bgPassBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) + holder.middleStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) holder.itemView.background = null }else{ // 彩色 @@ -167,11 +166,11 @@ class TaskRunningAdapter( startColorTemp, endColorTemp )) - holder.bgPassBg.background = temp01 + holder.middleStationBg.background = temp01 } }else if(currentPosition diff --git a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_task_running.xml b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_task_running.xml index 3b40d13e46..c76e2eecf8 100644 --- a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_task_running.xml +++ b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_task_running.xml @@ -20,7 +20,7 @@ android:layout_marginEnd="@dimen/dp_140" android:layout_marginTop="@dimen/dp_37" android:textColor="@color/white" - android:text="@string/bus_switch_line_title"/> + tools:text="@string/bus_switch_line_title"/> stations.size - 1) { + CallerLogger.e(SceneConstant.M_BUS_P + TAG, "行程日志-mismatch condition1.") + return null + } + val currentStation = stations[leaveIndex] + val nextStation = stations[leaveIndex + 1] + val parameters = AutopilotControlParameters() + parameters.routeID = busRoutesResult.lineId + parameters.routeName = busRoutesResult.name + parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.name) + parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.name) + parameters.startLatLon = + AutopilotControlParameters.AutoPilotLonLat(currentStation.lat, currentStation.lon) + parameters.endLatLon = + AutopilotControlParameters.AutoPilotLonLat(nextStation.lat, nextStation.lon) + parameters.vehicleType = 10 + if (parameters.autoPilotLine == null) { + parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine( + busRoutesResult.lineId.toLong(), busRoutesResult.name, + busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5, + busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5, + busRoutesResult.contrailSaveTime, busRoutesResult.carModel, + busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP, + busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP, + busRoutesResult.contrailSaveTimeDPQP + ) + } + return parameters + } + + + private fun clearAutopilotControlParameters() { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is clear.") + CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null) + } + } diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2DrivingModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2DrivingModel.kt index 6621ded080..4183d6765f 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2DrivingModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/m2/com/mogo/och/shuttle/weaknet/passenger/model/PM2DrivingModel.kt @@ -2,11 +2,13 @@ package com.mogo.och.shuttle.weaknet.passenger.model import android.annotation.SuppressLint import android.content.Context +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +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.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.GsonUtils @@ -21,6 +23,7 @@ import com.mogo.och.common.module.manager.socket.lan.LanSocketManager import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg +import com.mogo.och.common.module.utils.PinYinUtil import com.mogo.och.common.module.voice.VoiceNotice.showNotice import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.data.bean.BusStationBean @@ -227,6 +230,7 @@ object PM2DrivingModel{ val startStation = mStations[i] val endStation = mStations[i + 1] setTrajectoryStation(startStation, endStation, result.lineId) + updateAutopilotControlParameters(result,i) return } else if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && !station.isLeaving) { d(SceneConstant.M_BUS_P+ TAG,"och-rotting--mNextStationIndex = $mNextStationIndex , i = $i") @@ -236,6 +240,7 @@ object PM2DrivingModel{ } isGoingToNextStation = false mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i, true) + clearAutopilotControlParameters() return }else{ // d(SceneConstant.M_BUS_P+TAG,"och-rotting--BusStationBean = " + GsonUtils.toJson(station)) @@ -263,4 +268,61 @@ object PM2DrivingModel{ d(SceneConstant.M_BUS_P + TAG, "清理站点:$type") TrajectoryAndDistanceManager.setStationPoint(null, null, -1L) } + + private fun updateAutopilotControlParameters( + busRoutesResult: BusRoutesResult, + leaveIndex: Int + ) { + val parameters = initAutopilotControlParameters(busRoutesResult, leaveIndex) + if (null == parameters) { + CallerLogger.e(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is empty.") + return + } + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is update.") + CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(parameters) + } + + private fun initAutopilotControlParameters( + busRoutesResult: BusRoutesResult, + leaveIndex: Int + ): AutopilotControlParameters? { + if (busRoutesResult.sites == null) { + return null + } + val stations = busRoutesResult.sites + if (leaveIndex + 1 > stations.size - 1) { + CallerLogger.e(SceneConstant.M_BUS_P + TAG, "行程日志-mismatch condition1.") + return null + } + val currentStation = stations[leaveIndex] + val nextStation = stations[leaveIndex + 1] + val parameters = AutopilotControlParameters() + parameters.routeID = busRoutesResult.lineId + parameters.routeName = busRoutesResult.name + parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.name) + parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.name) + parameters.startLatLon = + AutopilotControlParameters.AutoPilotLonLat(currentStation.lat, currentStation.lon) + parameters.endLatLon = + AutopilotControlParameters.AutoPilotLonLat(nextStation.lat, nextStation.lon) + parameters.vehicleType = 10 + if (parameters.autoPilotLine == null) { + parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine( + busRoutesResult.lineId.toLong(), busRoutesResult.name, + busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5, + busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5, + busRoutesResult.contrailSaveTime, busRoutesResult.carModel, + busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP, + busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP, + busRoutesResult.contrailSaveTimeDPQP + ) + } + return parameters + } + + + private fun clearAutopilotControlParameters() { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is clear.") + CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null) + } } \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 73ca90cec5..ce06a4d692 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -263,7 +263,7 @@ public class TaxiModel { //更新接单状态 public void updateCarStatus() { if (!LoginStatusManager.isLogin()) { - LoginStatusManager.queryLoginStatusByNet(); + LoginStatusManager.queryLoginStatusByNet(false); return; } boolean currentOrderStatus = LoginStatusManager.isOpenOrderType(); @@ -280,7 +280,7 @@ public class TaxiModel { // 上个状态是暂停接单 暂停成功 VoiceNotice.showNotice("开始接单啦!"); } - LoginStatusManager.queryLoginStatusByNet(); + LoginStatusManager.queryLoginStatusByNet(false); } } @@ -1063,7 +1063,7 @@ public class TaxiModel { if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) { if (NetworkUtils.isConnected(mContext)) { startOrStopOrderLoop(LoginStatusManager.isLogin() && LoginStatusManager.isOpenOrderType()); - LoginStatusManager.queryLoginStatusByNet(); + LoginStatusManager.queryLoginStatusByNet(false); } } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt index dac5762545..5298c482f5 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt @@ -377,31 +377,29 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis fun onReceiveBadCaseRecord(msgBoxBean: MsgBoxBean, activity: Activity, countdown: Boolean) { CallerLogger.d("$M_DEVA$TAG", "收到录包结果回调${record}") CallerLogger.d("$M_DEVA$TAG", "开始创建被动录包弹窗,window num=${BadCaseConfig.windowNum}") - if(!ProjectUtils.isSaas()){ - ThreadUtils.runOnUiThread { - val passiveBadCaseWindow = PassiveBadCaseWindow(activity) - passiveBadCaseWindow.setRecord(msgBoxBean) - passiveBadCaseWindow.setClickListener(object : PassiveBadCaseWindow.ClickListener { - override fun closeWindow() { - passiveBadCaseWindow.hideFloatWindow() - } - }) - passiveBadCaseWindow.showFloatWindow() - if (countdown) { - val countDownTimer = object : CountDownTimer(10000, 10000) { - override fun onTick(p0: Long) { - } - - override fun onFinish() { - //如果有页面操作,则不自动关闭窗口 - if(!passiveBadCaseWindow.isOperated()){ - passiveBadCaseWindow.hideFloatWindow() - BadCaseConfig.windowNum-- - } - } - } - countDownTimer.start() + ThreadUtils.runOnUiThread { + val passiveBadCaseWindow = PassiveBadCaseWindow(activity) + passiveBadCaseWindow.setRecord(msgBoxBean) + passiveBadCaseWindow.setClickListener(object : PassiveBadCaseWindow.ClickListener { + override fun closeWindow() { + passiveBadCaseWindow.hideFloatWindow() } + }) + passiveBadCaseWindow.showFloatWindow() + if (countdown) { + val countDownTimer = object : CountDownTimer(10000, 10000) { + override fun onTick(p0: Long) { + } + + override fun onFinish() { + //如果有页面操作,则不自动关闭窗口 + if(!passiveBadCaseWindow.isOperated()){ + passiveBadCaseWindow.hideFloatWindow() + BadCaseConfig.windowNum-- + } + } + } + countDownTimer.start() } } } @@ -469,6 +467,7 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis if (!FunctionBuildConfig.isDemoMode && (recordPanel.stat == 100 || recordPanel.stat == 101) && recordPanel.type != 2) { //只在司机屏生效,乘客屏不生效 if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.RECORD, RecordBagMsg( diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/coldstart/ColdStartManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/coldstart/ColdStartManager.kt index 72810d66b4..1b309fd59d 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/coldstart/ColdStartManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/coldstart/ColdStartManager.kt @@ -2,12 +2,14 @@ package com.zhjt.mogo_core_function_devatools.coldstart import android.content.Context import android.util.Log +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizListener import com.mogo.eagle.core.function.api.och.IOchFunctionCallNotify import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.zhjt.mogo.adas.data.AdasConstants @@ -44,23 +46,26 @@ object ColdStartManager: IMoGoAutopilotStatusListener, IDataCenterBizListener { status: AdasConstants.IpcConnectionStatus, reason: String? ){ - //域控连接异常 - if(status != AdasConstants.IpcConnectionStatus.CONNECTED){ - //当前进入主页方式为立即用车,则在主页面不再展示冷启动页面 - if(isColdStartNow && !isColdStartSuccess){ - return - } - if(isColdStartNow && ColdStartConfig.getColdStartNowTime() > ColdStartConfig.getColdStartSuccessTime()){ - return - } - //已登录且距离上次冷启动成功超过1分钟,再次展示冷启动页面 - if(!ColdStartConfig.getShowWindowStatus() && loginStatus && System.currentTimeMillis().minus(ColdStartConfig.getColdStartSuccessTime())>60000){ - if(System.currentTimeMillis().minus(ipcConnectedTime) > 60000){ - CallerHmiManager.showColdStartWindow() + //冷启动只上司机屏 + if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + //域控连接异常 + if(status != AdasConstants.IpcConnectionStatus.CONNECTED){ + //当前进入主页方式为立即用车,则在主页面不再展示冷启动页面 + if(isColdStartNow && !isColdStartSuccess){ + return } + if(isColdStartNow && ColdStartConfig.getColdStartNowTime() > ColdStartConfig.getColdStartSuccessTime()){ + return + } + //已登录且距离上次冷启动成功超过1分钟,再次展示冷启动页面 + if(!ColdStartConfig.getShowWindowStatus() && loginStatus && System.currentTimeMillis().minus(ColdStartConfig.getColdStartSuccessTime())>60000){ + if(System.currentTimeMillis().minus(ipcConnectedTime) > 60000){ + CallerHmiManager.showColdStartWindow() + } + } + }else{ + ipcConnectedTime = System.currentTimeMillis() } - }else{ - ipcConnectedTime = System.currentTimeMillis() } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt index 5d4adff1d0..19db18b10e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt @@ -7,6 +7,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.commons.env.ProjectUtils import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.report.ReportEntity import com.mogo.eagle.core.data.enums.DataSourceType @@ -114,12 +115,15 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( if (isShowData) { if (category == MsgCategory.RECORD_BAG) { if (!FunctionBuildConfig.isDemoMode && FunctionBuildConfig.isShowBagRecordWindow) { - //弹出被动录包弹窗 - CallerDevaToolsManager.onReceiveBadCaseRecord( - msgBoxBean, - context as Activity, - true - ) + //660开始saas环境下原有的接管录包弹窗不弹了,其他环境下还弹 + if(!ProjectUtils.isSaas()){ + //弹出被动录包弹窗 + CallerDevaToolsManager.onReceiveBadCaseRecord( + msgBoxBean, + context as Activity, + true + ) + } CallerMsgBoxEventListenerManager.invokeUpdateTipListener(true) } } else if (category == MsgCategory.SYS_INFO) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MsgBoxToastView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MsgBoxToastView.kt index df714ba51d..0b695bc18b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MsgBoxToastView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MsgBoxToastView.kt @@ -7,6 +7,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.commons.env.ProjectUtils import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.report.ReportEntity import com.mogo.eagle.core.data.enums.DataSourceType @@ -102,12 +103,15 @@ class MsgBoxToastView @JvmOverloads constructor( if (isShowData) { if (category == MsgCategory.RECORD_BAG) { if (!FunctionBuildConfig.isDemoMode && FunctionBuildConfig.isShowBagRecordWindow) { - //弹出被动录包弹窗 - CallerDevaToolsManager.onReceiveBadCaseRecord( - msgBoxBean, - context as Activity, - true - ) + //660开始saas环境下原有的接管录包弹窗不弹了,其他环境下还弹 + if(!ProjectUtils.isSaas()){ + //弹出被动录包弹窗 + CallerDevaToolsManager.onReceiveBadCaseRecord( + msgBoxBean, + context as Activity, + true + ) + } CallerMsgBoxEventListenerManager.invokeUpdateTipListener(true) } } else if (category == MsgCategory.SYS_INFO) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/preferences/PreferenceWithSpeedSetting.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/preferences/PreferenceWithSpeedSetting.kt index c5bd5d3df5..f990d1e229 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/preferences/PreferenceWithSpeedSetting.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/preferences/PreferenceWithSpeedSetting.kt @@ -2,23 +2,18 @@ package com.mogo.eagle.core.function.hmi.ui.operate.preferences import android.annotation.SuppressLint import android.content.Context -import android.text.Editable import android.util.AttributeSet import android.widget.EditText import android.widget.TextView import androidx.core.widget.doAfterTextChanged -import androidx.core.widget.doBeforeTextChanged -import androidx.core.widget.doOnTextChanged import androidx.preference.Preference import androidx.preference.PreferenceViewHolder import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.kotlin.onClickWidthDuration -import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.util.ToastUtils import java.math.BigDecimal import java.util.concurrent.ConcurrentHashMap -import kotlin.math.max class PreferenceWithSpeedSetting : Preference { @@ -74,7 +69,7 @@ class PreferenceWithSpeedSetting : Preference { if (cache.containsKey(key)) { cur = cache[key] ?: cur } - cur = BigDecimal.valueOf(cur).setScale(1).toDouble() + cur = cur.safeScale() if (speedLimit is EditText) { speedLimit.setText(cur.toString()) speedLimit.doAfterTextChanged { text -> @@ -89,14 +84,13 @@ class PreferenceWithSpeedSetting : Preference { btnOk.isEnabled = false holder.itemView.isEnabled = false ll.isSelected = false - ToastUtils.showShort("阈值最大为${BigDecimal.valueOf(max).setScale(1)}$unit") + ToastUtils.showShort("阈值最大为${max.safeScale()}$unit") return@doAfterTextChanged } - val temp = BigDecimal.valueOf(current).setScale(1).toDouble() + val temp = current.safeScale() if (cur == temp) { return@doAfterTextChanged } - Logger.d("RWJ", "--- cache ---- 2 ---: $cur, $temp") cur = temp btnOk.isEnabled = true ll.isSelected = true @@ -115,7 +109,7 @@ class PreferenceWithSpeedSetting : Preference { minus.onClickWidthDuration(100) { val minusAfter = cur - step if (minusAfter < min) { - ToastUtils.showShort("阈值最小为${BigDecimal.valueOf(min).setScale(1)}$unit") + ToastUtils.showShort("阈值最小为${min.safeScale()}$unit") return@onClickWidthDuration } cur = minusAfter @@ -135,7 +129,7 @@ class PreferenceWithSpeedSetting : Preference { add.onClickWidthDuration(100) { val addAfter = cur + step if (addAfter > max) { - ToastUtils.showShort("阈值最大为${BigDecimal.valueOf(max).setScale(1)}$unit") + ToastUtils.showShort("阈值最大为${max.safeScale()}$unit") return@onClickWidthDuration } holder.itemView.isEnabled = false @@ -159,4 +153,8 @@ class PreferenceWithSpeedSetting : Preference { } } } + + private fun Double.safeScale(s: Int = 1): Double { + return runCatching { BigDecimal.valueOf(this).setScale(s).toDouble() }.getOrNull() ?: this + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/viewport/VisualAngleToggleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/viewport/VisualAngleToggleView.kt index 8cb7971cd9..816b466873 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/viewport/VisualAngleToggleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/viewport/VisualAngleToggleView.kt @@ -39,21 +39,30 @@ class VisualAngleToggleView : FrameLayout, IMoGoVisualAngleChangeProvider.OnMoGo val defaultSlop = AutoSizeUtils.dp2px(context, 12.0f) val scrollSlop = max(context.let { ViewConfiguration.get(it).scaledTouchSlop }, defaultSlop) val gestureDetector = GestureDetector(context, object : GestureDetector.SimpleOnGestureListener() { + + private var flag = false + override fun onDown(e: MotionEvent): Boolean { + flag = false return true } override fun onScroll(e1: MotionEvent, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean { + if (flag) { + return super.onScroll(e1, e2, distanceX, distanceY) + } val absX = abs(e2.x - e1.x) val absY = abs(e2.y - e1.y) if (absY <= absX) { return false } if (e2.y - e1.y >= scrollSlop) { + flag = true moveToBottom() return true } if (e1.y - e2.y >= scrollSlop) { + flag = true moveToTop() return true } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt index c0f26e90e5..944cee49d4 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt @@ -43,7 +43,6 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { private val prevScene by lazy { AtomicReference() } - private var timerJob: Job? = null private val listener = object : IMoGoMapRoadListener { private val roadId = AtomicReference() @@ -207,23 +206,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { DOWN -> CallerMapUIServiceManager.getMapUIController()?.setScreenToOriginDis(5.0f) } if (target !is Roma) { - if (target is LongSight) { - timerJob?.safeCancel() - scope.launch { - CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(false) - itx.changeMapVisualAngle(angle, null) - delay(3000) - CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(true) - }.also { - it.invokeOnCompletion { - CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(true) - } - timerJob = it - } - } else { - timerJob?.safeCancel() - itx.changeMapVisualAngle(angle, null) - } + itx.changeMapVisualAngle(angle, null) } } finally { if (prev == null || prev.javaClass != target.javaClass) { diff --git a/gradle.properties b/gradle.properties index 5c697b2723..b0c6bf9734 100644 --- a/gradle.properties +++ b/gradle.properties @@ -83,7 +83,7 @@ MOGO_TELEMATIC_VERSION=1.4.7.42 MOGO_SKIN_VERSION=1.4.7.49.3-debug ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=3.4.1.15 +MAP_SDK_VERSION=3.4.1.16 MAP_SDK_DATA_VERSION=1.0.0.9 MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket