diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index 84550d31d3..68c4e097c5 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -59,6 +59,7 @@ import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.common.module.utils.SoundPoolHelper; +import com.mogo.och.common.module.utils.ToastUtilsOch; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; @@ -606,10 +607,14 @@ public class BusOrderModel { @Override public void onFail(String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort(failMsg); + isArrivedStation = false; + isGoingToNextStation = true; + if (ToastUtilsOch.isCustomFastClick(5000)){ + if (!NetworkUtils.isConnected(mContext)) { + ToastUtils.showShort("网络异常,请稍后重试"); + }else { + ToastUtils.showShort(failMsg); + } } } }); diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java index 829093f3a7..a2a02a8475 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java @@ -4,6 +4,11 @@ import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.utilcode.util.ToastUtils; public class ToastUtilsOch { + + private static long lastClickTime; + // 两次点击按钮之间的点击间隔不能少于1000毫秒 + private static int MIN_CLICK_DELAY_TIME = 1000; + public static void showWithCodeMessage(int code,String message){ if(message==null){ return; @@ -14,4 +19,15 @@ public class ToastUtilsOch { ToastUtils.showShort(message); } } + + public static boolean isCustomFastClick(int customCLickDelayTime) { + MIN_CLICK_DELAY_TIME = customCLickDelayTime; + boolean flag = false; + long curClickTime = System.currentTimeMillis(); + if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) { + flag = true; + } + lastClickTime = curClickTime; + return flag; + } } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java index 7f93833b86..29c26ae3c7 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java @@ -11,6 +11,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import com.elegant.utils.UiThreadHandler; +import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.OverlayViewUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; @@ -159,6 +160,7 @@ public class TaxiPassengerStartAutopilotView extends RelativeLayout implements V } public void updateStartAutopilotBtnStatus(boolean isClickable){ + if (mContext == null) return; if (isClickable){ mStartAutopilotBtn.setTextColor( mContext.getResources().getColor(R.color.taxi_p_start_autopilot_txt_color)); @@ -259,6 +261,7 @@ public class TaxiPassengerStartAutopilotView extends RelativeLayout implements V } private void updateStatusCountDownOver() { + if (mContext == null) return; isStarting = false; startingCarBgAnimatorDrawable(false); mStartAutopilotBtn.setText( @@ -273,4 +276,14 @@ public class TaxiPassengerStartAutopilotView extends RelativeLayout implements V mContext = null; super.onDetachedFromWindow(); } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + try { + mContext = AbsMogoApplication.getApp(); + }catch (Exception e){ + e.printStackTrace(); + } + } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 4229be3ef9..8ebdf939ae 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -36,7 +36,6 @@ class DevaToolsProvider : IDevaToolsProvider { override fun initBiz() { bizConfigCenter.init(mContext!!) - FuncConfigImpl.init() traceManager.init(mContext!!) MogoLogCatchManager.init(mContext!!) } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/funcconfig/FuncConfigImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/funcconfig/FuncConfigImpl.kt index f2c0e0c114..0f9f976b4f 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/funcconfig/FuncConfigImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/funcconfig/FuncConfigImpl.kt @@ -23,10 +23,7 @@ object FuncConfigImpl { data: String? ) { when (type) { - BIZ_BEAUTY_MODE -> FunctionBuildConfig.isDemoMode = state - BIZ_RAIN_MODE -> FunctionBuildConfig.isRainMode = state - BIZ_WARNING_UPLOAD -> FunctionBuildConfig.isReportWarning = state - } + } } } ) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 7e71484bdf..b4ad81e21b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -1415,29 +1415,27 @@ class MoGoHmiFragment : MvpFragment(), "EmArrow-1013", "it code : ${it.code} , state : ${getAutoPilotStatusInfo().state}" ) - if (getAutoPilotStatusInfo().state != STATUS_AUTOPILOT_RUNNING) { - showWarningV2X( - EventTypeEnum.TAKE_OVER_EVENT.poiType, - EventTypeEnum.TAKE_OVER_EVENT.content, - EventTypeEnum.TAKE_OVER_EVENT.tts, - EventTypeEnum.TAKE_OVER_EVENT.poiType, - object : IMoGoWarningStatusListener { - override fun onShow() { - Log.d("EmArrow-1013", "onShow") - takeOver = true - clTakeOverView.visibility = View.VISIBLE - } + showWarningV2X( + EventTypeEnum.TAKE_OVER_EVENT.poiType, + EventTypeEnum.TAKE_OVER_EVENT.content, + EventTypeEnum.TAKE_OVER_EVENT.tts, + EventTypeEnum.TAKE_OVER_EVENT.poiType, + object : IMoGoWarningStatusListener { + override fun onShow() { + Log.d("EmArrow-1013", "onShow") + takeOver = true + clTakeOverView.visibility = View.VISIBLE + } - override fun onDismiss() { - Log.d("EmArrow-1013", "onDismiss") - takeOver = false - clTakeOverView.visibility = View.GONE - } - }, - true, - 6000L - ) - } + override fun onDismiss() { + Log.d("EmArrow-1013", "onDismiss") + takeOver = false + clTakeOverView.visibility = View.GONE + } + }, + true, + 6000L + ) } } } 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 e842a2dd1e..ac985fbe5f 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 @@ -9,6 +9,7 @@ import android.graphics.Color import android.os.Build import android.text.Html import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.annotation.RequiresApi @@ -1857,7 +1858,6 @@ class DebugSettingView @JvmOverloads constructor( override fun updateBizData(type: String, state: Boolean, lock: Boolean, data: String?) { when (type) { BIZ_BEAUTY_MODE -> { - tbIsDemoMode.isClickable = !lock if(lock){ tbIsDemoMode.background = resources.getDrawable(R.drawable.radio_button_lock_background) }else{ @@ -1865,7 +1865,6 @@ class DebugSettingView @JvmOverloads constructor( } } BIZ_RAIN_MODE -> { - tbIsRainMode.isClickable = !lock if(lock){ tbIsRainMode.background = resources.getDrawable(R.drawable.radio_button_lock_background) }else{ @@ -1873,7 +1872,6 @@ class DebugSettingView @JvmOverloads constructor( } } BIZ_WARNING_UPLOAD -> { - tbReportWarning.isClickable = !lock if(lock){ tbReportWarning.background = resources.getDrawable(R.drawable.radio_button_lock_background) }else{ @@ -1882,20 +1880,16 @@ class DebugSettingView @JvmOverloads constructor( } BIZ_BAG_RECORD -> { if (lock) { - btnRecordBag.isClickable = false btnRecordBag.background = resources.getDrawable(R.drawable.radio_button_lock_background) } else { - btnRecordBag.isClickable = true btnRecordBag.requestFocus() btnRecordBag.background = null } } BIZ_FULL_LOG -> { if (lock) { - tbLogCatch.isClickable = false tbLogCatch.background = resources.getDrawable(R.drawable.radio_button_lock_background) } else { - tbLogCatch.isClickable = true tbLogCatch.requestFocus() tbLogCatch.background = null } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/PerspectiveSwitchView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/PerspectiveSwitchView.kt index 0d91542d7b..4caa7e4038 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/PerspectiveSwitchView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/PerspectiveSwitchView.kt @@ -32,18 +32,18 @@ class PerspectiveSwitchView @JvmOverloads constructor( override fun onClick(v: View?) { //切换地图的远近视图 if (MogoMapUIController.getInstance().currentMapVisualAngle.isLongSight) { - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) - .visibleAllMarkers() +// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) +// .visibleAllMarkers() MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null) textSwitch.setText(R.string.module_map_model_normal) } else if (MogoMapUIController.getInstance().currentMapVisualAngle.isMediumSight) { - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) - .inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS) +// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) +// .inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS) MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null) textSwitch.setText(R.string.module_map_model_faster) } else { - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) - .visibleAllMarkers() +// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) +// .visibleAllMarkers() MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null) textSwitch.setText(R.string.module_map_model_normal) } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt index 616638f90e..b62c0c066e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt @@ -483,6 +483,7 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb }) } + AiRoadMarker.receive(Marker(this.roadwork?.center?.point?.lat ?: 0.0, this.roadwork?.center?.point?.lon ?: 0.0, this.roadwork?.center?.road?.bearing?.toDouble() ?: 0.0, null, null, null)) } // private fun buildRoadEntity(e: V2XMarkerExploreWay, extra: Map? = null): V2XRoadEventEntity { // 记录道路事件 diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/V2XScenarioManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/V2XScenarioManager.java index 226a7043d8..800293f761 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/V2XScenarioManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/V2XScenarioManager.java @@ -6,6 +6,7 @@ import android.content.Intent; import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import com.mogo.eagle.core.function.v2x.events.scenario.scene.airoad.AiRoadMarker; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi; import com.mogo.eagle.core.function.v2x.events.consts.V2XConst; @@ -62,6 +63,7 @@ public class V2XScenarioManager implements IV2XScenarioManager { Intent intent = new Intent(V2XConst.BROADCAST_SCENE_ACTION); intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); LocalBroadcastManager.getInstance(Utils.getApp()).sendBroadcast(intent); + AiRoadMarker.INSTANCE.clear(); // 如果没有拿到之前的,根据类型分发 switch (v2XMessageEntity.getType()) { case V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING: diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/airoad/AiRoadMarker.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/airoad/AiRoadMarker.kt index 5e23c6f763..56be98086e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/airoad/AiRoadMarker.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/airoad/AiRoadMarker.kt @@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.v2x.events.scenario.scene.airoad import android.animation.* import android.content.* import android.graphics.* +import android.os.* import android.view.animation.* import androidx.core.util.Pair import androidx.lifecycle.* @@ -22,6 +23,7 @@ import com.mogo.map.overlay.* import com.mogo.module.common.entity.* import com.mogo.module.common.utils.* import io.netty.util.internal.* +import java.lang.Runnable import java.util.* import java.util.concurrent.* import java.util.concurrent.atomic.* @@ -49,6 +51,17 @@ object AiRoadMarker { private val START_COLOR = Color.parseColor("#002ABAD9") private val END_COLOR = Color.parseColor("#66FF7A30") + private val handler by lazy { + Handler(Looper.getMainLooper()) + } + + private val checkExpiredTask = Runnable { + val marker = this@AiRoadMarker.marker.get() + if (marker != null) { + unMarker(marker) + } + } + private val markers = ConcurrentSet() private val options by lazy { @@ -189,6 +202,7 @@ object AiRoadMarker { fun marker(marker: Marker, drawMarker: Boolean) { val location = carLocation.get() ?: return + this.marker.set(marker) //施工中心点前方的自车行驶方向上300米距离 val l1 = MogoMap.getInstance().mogoMap.getCenterLineRangeInfo(marker.poi_lon, marker.poi_lat, location.third.toFloat(), 300f) //施工中心点后方的自车行驶方向上300米距离 @@ -285,7 +299,7 @@ object AiRoadMarker { fun clear() { hideLine() -// V2XAiRoadEventMarker.removeMarkers(null) + V2XAiRoadEventMarker.removeMarkers(null) } fun restore() { @@ -319,6 +333,25 @@ object AiRoadMarker { return degree < 90 } + fun receive(marker: Marker) { + val cur = this.marker.get() + if (cur == marker) { + val poi = this.marker.get() + val car = this.carLocation.get() + if (poi != null && car != null) { + val distance = DrivingDirectionUtils.distance(car.first, car.second, marker.poi_lon, marker.poi_lat) + if (distance < 300) { + checkExpired() + } + } + } + } + + private fun checkExpired() { + handler.removeCallbacks(checkExpiredTask) + handler.postDelayed(checkExpiredTask, 5000) + } + data class Marker( val poi_lat: Double, val poi_lon: Double, diff --git a/gradle.properties b/gradle.properties index 7bcdb6b808..0c3001c60b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -85,7 +85,7 @@ MOGO_LOCATION_VERSION=1.4.3.26 MOGO_TELEMATIC_VERSION=1.4.3.26 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.5.1.9 +MAP_SDK_VERSION=2.6.0.10 MAP_SDK_OPERATION_VERSION=1.1.2.4 # websocket WEBSOCKET_VERSION=1.1.7