diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt index ac302ad156..b2fcc24349 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt @@ -92,7 +92,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ d(M_OCHCOMMON + TAG, "onAutopilotRotting: 收到轨迹") globalPathResp?.wayPointsList?.let { if (it.size > 0) { - d(M_OCHCOMMON + TAG, "收到轨迹:${it.size}第一个点${it[0]}最后一个点:${it.last()}") + d(M_OCHCOMMON + TAG, "收到轨迹:轨迹个数${it.size}第一个点${it[0]}最后一个点:${it.last()} 轨迹id:${globalPathResp.lineId}") if(globalPathResp.lineId!=null) {// 适配低版本不传递lineId if (globalPathResp.lineId == lineId && !mRoutePoints.isNullOrEmpty()) { d(M_OCHCOMMON + TAG, "重复轨迹") diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/CommonAmapNaviVIew.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/CommonAmapNaviVIew.kt index bc16c9fb2b..0a34893090 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/CommonAmapNaviVIew.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/CommonAmapNaviVIew.kt @@ -134,7 +134,6 @@ class CommonAmapNaviVIew @JvmOverloads constructor( } override fun onNaviCancel() { - TODO("Not yet implemented") } override fun onNaviBackClick(): Boolean { @@ -170,11 +169,11 @@ class CommonAmapNaviVIew @JvmOverloads constructor( } override fun onMapTypeChanged(p0: Int) { - TODO("Not yet implemented") + } override fun onNaviViewShowMode(p0: Int) { - TODO("Not yet implemented") + } fun onCreate(savedInstanceState : Bundle?){ diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt index 0255c7fae7..48cf6f23ee 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt @@ -96,8 +96,10 @@ class TaxiPassengerBaseFragment() : ck_setting.visibility = View.VISIBLE if (DeviceUtils.isLenovoModel() || DeviceUtils.isEB5Model()) { romaPView.visibility = View.VISIBLE + romaDistanceView.visibility = View.VISIBLE } else { romaPView.visibility = View.GONE + romaDistanceView.visibility = View.GONE } rv_location_center.visibility = View.VISIBLE pcnActionView.visibility = View.VISIBLE @@ -111,6 +113,7 @@ class TaxiPassengerBaseFragment() : presenter?.setItineraryVisibility() ck_setting.visibility = View.VISIBLE romaPView.visibility = View.GONE + romaDistanceView.visibility = View.GONE rv_location_center.visibility = View.VISIBLE pcnActionView.visibility = View.VISIBLE CallerHmiManager.showTrafficLightView() @@ -124,6 +127,7 @@ class TaxiPassengerBaseFragment() : ck_setting.visibility = View.GONE ck_setting.isChecked = false romaPView.visibility = View.GONE + romaDistanceView.visibility = View.GONE rv_location_center.visibility = View.GONE pcnActionView.visibility = View.GONE CallerHmiManager.hideTrafficLightView() diff --git a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml index c7355508c5..0b37513c4c 100644 --- a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -82,6 +82,7 @@ app:roma_open="@drawable/taxi_p_roma_checked" /> > : MvpFragment> : MvpFragment(), driveToNearestStationTask: StartServiceRespBean.Result?, currentTaskWithOrder: QueryCurrentTaskRespBean.Result? ) { - if (currentTaskWithOrder?.endSite != null && currentTaskWithOrder.startSite != null + if (currentTaskWithOrder?.endSite != null && (currentTaskWithOrder.currentStatus < TaskStatusEnum.CompleteTask.code ||currentTaskWithOrder.order != null) ) { diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt index cf4f690875..9190377910 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt @@ -706,7 +706,8 @@ object TaxiTaskModel { if (result.order != null && result.currentStatus == TaskStatusEnum.CompleteTask.code && result.servingStatus == 1){ - if (result.order!!.orderStatus <= TaxiOrderStatusEnum.ArriveAtStart.code) { + if (result.taskType <= TaskTypeEnum.VirtualTask.code + && result.order!!.orderStatus < TaxiOrderStatusEnum.ArriveAtStart.code) { VoiceNotice.showNotice("已为您接到订单") } if (result.taskType == TaskTypeEnum.ToOrderStartTask.code diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java index 0ce5fc4b14..98a14737f1 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java @@ -287,7 +287,7 @@ public class TaxiTrajectoryManager { } if (mPreAutoPilotLine != null){ - DebugView.Companion.printInfoMsg("[下发轨迹] sendTrajectoryDownloadReq, lindId=" + mPreAutoPilotLine.getLineId() + ", lineName=" + mPreAutoPilotLine.getLineName()); + DebugView.Companion.printInfoMsg("[下发预加载轨迹] sendTrajectoryDownloadReq, lindId=" + mPreAutoPilotLine.getLineId() + ", lineName=" + mPreAutoPilotLine.getLineName()); CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mPreAutoPilotLine, PRE_LOADING); }else { CallerLogger.e(M_TAXI + TAG, "sendTrajectoryReq(): mPreAutoPilotLine is null!!!"); diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt index e87c375d9b..71c42538b5 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt @@ -95,8 +95,10 @@ class TaxiPassengerBaseFragment() : ck_setting.visibility = View.VISIBLE if (DeviceUtils.isLenovoModel() || DeviceUtils.isEB5Model()) { romaPView.visibility = View.VISIBLE + romaDistanceView.visibility = View.VISIBLE } else { romaPView.visibility = View.GONE + romaDistanceView.visibility = View.GONE } rv_location_center.visibility = View.VISIBLE pcnActionView.visibility = View.VISIBLE @@ -110,6 +112,7 @@ class TaxiPassengerBaseFragment() : presenter?.setItineraryVisibility() ck_setting.visibility = View.VISIBLE romaPView.visibility = View.GONE + romaDistanceView.visibility = View.GONE rv_location_center.visibility = View.VISIBLE pcnActionView.visibility = View.VISIBLE CallerHmiManager.showTrafficLightView() @@ -123,6 +126,7 @@ class TaxiPassengerBaseFragment() : ck_setting.visibility = View.GONE ck_setting.isChecked = false romaPView.visibility = View.GONE + romaDistanceView.visibility = View.GONE rv_location_center.visibility = View.GONE pcnActionView.visibility = View.GONE CallerHmiManager.hideTrafficLightView() diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_base_fragment.xml index 4d18993fe7..7054f8eeb8 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -80,6 +80,7 @@ app:roma_open="@drawable/taxi_p_roma_checked" /> + diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 71afc9c3c1..70bbc2c775 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -11,6 +11,7 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_SOURCE_ADAS; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_TYPE_INIT_STATUS; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_TYPE_SOCKET_AUTOPILOT; +import android.content.Context; import android.os.Handler; import android.os.Message; import android.os.SystemClock; @@ -138,6 +139,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec */ private SubscribeInterface subscribeInterface; private Timer carConfigReqTimer;//车辆基础信息请求 多次请求防止无法收到基础信息情况出现 + private Context context; public void setOnMultiDeviceListener(OnMultiDeviceListener onMultiDeviceListener) { this.onMultiDeviceListener = onMultiDeviceListener; @@ -169,7 +171,8 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec * @param options * @param onAdasConnectStatusListener */ - AdasChannel(AdasOptions options, OnAdasConnectStatusListener onAdasConnectStatusListener) { + AdasChannel(Context context, AdasOptions options, OnAdasConnectStatusListener onAdasConnectStatusListener) { + this.context = context; this.adasConnectStatusListener = onAdasConnectStatusListener; //配置为null默认是乘客屏幕 if (options == null) { @@ -279,7 +282,8 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec nodeAliasCode = CHAIN_CODE_ADAS_INIT, paramIndexes = {-1}) private void initSocket() { - mSocket = new FpgaSocket(); + mSocket = new FpgaSocket(context); + context = null; mSocket.setWebSocketListener(this); if (isUseQueue) { WebSocketQueueManager.getInstance().registerWebSocketListener(this); diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 3bf97a5cce..b51e102f23 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -103,13 +103,13 @@ public class AdasManager implements IAdasNetCommApi { * @param options 连接参数 * @param onAdasConnectStatusListener 连接状态监听 */ - public synchronized void create(AdasOptions options, OnAdasConnectStatusListener onAdasConnectStatusListener) { + public synchronized void create(Context context, AdasOptions options, OnAdasConnectStatusListener onAdasConnectStatusListener) { if (mChannel != null) { mChannel.disconnect(); carConfig = null; mChannel = null; } - mChannel = new AdasChannel(options, onAdasConnectStatusListener); + mChannel = new AdasChannel(context, options, onAdasConnectStatusListener); } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/ReconnectManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/ReconnectManager.java index 1431b08472..421bafa95b 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/ReconnectManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/ReconnectManager.java @@ -1,5 +1,15 @@ package com.zhidao.support.adas.high.common; +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.Network; +import android.net.NetworkRequest; +import android.os.Build; +import android.util.Log; + +import androidx.annotation.NonNull; +import androidx.annotation.RequiresApi; + import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.atomic.AtomicBoolean; @@ -13,15 +23,17 @@ public class ReconnectManager { private final AtomicBoolean isReconnection = new AtomicBoolean(false);//是否正在重连 private final OnReconnectListener listener; private volatile Timer timer; + private final Context context; + private final AtomicBoolean isRegisterNetworkCallback = new AtomicBoolean(false); public interface OnReconnectListener { - void onReconnection(); + void onReconnection(String tag); } - public ReconnectManager(OnReconnectListener listener) { + public ReconnectManager(Context context, OnReconnectListener listener) { + this.context = context; this.listener = listener; - } /** @@ -36,6 +48,12 @@ public class ReconnectManager { if (!isReconnection.get()) { CupidLogUtils.i(TAG, "开始重连"); isReconnection.set(true); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkRequest networkRequest = new NetworkRequest.Builder().build(); + connMgr.registerNetworkCallback(networkRequest, networkCallback); + isRegisterNetworkCallback.set(true); + } if (timer == null) { timer = new Timer(); timer.schedule(new TimerTask() { @@ -43,7 +61,7 @@ public class ReconnectManager { public void run() { if (isReconnection.get()) { if (listener != null) - listener.onReconnection(); + listener.onReconnection("定时器"); } } }, 0, RECONNECT_INTERVAL);//延时 @@ -54,11 +72,26 @@ public class ReconnectManager { public synchronized void stop() { CupidLogUtils.i(TAG, "停止重连"); isReconnection.set(false); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && isRegisterNetworkCallback.get()) { + ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + connMgr.unregisterNetworkCallback(networkCallback); + isRegisterNetworkCallback.set(false); + } if (timer != null) { timer.cancel(); timer = null; } } + @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) + private final ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() { + @Override + public void onAvailable(@NonNull Network network) { + super.onAvailable(network); + Log.i(TAG, "网络连接成功"); + if (listener != null) + listener.onReconnection("网络监听"); + } + }; } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java index 9ba4c32a95..d2c205aae1 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java @@ -6,6 +6,7 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_TYPE_INIT_STATU import static com.zhidao.support.adas.high.common.Constants.RESOURCE_PATH; import static com.zhidao.support.adas.high.common.Constants.WS_IP_HOST_HEAD; +import android.content.Context; import android.os.SystemClock; import android.text.TextUtils; import android.util.Log; @@ -79,11 +80,11 @@ public class FpgaSocket implements IWebSocket { */ private volatile String receiveTimeoutReason = null; - public FpgaSocket() { - init(); + public FpgaSocket(Context context) { + init(context); } - private void init() { + private void init(Context context) { listener = new EchoWebSocketListener(); OkHttpClient.Builder okBuilder = new OkHttpClient.Builder(); okBuilder.writeTimeout(4, TimeUnit.SECONDS) @@ -96,10 +97,10 @@ public class FpgaSocket implements IWebSocket { onPassiveClose(1001, receiveTimeoutReason); } }); - reconnectManager = new ReconnectManager(new ReconnectManager.OnReconnectListener() { + reconnectManager = new ReconnectManager(context, new ReconnectManager.OnReconnectListener() { @Override - public void onReconnection() { - connect("重连中"); + public void onReconnection(String tag) { + connect("重连中(" + tag + ")"); } }); client = okBuilder.build();