diff --git a/OCH/mogo-och-bus-passenger/build.gradle b/OCH/mogo-och-bus-passenger/build.gradle index f9be5b07ca..af805de9a1 100644 --- a/OCH/mogo-och-bus-passenger/build.gradle +++ b/OCH/mogo-och-bus-passenger/build.gradle @@ -55,16 +55,15 @@ dependencies { if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons - implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_call implementation rootProject.ext.dependencies.mogo_core_function_v2x implementation rootProject.ext.dependencies.mogo_core_function_hmi }else { - implementation project(":core:mogo-core-utils") + implementation project(':foudations:mogo-aicloud-services-sdk') implementation project(":foudations:mogo-commons") - implementation project(':modules:mogo-module-common') implementation project(':core:mogo-core-data') + implementation project(":core:mogo-core-utils") implementation project(':core:mogo-core-function-call') implementation project(':core:function-impl:mogo-core-function-v2x') implementation project(':core:function-impl:mogo-core-function-hmi') diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.java index f4d202ef6c..291a58f01d 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.java @@ -9,9 +9,9 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.commons.module.status.StatusDescriptor; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.map.MogoMapUIController; import com.mogo.och.bus.passenger.constant.BusPassengerConst; import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment; @@ -20,6 +20,8 @@ import org.jetbrains.annotations.Nullable; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; +import java.util.Objects; + /** * 网约车-Bus-乘客端 * @@ -82,9 +84,7 @@ public class MogoOCHBusPassenger implements IMogoOCH, IMogoStatusChangedListener */ private void stepIntoVrMode() { CallerLogger.INSTANCE.d( M_TAXI_P + TAG, "进入vr模式" ); - MogoMapUIController.getInstance() - .stepInVrMode( true ); // 白天模式 - + Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()).stepInVrMode(true); // 白天模式 CallerMoGoUiSettingManager.INSTANCE.stepInDayMode();//白天模式 状态栏字体颜色变黑 } diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IBusPassengerControllerStatusCallback.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IBusPassengerControllerStatusCallback.java index cc0bc3f4c7..e4663fd379 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IBusPassengerControllerStatusCallback.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IBusPassengerControllerStatusCallback.java @@ -1,6 +1,6 @@ package com.mogo.och.bus.passenger.callback; -import com.mogo.eagle.core.data.map.MogoLocation; +import mogo.telematics.pad.MessagePad; /** * Created on 2022/3/31 @@ -11,5 +11,5 @@ public interface IBusPassengerControllerStatusCallback { // 是否vr map模式 void onVRModeChanged(boolean isVRMode); // 自车定位 - void onCarLocationChanged(MogoLocation location); + void onCarLocationChanged(MessagePad.GnssInfo location); } diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt index c7b0368acd..dba3b14acc 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt @@ -23,7 +23,7 @@ class BusPassengerConst { } // OCH arouter 路由path - const val PATH = "/och/api" + const val PATH = "/passenger/api" // 轮询line const val LOOP_LINE_2S = 2 * 1000L diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 80b648d14c..ed6884d0b8 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -1,5 +1,9 @@ package com.mogo.och.bus.passenger.model; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P; +import static com.mogo.och.bus.passenger.constant.BusPassengerConst.QUERY_BUS_P_STATION_DELAY; +import static com.mogo.och.bus.passenger.constant.BusPassengerConst.STATION_STATUS_STOPPED; + import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; @@ -21,11 +25,13 @@ import com.mogo.commons.module.status.StatusDescriptor; import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ20ListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; import com.mogo.eagle.core.network.utils.GsonUtil; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; @@ -49,6 +55,7 @@ import com.mogo.och.bus.passenger.network.BusPassengerServiceManager; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; + import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -60,10 +67,6 @@ import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import system_master.SystemStatusInfo; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P; -import static com.mogo.och.bus.passenger.constant.BusPassengerConst.QUERY_BUS_P_STATION_DELAY; -import static com.mogo.och.bus.passenger.constant.BusPassengerConst.STATION_STATUS_STOPPED; - /** * Created on 2022/3/31 */ @@ -88,7 +91,7 @@ public class BusPassengerModel { private IBusPassegerDriverStatusCallback mDriverStatusCallback; //出车收车状态 private IBusPassengerRouteLineInfoCallback mRouteLineInfoCallback; // bus路线信息更新 - private MogoLocation mLocation = null; + private MessagePad.GnssInfo mLocation = null; private BusPassengerRoutesResult routesResult = null; @@ -271,10 +274,10 @@ public class BusPassengerModel { IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener ); MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener ); // 定位监听 - CallerMapLocationListenerManager.INSTANCE.addListener(TAG, mMapLocationListener,false); + CallerChassisLocationGCJ20ListenerManager.INSTANCE.addListener(TAG, mMapLocationListener); //2021.11.1 自动驾驶路线规划接口 - CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener); + CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener); AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); } @@ -289,7 +292,7 @@ public class BusPassengerModel { .unregisterLifecycleListener(10010); CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener); - CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); + CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); } @@ -318,13 +321,13 @@ public class BusPassengerModel { } }; - private final IMoGoMapLocationListener mMapLocationListener = new IMoGoMapLocationListener() { + private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() { @Override - public void onLocationChanged(@Nullable MogoLocation location, int from, boolean isGps) { - if (null == location) return; - mLocation = location; + public void onChassisLocationGCJ02(@Nullable MessagePad.GnssInfo gnssInfo) { + if (null == gnssInfo) return; + mLocation = gnssInfo; for (IBusPassengerControllerStatusCallback callback :mControllerStatusCallbackMap.values()){ - callback.onCarLocationChanged(location); + callback.onCarLocationChanged(gnssInfo); } } }; @@ -396,11 +399,7 @@ public class BusPassengerModel { } }; - private final IMoGoAutopilotPlanningListener moGoAutopilotPlanningListener = new IMoGoAutopilotPlanningListener(){ - - @Override - public void onAutopilotTrajectory(@NonNull List trajectoryInfos) { - } + private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener(){ @Override public void onAutopilotRotting(@Nullable MessagePad.GlobalPathResp routeList) { diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java index b87abc0736..d446f8b6a8 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java @@ -26,6 +26,8 @@ import java.util.List; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P; +import mogo.telematics.pad.MessagePad; + /** * Created on 2022/3/31 */ @@ -110,7 +112,7 @@ public class BaseBusPassengerPresenter extends Presenter mView.onCarLocationChanged(location)); } diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java index 6a54479707..5e262d949f 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java @@ -1,5 +1,7 @@ package com.mogo.och.bus.passenger.ui; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P; + import android.content.Context; import android.os.Bundle; import android.util.AttributeSet; @@ -25,9 +27,8 @@ import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; import com.amap.api.maps.model.Polyline; import com.amap.api.maps.model.PolylineOptions; -import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener; -import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ20ListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.och.bus.passenger.R; import com.mogo.och.bus.passenger.callback.IBusPassengerMapViewCallback; @@ -36,14 +37,16 @@ import com.mogo.och.bus.passenger.utils.BusPassengerMapAssetStyleUtil; import java.util.ArrayList; import java.util.List; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P; +import mogo.telematics.pad.MessagePad; /** * 乘客屏小地图 */ public class BusPassengerMapDirectionView extends RelativeLayout - implements IMoGoMapLocationListener, IBusPassengerMapDirectionView, AMap.OnCameraChangeListener { + implements IMoGoChassisLocationGCJ02Listener, + IBusPassengerMapDirectionView, + AMap.OnCameraChangeListener { //小地图名称 public static final String TAG = "TPMapDirectionView"; @@ -101,14 +104,14 @@ public class BusPassengerMapDirectionView initAMapView(); // 注册定位监听 - CallerMapLocationListenerManager.INSTANCE.addListener(TAG, this, false); + CallerChassisLocationGCJ20ListenerManager.INSTANCE.addListener(TAG, this); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); // 注册定位监听 - CallerMapLocationListenerManager.INSTANCE.removeListener(TAG, false); + CallerChassisLocationGCJ20ListenerManager.INSTANCE.removeListener(TAG); } private void initAMapView() { @@ -171,19 +174,18 @@ public class BusPassengerMapDirectionView return true; } - @Override - public void onLocationChanged(@org.jetbrains.annotations.Nullable MogoLocation location, int from, boolean isGps) { - if (location == null) { + public void onChassisLocationGCJ02(@Nullable MessagePad.GnssInfo gnssInfo) { + if (gnssInfo == null) { return; } // CallerLogger.INSTANCE.d(M_BUS_P + TAG, "onCarLocationChanged2 :" + location.getLatitude() + ":" + location.getLongitude()); - LatLng currentLatLng = new LatLng(location.getLatitude(), location.getLongitude()); + LatLng currentLatLng = new LatLng(gnssInfo.getLatitude(), gnssInfo.getLongitude()); //更新车辆位置 if (mCarMarker != null) { // CallerLogger.INSTANCE.d(M_BUS_P + TAG, "location.getBearing() = " + location.getBearing()); - mCarMarker.setRotateAngle(360 - location.getBearing()); + mCarMarker.setRotateAngle((float) (360 - gnssInfo.getHeading())); mCarMarker.setPosition(currentLatLng); mCarMarker.setToTop(); } @@ -208,7 +210,6 @@ public class BusPassengerMapDirectionView } - @Override public void drawablePolyline() { if (mPolyline != null) { diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java index 512046dca3..10ba73cf1a 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java @@ -1,5 +1,7 @@ package com.mogo.och.bus.passenger.ui; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P; + import android.os.Bundle; import android.view.View; import android.view.animation.Animation; @@ -14,7 +16,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.amap.api.maps.model.LatLng; import com.elegant.utils.UiThreadHandler; import com.mogo.commons.debug.DebugConfig; -import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; @@ -31,7 +32,7 @@ import com.mogo.och.common.module.wigets.MarqueeTextView; import java.util.ArrayList; import java.util.List; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P; +import mogo.telematics.pad.MessagePad; /** * @author: wangmingjun @@ -301,8 +302,8 @@ public class BusPassengerRouteFragment extends lastBearing = bearing; } - public void onCarLocationChanged(MogoLocation location) { - updateSpeedView(location.getSpeed()); + public void onCarLocationChanged(MessagePad.GnssInfo location) { + updateSpeedView((float) location.getVehicleSpeed()); } public void updateSpeedView(float speed){ diff --git a/OCH/mogo-och-bus/build.gradle b/OCH/mogo-och-bus/build.gradle index 4de0719cb7..7d6e998bbc 100644 --- a/OCH/mogo-och-bus/build.gradle +++ b/OCH/mogo-och-bus/build.gradle @@ -59,14 +59,12 @@ dependencies { if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons - implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_call implementation rootProject.ext.dependencies.mogo_core_function_hmi }else { implementation project(":core:mogo-core-utils") implementation project(":foudations:mogo-commons") - implementation project(':modules:mogo-module-common') implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-function-call') implementation project(':core:function-impl:mogo-core-function-hmi') diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java index 7e04f66bd0..5766d48689 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java @@ -13,14 +13,16 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.commons.module.status.StatusDescriptor; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.map.MogoMapUIController; import com.mogo.och.bus.constant.BusConst; import com.mogo.och.bus.fragment.BusFragment; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Objects; + /** * 网约车小巴业务实现入口 * @@ -40,8 +42,7 @@ public class BusProvider implements IMogoOCH { */ private void stepIntoVrMode() { CallerLogger.INSTANCE.d(M_BUS + TAG, "进入vr模式"); - MogoMapUIController.getInstance() - .stepInVrMode(false); + Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()).stepInVrMode(false); } @Override diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java index e10afc44e7..0a0d2e8be4 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java @@ -2,6 +2,8 @@ package com.mogo.och.bus.callback; import com.mogo.eagle.core.data.map.MogoLocation; +import mogo.telematics.pad.MessagePad; + /** * Created on 2021/9/10 * @@ -11,7 +13,7 @@ public interface IBusControllerStatusCallback { // 是否vr map模式 void onVRModeChanged(boolean isVRMode); // 自车定位 - void onCarLocationChanged(MogoLocation location); + void onCarLocationChanged(MessagePad.GnssInfo location); //开始开启自动驾驶 void startOpenAutopilot(); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt index e98439b8f1..af4b134154 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt @@ -23,7 +23,7 @@ class BusConst { } // OCH arouter 路由path - const val PATH = "/och/api" + const val PATH = "/driver/api" // 测试用的广播 const val BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY = "sceneType" diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index ad9e8b5b50..ddc42b1988 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -4,9 +4,7 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS import static com.mogo.och.bus.constant.BusConst.TIMER_START_AUTOPILOT_INTERVAL; import android.animation.ObjectAnimator; -import android.content.Intent; import android.os.Bundle; -import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -21,12 +19,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.Group; -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; -import com.mogo.commons.voice.AIAssist; import com.mogo.eagle.core.data.config.HmiBuildConfig; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; @@ -34,27 +29,23 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.hmi.ui.widget.TrafficDataView; -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.utilcode.util.ToastUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.MogoMapUIController; -import com.mogo.map.MogoMarkerManager; -import com.mogo.map.listener.IMogoMapListener; -import com.mogo.map.uicontroller.VisualAngleMode; -import com.mogo.module.common.MogoApisHandler; import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.listener.MogoMapListenerHandler; +import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.map.uicontroller.VisualAngleMode; import com.mogo.och.bus.R; import com.mogo.och.bus.bean.BusRoutesResult; -import com.mogo.och.bus.constant.BusConst; import com.mogo.och.bus.model.BusOrderModel; import com.mogo.och.bus.util.BDRouteDataTestUtils; import com.mogo.och.bus.view.SlidePanelView; import com.mogo.och.common.module.utils.SoundPoolHelper; import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.ThreadMode; import mogo.telematics.pad.MessagePad; import record_cache.RecordPanelOuterClass; @@ -68,7 +59,7 @@ import record_cache.RecordPanelOuterClass; */ public abstract class BaseBusTabFragment> extends MvpFragment implements IMogoMapListener, IMoGoAutopilotRecordListener { - private static final String TAG = "BaseOchFragment"; + private static final String TAG = "BaseBusTabFragment"; protected SlidePanelView slidePanelView; private RelativeLayout ctvAutopilotStatus; @@ -83,8 +74,6 @@ public abstract class BaseBusTabFragment private TrafficDataView mTrafficDataView; // private BusTrafficLightView mTrafficLightView; - public static final String TYPE_ENTRANCE = "entrance"; - //远景和中景的切换 private ImageView mSwitchMapModeImage; private LinearLayout mSwitchMapModeLayout; @@ -133,26 +122,21 @@ public abstract class BaseBusTabFragment updateSwitchMapIcon(); mSwitchMapModeLayout.setOnClickListener(new OnPreventFastClickListener() { - @Override public void onClickImpl(View v) { - //切换地图的远近视图 - if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isLongSight()) { - // 2.11.0去掉 -// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).visibleAllMarkers(); - MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); - mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium); - } else if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isMediumSight()) { - // 2.11.0去掉 -// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) -// .inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS, BusConst.TYPE_MARKER_BUS_ORDER); - MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null); - mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_long); - } else { - // 2.11.0去掉 -// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).visibleAllMarkers(); - MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); - mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium); + IMogoMapUIController controller = CallerMapUIServiceManager.INSTANCE.getMapUIController(); + if (controller != null) { + //切换地图的远近视图 + if (controller.getCurrentMapVisualAngle().isLongSight()) { + controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); + mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium); + } else if (controller.getCurrentMapVisualAngle().isMediumSight()) { + controller.changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null); + mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_long); + } else { + controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); + mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium); + } } } }); @@ -188,7 +172,7 @@ public abstract class BaseBusTabFragment ); findViewById(R.id.btnAutopilotRoute).setOnClickListener(view -> debugArrivedRoute()); - + tvArrived.setOnClickListener(view -> { onArriveStation(); }); @@ -226,12 +210,15 @@ public abstract class BaseBusTabFragment protected abstract void onArriveStation(); private void updateSwitchMapIcon() { - if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isLongSight()) { - mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_long); - } else if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isMediumSight()) { - mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium); - } else { - mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium); + IMogoMapUIController controller = CallerMapUIServiceManager.INSTANCE.getMapUIController(); + if (controller != null) { + if (controller.getCurrentMapVisualAngle().isLongSight()) { + mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_long); + } else if (controller.getCurrentMapVisualAngle().isMediumSight()) { + mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium); + } else { + mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium); + } } } @@ -267,7 +254,7 @@ public abstract class BaseBusTabFragment protected abstract void debugArrivedStation(); private void initListener() { - MogoApisHandler.getInstance().getApis().getRegisterCenterApi().registerMogoMapListener(TYPE_ENTRANCE, this); + MogoMapListenerHandler.Companion.getMogoMapListenerHandler().registerHostMapListener(TAG, this); } /** @@ -376,15 +363,15 @@ public abstract class BaseBusTabFragment // 主动开启自动驾驶中,不为2(为0、1)则继续loading return; } - if (isAnimateRunning){ + if (isAnimateRunning) { stopAnimAndUpdateBtnStatus(); - }else { + } else { setAutopilotBtnStatus(autopilotStatus); } } - public void stopAnimAndUpdateBtnStatus(){ + public void stopAnimAndUpdateBtnStatus() { stopAutopilotAnimation(); updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()); } @@ -494,7 +481,7 @@ public abstract class BaseBusTabFragment @Override public void onDestroy() { super.onDestroy(); - MogoApisHandler.getInstance().getApis().getRegisterCenterApi().unregisterMogoMapListener(TYPE_ENTRANCE); + MogoMapListenerHandler.Companion.getMogoMapListenerHandler().unregisterHostMapListener(TAG); } @Override diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index 1e9e003dfe..46ccc88b5b 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -19,10 +19,10 @@ import com.mogo.eagle.core.data.temp.EventLogout; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.map.CallerHDMapManager; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.call.map.CallerSmpManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.map.MogoMarkerManager; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.och.bus.R; @@ -43,6 +43,7 @@ import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.List; +import java.util.Objects; /** @@ -456,42 +457,35 @@ public class BusFragment extends BaseBusTabFragment */ private void setOrRemoveMapMaker(boolean isAdd, String uuid, double lat, double longi,int resourceId) { if (isAdd) { - Runnable setMapMarkerRunnable = new Runnable() { - @Override - public void run() { - CallerLogger.INSTANCE.d(M_BUS + "setMapMaker= "+Thread.currentThread().getName(), - uuid + "=latitude=" + lat + ",longitude=" + longi); + Runnable setMapMarkerRunnable = () -> { + CallerLogger.INSTANCE.d(M_BUS + "setMapMaker= "+Thread.currentThread().getName(), + uuid + "=latitude=" + lat + ",longitude=" + longi); - MogoMarkerOptions options = new MogoMarkerOptions() - .owner(BusConst.TYPE_MARKER_BUS_ORDER) - .anchor(0.5f, 0.5f) - .set3DMode(true) - .gps(true) - .controlAngle(true) - .icon3DRes(resourceId) - .latitude(lat) - .longitude(longi); - IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .addMarker(uuid, options); - CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo( - longi,lat,-1); - if (null != centerLine && marker != null) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空 - marker.setRotateAngle(centerLine.getAngle().floatValue()); - } + MogoMarkerOptions options = new MogoMarkerOptions() + .owner(BusConst.TYPE_MARKER_BUS_ORDER) + .anchor(0.5f, 0.5f) + .set3DMode(true) + .gps(true) + .controlAngle(true) + .icon3DRes(resourceId) + .latitude(lat) + .longitude(longi); + IMogoMarker marker = Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMarkerManager(AbsMogoApplication.getApp())).addMarker(uuid, options); + CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo( + longi,lat,-1); + if (null != centerLine && marker != null) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空 + marker.setRotateAngle(centerLine.getAngle().floatValue()); } }; OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable); }else { - Runnable removeMapMarkerRunnable = new Runnable() { - @Override - public void run() { - CallerLogger.INSTANCE.d(M_BUS + "RemoveMapMaker="+Thread.currentThread().getName(), - uuid+"=latitude="+lat+",longitude="+longi); - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).removeMarkers(uuid); - } + Runnable removeMapMarkerRunnable = () -> { + CallerLogger.INSTANCE.d(M_BUS + "RemoveMapMaker="+Thread.currentThread().getName(), + uuid+"=latitude="+lat+",longitude="+longi); + Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMarkerManager(AbsMogoApplication.getApp())).removeMarkers(uuid); }; - OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable); } } 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 148aa350ca..35afd1bd91 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 @@ -24,13 +24,13 @@ import com.mogo.commons.module.status.StatusDescriptor; import com.mogo.eagle.core.data.BaseData; 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.IMoGoAutopilotPlanningListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ20ListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.NetworkUtils; @@ -151,12 +151,12 @@ public class BusOrderModel { mContext = AbsMogoApplication.getApp(); loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation(); // 定位监听 - CallerMapLocationListenerManager.INSTANCE.addListener(TAG, mMapLocationListener, false); + CallerChassisLocationGCJ20ListenerManager.INSTANCE.addListener(TAG, mMapLocationListener); MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); //自动驾驶路线规划接口 - CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG, moGoAutopilotPlanningListener); + CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG, moGoAutopilotPlanningListener); //开启自驾后 异常信息返回 OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener); @@ -266,12 +266,7 @@ public class BusOrderModel { this.mControllerStatusCallback = callback; } - private final IMoGoAutopilotPlanningListener moGoAutopilotPlanningListener = new IMoGoAutopilotPlanningListener() { - - @Override - public void onAutopilotTrajectory(@NonNull List trajectoryInfos) { - - } + private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener() { @Override public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) { @@ -339,7 +334,7 @@ public class BusOrderModel { CallerMapLocationListenerManager.INSTANCE.removeListener(TAG,false); //自动驾驶路线规划接口 - CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); + CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); loginService = null; OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); @@ -381,25 +376,25 @@ public class BusOrderModel { }; // 自车定位 - private final IMoGoMapLocationListener mMapLocationListener = new IMoGoMapLocationListener() { + private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() { @Override - public void onLocationChanged(@Nullable MogoLocation location, int from, boolean isGps) { - if (null == location) return; - mLongitude = location.getLongitude(); - mLatitude = location.getLatitude(); + public void onChassisLocationGCJ02(@Nullable MessagePad.GnssInfo gnssInfo) { + if (null == gnssInfo) return; + mLongitude = gnssInfo.getLongitude(); + mLatitude = gnssInfo.getLatitude(); if (mControllerStatusCallback != null) { - mControllerStatusCallback.onCarLocationChanged(location); + mControllerStatusCallback.onCarLocationChanged(gnssInfo); } //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站 if (isGoingToNextStation && !isArrivedStation) { - judgeArrivedStation(location); + judgeArrivedStation(gnssInfo); } } }; //根据围栏判断,是否到达站点 - private void judgeArrivedStation(MogoLocation location) { + private void judgeArrivedStation(MessagePad.GnssInfo location) { if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { CallerLogger.INSTANCE.e(M_BUS + TAG, "到站数组越界"); diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index 3f09f3ab14..df44117942 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -233,9 +233,9 @@ public class BusPresenter extends Presenter } @Override - public void onCarLocationChanged(MogoLocation location) { + public void onCarLocationChanged(MessagePad.GnssInfo location) { if (null != location) { - runOnUIThread(() -> mView.updateSpeedView(location.getSpeed())); + runOnUIThread(() -> mView.updateSpeedView((float) location.getVehicleSpeed())); } } diff --git a/OCH/mogo-och-common-module/build.gradle b/OCH/mogo-och-common-module/build.gradle index 41c0d2ad9b..6bcce00b7e 100644 --- a/OCH/mogo-och-common-module/build.gradle +++ b/OCH/mogo-och-common-module/build.gradle @@ -60,7 +60,6 @@ dependencies { if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons - implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_call implementation rootProject.ext.dependencies.mogo_core_function_v2x @@ -68,7 +67,6 @@ dependencies { }else { implementation project(":core:mogo-core-utils") implementation project(":foudations:mogo-commons") - implementation project(':modules:mogo-module-common') implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-function-call') implementation project(':core:function-impl:mogo-core-function-v2x') diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt index a5b2277c7d..0e522ab32e 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt @@ -3,20 +3,22 @@ package com.mogo.och.common.module.biz.model import android.annotation.SuppressLint import android.content.Context import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ20ListenerManager +import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.SharedPrefs import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.map.navi.IMogoCarLocationChangedListener2 -import com.mogo.module.common.MogoApisHandler import com.mogo.och.common.module.R import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean import com.mogo.och.common.module.biz.callback.ITaxiLoginCallback -import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum import com.mogo.och.common.module.biz.constant.LoginStatusManager +import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonServiceManager import com.mogo.och.common.module.utils.ToastUtilsOch +import mogo.telematics.pad.MessagePad /** * Created by pangfan on 2021/8/19 @@ -25,7 +27,7 @@ import com.mogo.och.common.module.utils.ToastUtilsOch * 网约车 - 出租车业务逻辑处理 */ @SuppressLint("StaticFieldLeak") -object OchCommonLoginModel{ +object OchCommonLoginModel : IMoGoChassisLocationGCJ02Listener { private val TAG = "TaxiLoginModel" private var mContext: Context? = null @@ -35,20 +37,21 @@ object OchCommonLoginModel{ fun init(context: Context) { mContext = context.applicationContext // 达到起始站围栏监听 - MogoApisHandler.getInstance().apis.registerCenterApi.registerCarLocationChangedListener(TAG, mCarLocationChangedListener2) + CallerChassisLocationGCJ20ListenerManager.addListener(TAG, this) } - fun hasInit():Boolean{ - if(mContext==null&& iTaxiLoginCallback==null){ - return false; + fun hasInit(): Boolean { + if (mContext == null && iTaxiLoginCallback == null) { + return false } return true } - // 自车定位 - private val mCarLocationChangedListener2 = IMogoCarLocationChangedListener2 { location -> - mLongitude = location.longitude - mLatitude = location.latitude + override fun onChassisLocationGCJ02(gnssInfo: MessagePad.GnssInfo?) { + gnssInfo?.let { + mLongitude = it.longitude + mLatitude = it.latitude + } } fun getiTaxiLoginCallback(): ITaxiLoginCallback? { @@ -63,8 +66,7 @@ object OchCommonLoginModel{ mContext = null iTaxiLoginCallback = null // 注销到达起始站围栏监听 - MogoApisHandler.getInstance().apis.registerCenterApi - .unregisterCarLocationChangedListener(TAG, mCarLocationChangedListener2) + CallerMapLocationListenerManager.removeListener(TAG, false) } /** @@ -95,7 +97,7 @@ object OchCommonLoginModel{ } override fun onFail(code: Int, msg: String) { - ToastUtilsOch.showWithCodeMessage(code,msg) + ToastUtilsOch.showWithCodeMessage(code, msg) } }) } @@ -113,7 +115,7 @@ object OchCommonLoginModel{ ToastUtils.showShort(mContext?.getString(R.string.module_och_taxi_login_login_success)) LoginStatusManager.setLoginStatus(TaxiLoginStatusEnum.Login) mContext?.let { - SharedPrefs.getInstance(it).putString("och_account",phone) + SharedPrefs.getInstance(it).putString("och_account", phone) } iTaxiLoginCallback?.loginSuccess() } else { @@ -132,9 +134,10 @@ object OchCommonLoginModel{ } override fun onFail(code: Int, msg: String) { - ToastUtilsOch.showWithCodeMessage(code,msg) + ToastUtilsOch.showWithCodeMessage(code, msg) } }) } } + } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt index 6779e4a891..3f9bd51cf4 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.kt @@ -12,7 +12,10 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.common.module.R import com.mogo.och.common.module.biz.network.interceptor.transformTry import io.reactivex.Observable @@ -59,23 +62,22 @@ object OchCommonServiceManager { ) { val sn = MoGoAiCloudClientConfig.getInstance().sn var taxiLoginRespBeanObservable: Observable? = null - when (DebugConfig.getProductFlavor()) { - "fPadLenovoOchTaxi" -> { - //出租车司机 - taxiLoginRespBeanObservable = mOCHTaxiServiceApi.gotoLoginBycode4Taxi( + if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + //出租车司机 + taxiLoginRespBeanObservable = mOCHTaxiServiceApi.gotoLoginBycode4Taxi( MoGoAiCloudClientConfig.getInstance().serviceAppId, MoGoAiCloudClientConfig.getInstance().token, TaxiLoginReqBean(phone, code, sn, location4Login) - ).transformTry() - } - "fPadLenovoOchBus" -> { - //小巴车司机 - taxiLoginRespBeanObservable = mOCHTaxiServiceApi.gotoLoginBycode4Bus( + ).transformTry() + } else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + //小巴车司机 + taxiLoginRespBeanObservable = mOCHTaxiServiceApi.gotoLoginBycode4Bus( MoGoAiCloudClientConfig.getInstance().serviceAppId, MoGoAiCloudClientConfig.getInstance().token, TaxiLoginReqBean(phone, code, sn, location4Login) - ).transformTry() - } + ).transformTry() } taxiLoginRespBeanObservable?.subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode")) } @@ -90,23 +92,22 @@ object OchCommonServiceManager { callback: OchCommonServiceCallback? ) { var logout: Observable? = null - when (DebugConfig.getProductFlavor()) { - "fPadLenovoOchTaxi" -> { - //出租车司机 - logout = mOCHTaxiServiceApi.logout4Taxi( + if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + //出租车司机 + logout = mOCHTaxiServiceApi.logout4Taxi( MoGoAiCloudClientConfig.getInstance().serviceAppId, MoGoAiCloudClientConfig.getInstance().token, TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().sn, location4Login) - ).transformTry() - } - "fPadLenovoOchBus" -> { - //小巴车司机 - logout = mOCHTaxiServiceApi.logout4Bus( + ).transformTry() + } else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + //小巴车司机 + logout = mOCHTaxiServiceApi.logout4Bus( MoGoAiCloudClientConfig.getInstance().serviceAppId, MoGoAiCloudClientConfig.getInstance().token, TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().sn, location4Login) - ).transformTry() - } + ).transformTry() } logout?.subscribe(OchCommonSubscribeImpl(context, callback, "logout")) } @@ -128,19 +129,18 @@ object OchCommonServiceManager { return } var flavor = "" - when (DebugConfig.getProductFlavor()) { - "fPadLenovoOchTaxi" -> { - //出租车司机 - flavor = "taxi" - } - "fPadLenovoOchBus" -> { - //小巴车司机 - flavor = "bus" - } - "fPadLenovoOchBusPassenger" -> { - //小巴车乘客 - flavor = "bus/passenger" - } + if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + //出租车司机 + flavor = "taxi" + } else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + //小巴车司机 + flavor = "bus" + }else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { + //小巴车乘客 + flavor = "bus/passenger" } mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus( flavor, diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt index e40bf14a9c..225406bdba 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt @@ -21,13 +21,18 @@ import com.alibaba.android.arouter.launcher.ARouter import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.debug.DebugConfig import com.mogo.commons.mvp.MvpDialogFragment +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.KeyboardUtils import com.mogo.och.common.module.R +import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.network.OchCommonServiceManager +import com.mogo.och.common.module.biz.network.interceptor.transformTry import com.mogo.och.common.module.biz.presenter.OchCommonLoginPresenter import com.mogo.och.common.module.biz.provider.LoginService @@ -89,13 +94,14 @@ class TaxiLoginDialogFragment : } private fun initBg() { - when (DebugConfig.getProductFlavor()) { - "fPadLenovoOchTaxi" -> { - acivLoginBg.setImageResource(R.drawable.taxi_ic_login_bg) - } - "fPadLenovoOchBus" -> { - acivLoginBg.setImageResource(R.drawable.bus_ic_login_bg) - } + if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + //出租车司机 + acivLoginBg.setImageResource(R.drawable.taxi_ic_login_bg) + } else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + //小巴车司机 + acivLoginBg.setImageResource(R.drawable.bus_ic_login_bg) } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt index 3f00c53bc4..9724ef2eee 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt @@ -7,6 +7,7 @@ import com.mogo.commons.module.status.IMogoStatusChangedListener import com.mogo.commons.module.status.MogoStatusManager import com.mogo.commons.module.status.StatusDescriptor import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils @@ -69,7 +70,8 @@ object AbnormalFactorsLoopManager : IMogoStatusChangedListener { if (!locationStatusPermsStatus) toastStr += "定位服务异常 " if (!networkStatus) toastStr += " 网络异常 " - if (!socketStatus && !DebugConfig.getProductFlavor().contains("Passenger")) toastStr += " 长链接异常 " + //乘客屏不显示长链接异常 + if (!socketStatus && !AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) toastStr += " 长链接异常 " i(TAG, "abnormal_factors_Str = $toastStr") diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java index fda4e3fa53..245989a8f2 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java @@ -4,11 +4,12 @@ import android.content.Context; import androidx.annotation.Nullable; -import com.mogo.commons.debug.DebugConfig; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotActionsListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatisticsListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotActionsListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotStatisticsListenerManager; +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; import com.zhidao.support.adas.high.bean.AutopilotAbility; @@ -86,7 +87,7 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo autopilotAbilityReason = "挡位不正常"; } - if (DebugConfig.getProductFlavor() == "fPadLenovoOchBus" && + if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && ability.gear == Chassis.GearPosition.GEAR_N){ //bus档位不正常 isAutopilotAbility = false; autopilotAbilityReason = "挡位不正常"; diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CallerLoggerUtils.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CallerLoggerUtils.kt index 671317b75e..14e2610598 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CallerLoggerUtils.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CallerLoggerUtils.kt @@ -1,6 +1,7 @@ package com.mogo.och.common.module.utils -import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_SWEEPER @@ -8,29 +9,27 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P object CallerLoggerUtils { - var flavorTag = when (DebugConfig.getProductFlavor()) { - "fPadLenovoOchTaxi" -> { - //出租车司机 - M_TAXI - } - "fPadLenovoOchBus" -> { - //小巴车司机 - M_BUS - } - "fPadLenovoOchTaxiPassenger" -> { - //出租车乘客 - M_TAXI_P - } - "fPadLenovoOchBusPassenger" -> { - //小巴车乘客 - M_BUS_P - } - "fPadLenovoOchSweeper" -> { - //清扫车 - M_SWEEPER - } - else -> { - "" - } + var flavorTag =if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)&& + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + //出租车司机 + M_TAXI + }else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)&& + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + //小巴车司机 + M_BUS + }else if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)&& + AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){ + //出租车乘客 + M_TAXI_P + }else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)&& + AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){ + //小巴车乘客 + M_BUS_P + }else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)){ + //清扫车 + M_SWEEPER + } + else{ + "" } } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java index 8b6fec020a..0eb9f22ed6 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java @@ -231,7 +231,7 @@ public class CoordinateCalculateRouteUtil { */ public static Map> getRemainPointListByCompareNew(int preIndex, List mRoutePoints, - MogoLocation realLocation) { + MessagePad.GnssInfo realLocation) { Map> routePonits = new HashMap<>(); List latePoints = new ArrayList<>(); // 剩余轨迹集合 int currentIndex = 0; //记录疑似点 @@ -245,8 +245,8 @@ public class CoordinateCalculateRouteUtil { for (int i= 0; i < mRoutePoints.size(); i++){ MogoLocation latLng = mRoutePoints.get(i); //todo 先看index对应点的方向和realLocation方向是否一致, 方向角度不能过90度 - if (realLocation.getBearing() == realLocation.getBearing() - latLng.getBearing() || - Math.abs(realLocation.getBearing() - latLng.getBearing()) <= 90){ + if (realLocation.getHeading() == realLocation.getHeading() - latLng.getBearing() || + Math.abs(realLocation.getHeading() - latLng.getBearing()) <= 90){ float diff = CoordinateUtils.calculateLineDistance(realLocation.getLongitude(), realLocation.getLatitude(), latLng.getLongitude(),latLng.getLatitude()); @@ -276,7 +276,7 @@ public class CoordinateCalculateRouteUtil { } public static int getArrivedPointIndexNew(int preIndex, List mRoutePoints, - MogoLocation realLocation) { + MessagePad.GnssInfo realLocation) { int currentIndex = 0; //记录疑似点 //基础点 MogoLocation baseLatLng = mRoutePoints.get(0); float baseDiffDis = CoordinateUtils.calculateLineDistance(realLocation.getLongitude(), @@ -285,8 +285,8 @@ public class CoordinateCalculateRouteUtil { for (int i = 0; i < mRoutePoints.size(); i++) { MogoLocation latLng = mRoutePoints.get(i); - if (realLocation.getBearing() == realLocation.getBearing() - latLng.getBearing() || - Math.abs(realLocation.getBearing() - latLng.getBearing()) <= 90){ + if (realLocation.getHeading() == realLocation.getHeading() - latLng.getBearing() || + Math.abs(realLocation.getHeading() - latLng.getBearing()) <= 90){ float diff = CoordinateUtils.calculateLineDistance(realLocation.getLongitude(), realLocation.getLatitude(), latLng.getLongitude(), latLng.getLatitude()); diff --git a/OCH/mogo-och-noop/build.gradle b/OCH/mogo-och-noop/build.gradle index 2c5e33b374..7067f05711 100644 --- a/OCH/mogo-och-noop/build.gradle +++ b/OCH/mogo-och-noop/build.gradle @@ -42,13 +42,11 @@ dependencies { if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons - implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_call }else { implementation project(":core:mogo-core-utils") implementation project(":foudations:mogo-commons") - implementation project(':modules:mogo-module-common') implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-function-call') } diff --git a/OCH/mogo-och-noop/src/main/java/com/mogo/och/bus/OCHConstants.java b/OCH/mogo-och-noop/src/main/java/com/mogo/och/bus/OCHConstants.java index 28e5686048..e403d542bc 100644 --- a/OCH/mogo-och-noop/src/main/java/com/mogo/och/bus/OCHConstants.java +++ b/OCH/mogo-och-noop/src/main/java/com/mogo/och/bus/OCHConstants.java @@ -12,5 +12,5 @@ class OCHConstants { /** * arouter 路由地址 */ - public static final String PATH = "/och/api"; + public static final String PATH = "/driver/api"; } diff --git a/OCH/mogo-och-sweeper/build.gradle b/OCH/mogo-och-sweeper/build.gradle index eea68114f8..faa8d4934e 100644 --- a/OCH/mogo-och-sweeper/build.gradle +++ b/OCH/mogo-och-sweeper/build.gradle @@ -58,14 +58,12 @@ dependencies { if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons - implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_call implementation rootProject.ext.dependencies.mogo_core_function_hmi }else { implementation project(":core:mogo-core-utils") implementation project(":foudations:mogo-commons") - implementation project(':modules:mogo-module-common') implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-function-call') implementation project(':core:function-impl:mogo-core-function-hmi') diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/SweeperProvider.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/SweeperProvider.java index 0db6a47aff..aa109b728f 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/SweeperProvider.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/SweeperProvider.java @@ -11,14 +11,16 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.commons.module.status.StatusDescriptor; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.map.MogoMapUIController; import com.mogo.och.sweeper.constant.SweeperConst; import com.mogo.och.sweeper.fragment.SweeperFragment; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Objects; + /** * 清扫车业务实现入口 * @@ -38,7 +40,7 @@ public class SweeperProvider implements IMogoOCH { */ private void stepIntoVrMode(){ CallerLogger.INSTANCE.d( M_BUS + TAG, "进入vr模式" ); - MogoMapUIController.getInstance() + Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()) .stepInVrMode(false); } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperControllerStatusCallback.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperControllerStatusCallback.java index 7a831a7c0e..21d9169aec 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperControllerStatusCallback.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperControllerStatusCallback.java @@ -1,6 +1,6 @@ package com.mogo.och.sweeper.callback; -import com.mogo.eagle.core.data.map.MogoLocation; +import mogo.telematics.pad.MessagePad; /** * Created on 2021/9/10 @@ -11,7 +11,7 @@ public interface ISweeperControllerStatusCallback { // 是否vr map模式 void onVRModeChanged(boolean isVRMode); // 自车定位 - void onCarLocationChanged(MogoLocation location); + void onCarLocationChanged(MessagePad.GnssInfo location); //开始开启自动驾驶 void startOpenAutopilot(); } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/constant/SweeperConst.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/constant/SweeperConst.kt index 9a534d3a85..8397cddf95 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/constant/SweeperConst.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/constant/SweeperConst.kt @@ -23,7 +23,7 @@ class SweeperConst { } // OCH arouter 路由path - const val PATH = "/och/api" + const val PATH = "/driver/api" // 测试用的广播 const val BROADCAST_TEST_SWEEPER_CONTROL_TYPE_EXTRA_KEY = "sceneType" diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java index 73628b6b50..00cda91fc7 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java @@ -22,13 +22,18 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; +import com.mogo.eagle.core.function.hmi.ui.widget.TrafficDataView; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.MogoMapUIController; import com.mogo.map.MogoMarkerManager; import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.listener.MogoMapListenerHandler; +import com.mogo.map.marker.IMogoMarkerManager; +import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.VisualAngleMode; -import com.mogo.module.common.MogoApisHandler; import com.mogo.och.sweeper.R; import com.mogo.och.sweeper.constant.SweeperConst; import com.mogo.och.sweeper.ui.SweeperOperatePanelView; @@ -53,7 +58,7 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS */ public abstract class BaseSweeperTabFragment> extends MvpFragment implements IMogoMapListener{ - private static final String TAG = "BaseOchFragment"; + private static final String TAG = "BaseSweeperTabFragment"; protected RelativeLayout mSettingBtn; protected RelativeLayout mBadcaseBtn; @@ -67,8 +72,6 @@ public abstract class BaseSweeperTabFragment trajectoryInfos) { - - } + private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener() { @Override public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) { @@ -265,7 +251,7 @@ public class SweeperOrderModel { CallerMapLocationListenerManager.INSTANCE.removeListener(TAG,false); //自动驾驶路线规划接口 - CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); + CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); } private Object readResolve() { @@ -286,25 +272,25 @@ public class SweeperOrderModel { }; // 自车定位 - private final IMoGoMapLocationListener mMapLocationListener = new IMoGoMapLocationListener() { + private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() { @Override - public void onLocationChanged(@Nullable MogoLocation location, int from, boolean isGps) { - if (null == location) return; - mLongitude = location.getLongitude(); - mLatitude = location.getLatitude(); + public void onChassisLocationGCJ02(@Nullable MessagePad.GnssInfo gnssInfo) { + if (null == gnssInfo) return; + mLongitude = gnssInfo.getLongitude(); + mLatitude = gnssInfo.getLatitude(); if (mControllerStatusCallback != null) { - mControllerStatusCallback.onCarLocationChanged(location); + mControllerStatusCallback.onCarLocationChanged(gnssInfo); } //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站 if (isGoingToNextStation && !isArrivedStation) { - judgeStartStation(location); + judgeStartStation(gnssInfo); } } }; //根据围栏判断,是否到达起点 - private void judgeStartStation(MogoLocation location) { + private void judgeStartStation(MessagePad.GnssInfo location) { if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { return; diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java index 1f9d39669a..b21c717ef2 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java @@ -1,15 +1,22 @@ package com.mogo.och.sweeper.presenter; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; + import android.os.Looper; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.map.MogoLocation; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.sweeper.bean.SweeperStationBean; import com.mogo.och.sweeper.callback.ISweeperControllerStatusCallback; +import com.mogo.och.sweeper.callback.ICarOperationStatusCallback; +import com.mogo.och.sweeper.callback.IRefreshSweeperStationsCallback; +import com.mogo.och.sweeper.callback.ISlidePannelHideCallback; +import com.mogo.och.sweeper.callback.ISweeperControllerStatusCallback; import com.mogo.och.sweeper.fragment.SweeperFragment; import com.mogo.och.sweeper.model.SweeperOrderModel; import com.mogo.och.sweeper.util.SweeperTrajectoryManager; @@ -120,9 +127,9 @@ public class SweeperPresenter extends Presenter } @Override - public void onCarLocationChanged(MogoLocation location) { + public void onCarLocationChanged(MessagePad.GnssInfo location) { if (null != location) { - runOnUIThread(() -> mView.updateSpeedView(location.getSpeed())); + runOnUIThread(() -> mView.updateSpeedView((float) location.getVehicleSpeed())); } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java index 8525f6dd89..a9b73fa0a1 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java @@ -26,9 +26,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotVehicleStateListener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoSweeperFutianCleanSystemListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCleanSystemListenerManager; import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; import com.mogo.eagle.core.utilcode.util.ThreadUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; @@ -764,43 +764,7 @@ public class SweeperOperatePanelView extends LinearLayout { /** * 底盘数据透传listener */ - private final IMoGoAutopilotVehicleStateListener mIMoGoAutopilotVehicleStateListener = new IMoGoAutopilotVehicleStateListener() { - @Override - public void onBMSSystemStates(@NonNull ChassisStatesOuterClass.BMSSystemStates bmsSystemStates) { - - } - - @Override - public void onAutopilotDataException(long timestamp) { - } - - @Override - public void onAutopilotLightSwitchData(@Nullable Chassis.LightSwitch lightSwitch) { - } - - @Override - public void onAutopilotBrakeLightData(boolean brakeLight) { - } - - @Override - public void onAutopilotSteeringData(float steering) { - } - - @Override - public void onAutopilotGearData(@NonNull Chassis.GearPosition gear) { - } - - @Override - public void onAutopilotAcc(float carAcc) { - } - - @Override - public void onAutopilotThrottle(float throttle) { - } - - @Override - public void onAutopilotBrake(float brake) { - } + private final IMoGoSweeperFutianCleanSystemListener mIMoGoAutopilotVehicleStateListener = new IMoGoSweeperFutianCleanSystemListener() { @Override public void onSweeperFutianCleanSystemState(@NonNull ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { @@ -835,7 +799,7 @@ public class SweeperOperatePanelView extends LinearLayout { @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); - CallerAutopilotVehicleStateListenerManager.INSTANCE.addListener(TAG, mIMoGoAutopilotVehicleStateListener); + CallerSweeperFutianCleanSystemListenerManager.INSTANCE.addListener(TAG, mIMoGoAutopilotVehicleStateListener); // 最终调试时需要打开 syncVehicleStateAndRecoverOperatePanelStates(); // Mock VehicleState 数据回调 @@ -847,7 +811,7 @@ public class SweeperOperatePanelView extends LinearLayout { @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); - CallerAutopilotVehicleStateListenerManager.INSTANCE.removeListener(TAG); + CallerSweeperFutianCleanSystemListenerManager.INSTANCE.removeListener(TAG); } /** diff --git a/OCH/mogo-och-taxi-passenger/build.gradle b/OCH/mogo-och-taxi-passenger/build.gradle index cd67326bc9..a682c2e839 100644 --- a/OCH/mogo-och-taxi-passenger/build.gradle +++ b/OCH/mogo-och-taxi-passenger/build.gradle @@ -53,11 +53,11 @@ dependencies { implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap implementation rootProject.ext.dependencies.amapsearch + implementation project(":OCH:mogo-och-common-module") if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons - implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_call implementation rootProject.ext.dependencies.mogo_core_function_v2x @@ -65,7 +65,6 @@ dependencies { }else { implementation project(":core:mogo-core-utils") implementation project(":foudations:mogo-commons") - implementation project(':modules:mogo-module-common') implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-function-call') implementation project(':core:function-impl:mogo-core-function-v2x') diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/MogoOCHTaxiPassenger.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/MogoOCHTaxiPassenger.java index 7dde2ad9e4..049b7f9129 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/MogoOCHTaxiPassenger.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/MogoOCHTaxiPassenger.java @@ -11,14 +11,16 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.commons.module.status.StatusDescriptor; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.map.MogoMapUIController; import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst; import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Objects; + public /** * @author congtaowang @@ -45,7 +47,7 @@ class MogoOCHTaxiPassenger implements IMogoOCH, IMogoStatusChangedListener { */ private void stepIntoVrMode() { CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "进入vr模式"); - MogoMapUIController.getInstance() + Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()) .stepInVrMode(false); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerControllerStatusCallback.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerControllerStatusCallback.java index dd4b3336fd..1fbd38ae6e 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerControllerStatusCallback.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerControllerStatusCallback.java @@ -1,6 +1,6 @@ package com.mogo.och.taxi.passenger.callback; -import com.mogo.eagle.core.data.map.MogoLocation; +import mogo.telematics.pad.MessagePad; /** * Created on 2021/9/10 @@ -11,5 +11,5 @@ public interface IOCHTaxiPassengerControllerStatusCallback { // 是否vr map模式 void onVRModeChanged(boolean isVRMode); // 自车定位 - void onCarLocationChanged(MogoLocation location); + void onCarLocationChanged(MessagePad.GnssInfo location); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt index 446d5d126f..06557a70d4 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt @@ -23,7 +23,7 @@ class TaxiPassengerConst { } // OCH arouter 路由path - const val PATH = "/och/api" + const val PATH = "/passenger/api" // 上报心跳轮询ms const val LOOP_PERIOD_60S = 60 * 1000L diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java index 1543ad8da0..122346666d 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java @@ -2,6 +2,7 @@ package com.mogo.och.taxi.passenger.model; import android.content.Context; +import com.amap.api.services.core.AMapException; import com.amap.api.services.core.LatLonPoint; import com.amap.api.services.geocoder.GeocodeResult; import com.amap.api.services.geocoder.GeocodeSearch; @@ -52,7 +53,11 @@ public class TaxiPassengerGeocodeSearchModel implements GeocodeSearch.OnGeocodeS public void initGeocodeSearch(){ //通过经纬度逆地理编码得到位置 - mGeocodeSearch = new GeocodeSearch(mContext); + try { + mGeocodeSearch = new GeocodeSearch(mContext); + } catch (AMapException e) { + e.printStackTrace(); + } mGeocodeSearch.setOnGeocodeSearchListener(this); timer = new Timer(); timerTask = new TimerTask() { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 32bdacd61d..6c66c10c1a 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -1,5 +1,7 @@ package com.mogo.och.taxi.passenger.model; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; + import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; @@ -23,13 +25,14 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; import com.mogo.eagle.core.function.api.v2x.LimitingVelocityListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ20ListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; import com.mogo.eagle.core.function.call.v2x.CallLimitingVelocityListenerManager; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; @@ -38,11 +41,11 @@ import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; import com.mogo.och.common.module.manager.OCHAdasAbilityManager; import com.mogo.och.common.module.map.AmapNaviToDestinationModel; -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean; @@ -50,8 +53,8 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRemainingResp; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerQueryOrderRouteResp; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean; +import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerAutopilotPlanningCallback; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback; @@ -84,8 +87,6 @@ import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import system_master.SystemStatusInfo; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; - /** * Created by pangfan on 2021/8/19 * @@ -123,7 +124,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback private int delayTime = 2; private double mLongitude, mLatitude; - private MogoLocation mLocation = null; + private MessagePad.GnssInfo mLocation = null; private List mLocationsModels = new ArrayList<>(); @@ -236,10 +237,10 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback IntentManager.getInstance().registerIntentListener( ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener ); MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); // 定位监听 - CallerMapLocationListenerManager.INSTANCE.addListener(TAG,mMapLocationListener,false); + CallerChassisLocationGCJ20ListenerManager.INSTANCE.addListener(TAG,mMapLocationListener); //2021.11.1 自动驾驶路线规划接口 - CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener); + CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener); //增加限速监听 CallLimitingVelocityListenerManager.INSTANCE.addListener(TAG,limitingVelocityListener); @@ -260,7 +261,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback .unregisterLifecycleListener(10010); CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener); - CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); + CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); CallLimitingVelocityListenerManager.INSTANCE.removeListener(limitingVelocityListener); AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); @@ -427,7 +428,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback } // TODO: 2021/9/12 - public void calculateTravelDistance(MogoLocation carLocation){ + public void calculateTravelDistance(MessagePad.GnssInfo carLocation){ if (checkCurrentOCHOrder() && mCurrentOCHOrder.endSiteGcjPoint.size()>0) { double endLon = mCurrentOCHOrder.endSiteGcjPoint.get(0); double endLat = mCurrentOCHOrder.endSiteGcjPoint.get(1); @@ -466,25 +467,26 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback }; // 自车定位 - private final IMoGoMapLocationListener mMapLocationListener = new IMoGoMapLocationListener() { + private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() { @Override - public void onLocationChanged(@Nullable MogoLocation location, int from, boolean isGps) { + public void onChassisLocationGCJ02(@Nullable MessagePad.GnssInfo gnssInfo) { //位置变化时,通过围栏判断是否到达x点 - if (null == location) return; + if (null == gnssInfo) return; if (checkCurrentOCHOrder()) { if (getCurOrderStatus() == TaxiPassengerOrderStatusEnum.OnTheWayToEnd) { - calculateTravelDistance(location); + calculateTravelDistance(gnssInfo); } } - mLongitude = location.getLongitude(); - mLatitude = location.getLatitude(); + mLongitude = gnssInfo.getLongitude(); + mLatitude = gnssInfo.getLatitude(); - mLocation = location; - // CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"mLongitude = "+mLongitude+", mLatitude = "+mLatitude); + mLocation = gnssInfo; + // CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"mLongitude = "+mLongitude+", mLatitude = "+mLatitude); for (IOCHTaxiPassengerControllerStatusCallback callback :mControllerStatusCallbackMap.values()){ - callback.onCarLocationChanged(location); + callback.onCarLocationChanged(gnssInfo); } } + }; private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener(){ @@ -577,12 +579,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback } }; - private final IMoGoAutopilotPlanningListener moGoAutopilotPlanningListener = new IMoGoAutopilotPlanningListener(){ - - @Override - public void onAutopilotTrajectory(@NonNull List trajectoryInfos) { - - } + private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener(){ @Override public void onAutopilotRotting(@Nullable MessagePad.GlobalPathResp routeList) { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java index 8876dbf5fe..3447f52abd 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java @@ -27,6 +27,8 @@ import com.mogo.och.taxi.passenger.model.TaxiPassengerModel; import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment; import com.mogo.och.taxi.passenger.ui.leftmenu.LeftMenuOpen; +import mogo.telematics.pad.MessagePad; + /** * @author: wangmingjun * @date: 2022/3/4 @@ -120,7 +122,7 @@ public class BaseTaxiPassengerPresenter extends Presenter mView.onCarLocationChanged(location)); long currentTimeMillis = System.currentTimeMillis(); diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java index 33f545fe1f..ea122b5a6f 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java @@ -19,19 +19,20 @@ import com.mogo.eagle.core.function.api.hmi.IMoGoHmiViewProxy; import com.mogo.eagle.core.function.api.hmi.view.IViewNotification; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.call.map.CallerSmpManager; import com.mogo.eagle.core.utilcode.util.OverlayViewUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.MogoMapUIController; import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.VisualAngleMode; import com.mogo.och.taxi.passenger.R; import com.mogo.och.taxi.passenger.callback.ITPClickStartAutopilotCallback; import com.mogo.och.taxi.passenger.event.UIStatus; +import com.mogo.och.taxi.passenger.mulprocess.EmptyService; import com.mogo.och.taxi.passenger.presenter.BaseTaxiPassengerPresenter; import com.mogo.och.taxi.passenger.ui.comment.TaxiPassengerArrivedView; import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils; -import com.mogo.och.taxi.passenger.mulprocess.EmptyService; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -109,43 +110,40 @@ public class TaxiPassengerBaseFragment extends MvpFragment { + IMogoMapUIController controller = CallerMapUIServiceManager.INSTANCE.getMapUIController(); + if (controller != null) { + //切换地图的远近视图 + if (controller.getCurrentMapVisualAngle().isLongSight()) { + controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_medium); - } else if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isMediumSight()) { - // 2.11.0 去掉 -// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS); - MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null); + } else if (controller.getCurrentMapVisualAngle().isMediumSight()) { + controller.changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null); mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_long); } else { - // 2.11.0去掉 -// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).visibleAllMarkers(); - MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); + controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_medium); } - //OverlayLeftViewUtils.INSTANCE.dismissOverlayView(); } + //OverlayLeftViewUtils.INSTANCE.dismissOverlayView(); }); } - private void initArrivedView(){ + private void initArrivedView() { mArrivedEndView = new WeakReference<>(new TaxiPassengerArrivedView(getContext())); mArrivedEndView.get().setITaxiPassengerScoreCallback((taxiPassengerScoreUpdateOrderReqBean) -> getPresenter().arrivedAndScore(taxiPassengerScoreUpdateOrderReqBean)); } @@ -173,9 +171,10 @@ public class TaxiPassengerBaseFragment extends MvpFragment { if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { @@ -199,7 +199,7 @@ public class TaxiPassengerBaseFragment extends MvpFragment(new TaxiPassengerStartAutopilotView(getContext())); } mStartAutopilotView.get().setOnClickStartAutopilotBtnCallback(this); - OverlayViewUtils.showOverlayView(getActivity(),mStartAutopilotView.get()); + OverlayViewUtils.showOverlayView(getActivity(), mStartAutopilotView.get()); updateStartAutopilotBtnStatus(isClickable); - }else { - if (mStartAutopilotView == null || mStartAutopilotView.get() == null){ + } else { + if (mStartAutopilotView == null || mStartAutopilotView.get() == null) { return; } mStartAutopilotView.get().setOnClickStartAutopilotBtnCallback(null); @@ -331,15 +334,15 @@ public class TaxiPassengerBaseFragment extends MvpFragment 1) { //圈定地图显示范围 @@ -200,13 +200,13 @@ public class TaxiPassengerMapDirectionView } else { //设置希望展示的地图缩放级别 CameraPosition cameraPosition = new CameraPosition.Builder() - .target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build(); + .target(mCarMarker.getPosition()).tilt(0).bearing((float) gnssInfo.getHeading()).zoom(zoomLevel).build(); mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); } //更新车辆位置 if (mCarMarker != null) { // CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "location.getBearing() = " + location.getBearing()); - mCarMarker.setRotateAngle(360 - location.getBearing()); + mCarMarker.setRotateAngle((float) (360 - gnssInfo.getHeading())); mCarMarker.setPosition(currentLatLng); // CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "onCarLocationChanged2--loacation :" + location.getLatitude()+", "+location.getLongitude()); mCarMarker.setToTop(); diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.java index f4b2772305..6735b80eac 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.java @@ -4,7 +4,6 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAX import android.animation.Animator; import android.animation.AnimatorInflater; -import android.location.Location; import android.os.Build; import android.os.Bundle; import android.os.Looper; @@ -22,7 +21,6 @@ import androidx.fragment.app.FragmentTransaction; import com.amap.api.maps.model.LatLng; import com.mogo.commons.mvp.MvpFragment; -import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -44,6 +42,8 @@ import com.mogo.och.taxi.passenger.utils.TPRouteDataTestUtils; import java.util.Calendar; import java.util.List; +import mogo.telematics.pad.MessagePad; + /** * @author: wangmingjun * @date: 2022/3/8 @@ -352,8 +352,8 @@ public class TaxiPassengerServingOrderFragment extends } - public void onCarLocationChanged(MogoLocation location) { - updateSpeedView(location.getSpeed()); + public void onCarLocationChanged(MessagePad.GnssInfo location) { + updateSpeedView((float) location.getVehicleSpeed()); } public void onLimitingVelocityChange(int limitingVelocity) { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt index 8964d0907b..6dece1ffdf 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt @@ -274,9 +274,10 @@ object OverlayLeftViewUtils { * */ fun transmissionIndex(index:Int){ - if(!ProcessUtils.isMainProcess(Utils.getApp())) { + // TODO 需要与,杨亚坤,确认为啥要限制仅在主进程 +// if(!ProcessUtils.isMainProcess(Utils.getApp())) { LeftMenuOpen.transmissionIndex(index) - } +// } } fun transmissionIndexGet(index: Int){ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_passenger_check_panel.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_passenger_check_panel.xml index 1d5b878f9a..212cf333c6 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_passenger_check_panel.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_passenger_check_panel.xml @@ -136,7 +136,7 @@ android:layout_marginEnd="155dp" android:layout_marginBottom="231dp" android:orientation="vertical" - app:bgColor="@color/transparent_white_30" + app:bgColor="@color/color_B3FFFFFF" app:blurRadius="@dimen/dp_60" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/OCH/mogo-och-taxi/build.gradle b/OCH/mogo-och-taxi/build.gradle index 92e09af680..f802637796 100644 --- a/OCH/mogo-och-taxi/build.gradle +++ b/OCH/mogo-och-taxi/build.gradle @@ -57,7 +57,6 @@ dependencies { if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons - implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_call implementation rootProject.ext.dependencies.mogo_core_function_v2x @@ -65,7 +64,6 @@ dependencies { }else { implementation project(":core:mogo-core-utils") implementation project(":foudations:mogo-commons") - implementation project(':modules:mogo-module-common') implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-function-call') implementation project(':core:function-impl:mogo-core-function-v2x') diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/TaxiOverlayManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/TaxiOverlayManager.java index a000833b58..d525f97b1b 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/TaxiOverlayManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/TaxiOverlayManager.java @@ -4,9 +4,9 @@ import android.content.Context; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.function.v2x.events.utils.LocationUtils; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; +import com.mogo.commons.utils.LocationUtils; import com.mogo.eagle.core.utilcode.util.ColorUtils; -import com.mogo.map.MogoOverlayManager; import com.mogo.map.overlay.IMogoOverlayManager; import com.mogo.map.overlay.IMogoPolyline; import com.mogo.map.overlay.MogoPolylineOptions; @@ -32,7 +32,7 @@ public class TaxiOverlayManager { // 引导线颜色 mPolylineColors = new ArrayList<>(); mContext = context; - mogoOverlayManager = MogoOverlayManager.getInstance(); + mogoOverlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager(context); } /** diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/TaxiProvider.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/TaxiProvider.java index c87251c0cb..ca28c83303 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/TaxiProvider.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/TaxiProvider.java @@ -11,15 +11,16 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.commons.module.status.StatusDescriptor; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.MogoMapUIController; import com.mogo.och.taxi.constant.TaxiConst; import com.mogo.och.taxi.ui.TaxiFragment; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Objects; + public /** * @author congtaowang @@ -45,8 +46,7 @@ class TaxiProvider implements IMogoOCH , IMogoStatusChangedListener { */ private void stepIntoVrMode() { CallerLogger.INSTANCE.d( M_TAXI + TAG, "进入vr模式" ); - MogoMapUIController.getInstance() - .stepInVrMode( false ); + Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()).stepInVrMode(false); } private void showFragment() { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java index 070559f406..42baa2e0b5 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java @@ -1,6 +1,6 @@ package com.mogo.och.taxi.callback; -import com.mogo.eagle.core.data.map.MogoLocation; +import mogo.telematics.pad.MessagePad; /** * Created on 2021/9/10 @@ -11,7 +11,7 @@ public interface ITaxiControllerStatusCallback { // 是否vr map模式 void onVRModeChanged(boolean isVRMode); // 自车定位 - void onCarLocationChanged(MogoLocation location); + void onCarLocationChanged(MessagePad.GnssInfo location); //开始开启自动驾驶 void startOpenAutopilot(); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt index 21372d9fb7..1cfb1ffa69 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt @@ -23,7 +23,7 @@ class TaxiConst { } // OCH arouter 路由path - const val PATH = "/och/api" + const val PATH = "/driver/api" // 到达起始点围栏 const val ARRIVE_AT_START_STATION_DISTANCE = 15 //围栏由20m改为50m 再次改为15m diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 6b2e56777e..e3f6196201 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -27,12 +27,13 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ20ListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; @@ -75,8 +76,8 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.constant.TaxiOrderTypeEnum; import com.mogo.och.taxi.constant.TaxtServingStatusManager; import com.mogo.och.taxi.network.TaxiServiceManager; -import com.mogo.och.taxi.utils.TaxiAnalyticsManager; import com.mogo.och.taxi.utils.OrderUtil; +import com.mogo.och.taxi.utils.TaxiAnalyticsManager; import com.mogo.och.taxi.utils.TaxiTrajectoryManager; import com.zhjt.service.chain.ChainLog; import com.zhjt.service.chain.TracingConstants; @@ -133,7 +134,7 @@ public class TaxiModel { private int mPreRouteIndex = 0; private double mLongitude, mLatitude; - private MogoLocation mLocation = null; + private MessagePad.GnssInfo mLocation = null; private LoginService loginService; @@ -223,10 +224,10 @@ public class TaxiModel { MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); //定位监听, 传false是高德坐标系 - CallerMapLocationListenerManager.INSTANCE.addListener(TAG,mMapLocationLIstener,false); + CallerChassisLocationGCJ20ListenerManager.INSTANCE.addListener(TAG,mMapLocationLIstener); //2021.11.1 自动驾驶路线规划接口 - CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG, moGoAutopilotPlanningListener); + CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG, moGoAutopilotPlanningListener); //开启自驾后 异常信息返回 OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener); @@ -267,7 +268,7 @@ public class TaxiModel { OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(OCHSocketMessageManager.msgMonitorType); CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener); - CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); + CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); @@ -995,7 +996,7 @@ public class TaxiModel { } //根据围栏判断,是否到达起点 - private void judgeStartStation(MogoLocation location) { + private void judgeStartStation(MessagePad.GnssInfo location) { if (mCurrentOCHOrder == null || mCurrentOCHOrder.startSiteGcjPoint == null || mCurrentOCHOrder.startSiteGcjPoint.size() < 2) { return; @@ -1052,31 +1053,31 @@ public class TaxiModel { }; // 自车定位 - private final IMoGoMapLocationListener mMapLocationLIstener = new IMoGoMapLocationListener() { + private final IMoGoChassisLocationGCJ02Listener mMapLocationLIstener = new IMoGoChassisLocationGCJ02Listener() { @Override - public void onLocationChanged(@Nullable MogoLocation location, int from, boolean isGps) { + public void onChassisLocationGCJ02(@Nullable MessagePad.GnssInfo gnssInfo) { //位置变化时,通过围栏判断是否到达x点 - if (null == location) return; + if (null == gnssInfo) return; if (checkCurrentOCHOrder()) { if (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToStart) { - judgeStartStation(location); + judgeStartStation(gnssInfo); } if (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd && mPrevAPStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ - judgeEndStation(location); + judgeEndStation(gnssInfo); } } - mLongitude = location.getLongitude(); - mLatitude = location.getLatitude(); - mLocation = location; + mLongitude = gnssInfo.getLongitude(); + mLatitude = gnssInfo.getLatitude(); + mLocation = gnssInfo; if (mControllerStatusCallback != null) { - mControllerStatusCallback.onCarLocationChanged(location); + mControllerStatusCallback.onCarLocationChanged(gnssInfo); } } }; - private void judgeEndStation(MogoLocation location) { + private void judgeEndStation(MessagePad.GnssInfo location) { if (mCurrentOCHOrder == null || mCurrentOCHOrder.endSiteGcjPoint == null || mCurrentOCHOrder.endSiteGcjPoint.size() < 2) { return; @@ -1252,12 +1253,8 @@ public class TaxiModel { public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) { } }; - private final IMoGoAutopilotPlanningListener moGoAutopilotPlanningListener = new IMoGoAutopilotPlanningListener() { - @Override - public void onAutopilotTrajectory(@NonNull List trajectoryInfos) { - - } + private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener() { @Override public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index c869bb7fc2..23a8c04806 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -2,7 +2,6 @@ package com.mogo.och.taxi.presenter; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; -import android.location.Location; import android.os.Build; import android.os.Looper; @@ -12,7 +11,6 @@ import androidx.lifecycle.LifecycleOwner; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; -import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -20,14 +18,14 @@ import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; import com.mogo.och.common.module.biz.callback.ILoginCallback; import com.mogo.och.common.module.biz.constant.LoginStatusManager; import com.mogo.och.common.module.manager.OCHAdasAbilityManager; -import com.mogo.och.taxi.constant.TaxiConst; -import com.mogo.och.taxi.constant.TaxiDriverRoleEnum; -import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.bean.OrderQueryRespBean; import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean; import com.mogo.och.taxi.callback.ITaxiADASStatusCallback; import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback; import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback; +import com.mogo.och.taxi.constant.TaxiConst; +import com.mogo.och.taxi.constant.TaxiDriverRoleEnum; +import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.constant.TaxtServingStatusManager; import com.mogo.och.taxi.model.TaxiModel; import com.mogo.och.taxi.ui.TaxiFragment; @@ -36,6 +34,8 @@ import org.jetbrains.annotations.NotNull; import java.util.List; +import mogo.telematics.pad.MessagePad; + /** * @author congtaowang * @since 2021/1/18 @@ -314,10 +314,10 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } @Override - public void onCarLocationChanged(MogoLocation location) { + public void onCarLocationChanged(MessagePad.GnssInfo location) { if (null != location){ runOnUIThread(() -> { - mView.updateSpeedView(location.getSpeed()); + mView.updateSpeedView((float) location.getVehicleSpeed()); mView.updateLocation(location.getLatitude(),location.getLongitude()); }); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java index ac21cdf9f1..060821b7e9 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java @@ -31,14 +31,15 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.call.map.CallerSmpManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.MogoMapUIController; import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.VisualAngleMode; -import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; import com.mogo.och.common.module.utils.AnimatorDrawableUtil; import com.mogo.och.taxi.R; @@ -85,22 +86,22 @@ public abstract class BaseTaxiTabFragment { + //视角切换 + long start = SystemClock.elapsedRealtime(); + try { + IMogoMapUIController controller = CallerMapUIServiceManager.INSTANCE.getMapUIController(); + if (controller != null) { + //切换地图的远近视图 + if (controller.getCurrentMapVisualAngle().isLongSight()) { + controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); mSwitchBtnIcon.setImageResource(R.drawable.taxi_switch_map_medium); - } else if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isMediumSight()) { - // 2.11.0去掉 -// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) -// .inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS, TaxiConst.TYPE_MARKER_TAXI_ORDER); - MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null); + } else if (controller.getCurrentMapVisualAngle().isMediumSight()) { + controller.changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null); mSwitchBtnIcon.setImageResource(R.drawable.taxi_switch_map_long); } else { - // 2.11.0去掉 -// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .visibleAllMarkers(); - MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); mSwitchBtnIcon.setImageResource(R.drawable.taxi_switch_map_medium); } - } finally { - CallerLogger.INSTANCE.d(M_TAXI + TAG, "cost:" + (SystemClock.elapsedRealtime() - start)); } - + } finally { + CallerLogger.INSTANCE.d(M_TAXI + TAG, "cost:" + (SystemClock.elapsedRealtime() - start)); } + }); mSettingBtn = findViewById(R.id.module_och_taxi_setting_layout); @@ -214,7 +208,7 @@ public abstract class BaseTaxiTabFragment { - if (groupTestPanel.getVisibility() == View.VISIBLE) { - groupTestPanel.setVisibility(View.GONE); - } else { - groupTestPanel.setVisibility(View.VISIBLE); - } - return false; - }); + mSpeedView.setOnLongClickListener(v -> { + if (groupTestPanel.getVisibility() == View.VISIBLE) { + groupTestPanel.setVisibility(View.GONE); + } else { + groupTestPanel.setVisibility(View.VISIBLE); + } + return false; + }); // } onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()); @@ -282,13 +276,16 @@ public abstract class BaseTaxiTabFragment station,int resourceId){ if (isAdd){ //开启线程执行起终点marker设置 - Runnable setMapMarkerRunnable = new Runnable() { - @Override - public void run() { - CallerLogger.INSTANCE.d(M_TAXI + "setMapMaker= " + Thread.currentThread().getName(), - uuid + "=latitude=" + station.get(1) + ",longitude=" + station.get(0)); + Runnable setMapMarkerRunnable = () -> { + CallerLogger.INSTANCE.d(M_TAXI + "setMapMaker= " + Thread.currentThread().getName(), + uuid + "=latitude=" + station.get(1) + ",longitude=" + station.get(0)); - MogoMarkerOptions options = new MogoMarkerOptions() - .owner(TaxiConst.TYPE_MARKER_TAXI_ORDER) - .anchor(0.5f, 0.5f) - .set3DMode(true) - .gps(true) - .controlAngle(true) - .icon3DRes(resourceId) - .latitude(station.get(1)) - .longitude(station.get(0)); - IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).addMarker(uuid, options); - CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(station.get(0) - , station.get(1), -1); - if (null != centerLine && marker != null) {// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 - marker.setRotateAngle(centerLine.getAngle().floatValue()); - } + MogoMarkerOptions options = new MogoMarkerOptions() + .owner(TaxiConst.TYPE_MARKER_TAXI_ORDER) + .anchor(0.5f, 0.5f) + .set3DMode(true) + .gps(true) + .controlAngle(true) + .icon3DRes(resourceId) + .latitude(station.get(1)) + .longitude(station.get(0)); + IMogoMarker marker = Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMarkerManager(AbsMogoApplication.getApp())).addMarker(uuid, options); + CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(station.get(0) + , station.get(1), -1); + if (null != centerLine && marker != null) {// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 + marker.setRotateAngle(centerLine.getAngle().floatValue()); } }; OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable); }else { //开启线程移除起终点marker设置 - Runnable removeMapMarkerRunnable = new Runnable() { - @Override - public void run() { - CallerLogger.INSTANCE.d(M_TAXI + "RemoveMapMaker=" + Thread.currentThread().getName(), - uuid + "=latitude=" + station.get(1) + ",longitude=" + station.get(0)); - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).removeMarkers(uuid); - } + Runnable removeMapMarkerRunnable = () -> { + CallerLogger.INSTANCE.d(M_TAXI + "RemoveMapMaker=" + Thread.currentThread().getName(), + uuid + "=latitude=" + station.get(1) + ",longitude=" + station.get(0)); + Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMarkerManager(AbsMogoApplication.getApp())).removeMarkers(uuid); }; OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.java index 6a93cec871..298d49af2e 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.java @@ -29,9 +29,8 @@ import com.amap.api.maps.model.MarkerOptions; import com.amap.api.maps.model.Polyline; import com.amap.api.maps.model.PolylineOptions; import com.mogo.eagle.core.data.map.MogoLatLng; -import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener; -import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ20ListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.och.taxi.R; import com.mogo.och.taxi.utils.TaxiMapAssetStyleUtil; @@ -39,12 +38,14 @@ import com.mogo.och.taxi.utils.TaxiMapAssetStyleUtil; import java.util.ArrayList; import java.util.List; +import mogo.telematics.pad.MessagePad; + /** * taxi司机端前往目的地小地图导航 */ public class TaxiMapDirectionView extends RelativeLayout - implements IMoGoMapLocationListener, ITaxiMapDirectionView, AMap.OnCameraChangeListener { + implements IMoGoChassisLocationGCJ02Listener, ITaxiMapDirectionView, AMap.OnCameraChangeListener { //小地图名称 public static final String TAG = "TPMapDirectionView"; @@ -98,14 +99,14 @@ public class TaxiMapDirectionView initAMapView(); // 注册定位监听 - CallerMapLocationListenerManager.INSTANCE.addListener(TAG, this, false); + CallerChassisLocationGCJ20ListenerManager.INSTANCE.addListener(TAG, this); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); // 注册定位监听 - CallerMapLocationListenerManager.INSTANCE.removeListener(TAG, false); + CallerChassisLocationGCJ20ListenerManager.INSTANCE.removeListener(TAG); } private void initAMapView() { @@ -174,13 +175,12 @@ public class TaxiMapDirectionView return true; } - @Override - public void onLocationChanged(@org.jetbrains.annotations.Nullable MogoLocation location, int from, boolean isGps) { - if (location == null){ + public void onChassisLocationGCJ02(@Nullable MessagePad.GnssInfo gnssInfo) { + if (gnssInfo == null){ return; } - LatLng currentLatLng = new LatLng(location.getLatitude(), location.getLongitude()); + LatLng currentLatLng = new LatLng(gnssInfo.getLatitude(), gnssInfo.getLongitude()); if (mCoordinatesLatLng.size() > 1) { //圈定地图显示范围 @@ -196,13 +196,13 @@ public class TaxiMapDirectionView } else { //设置希望展示的地图缩放级别 CameraPosition cameraPosition = new CameraPosition.Builder() - .target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build(); + .target(mCarMarker.getPosition()).tilt(0).bearing((float) gnssInfo.getHeading()).zoom(zoomLevel).build(); mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); } //更新车辆位置 if (mCarMarker != null) { // CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "location.getBearing() = " + location.getBearing()); - mCarMarker.setRotateAngle(360 - location.getBearing()); + mCarMarker.setRotateAngle((float) (360 - gnssInfo.getHeading())); mCarMarker.setPosition(currentLatLng); // CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "onCarLocationChanged2--loacation :" + location.getLatitude()+", "+location.getLongitude()); mCarMarker.setToTop(); diff --git a/README_shell.md b/README_shell.md index 609d131afc..7ac0c9b64f 100644 --- a/README_shell.md +++ b/README_shell.md @@ -48,7 +48,7 @@ adb shell am broadcast -a com.obu.test_light_recognized --ei obuStates 1 --ei ob // (旧版本)使用命令行触发各种测试场景演示 -adb shell am broadcast -a com.v2x.test_panel_control --ei sceneType 1 +adb shell am broadcast -a com.v2x.test_panel_control --ei sceneType 1 adb shell am broadcast -a com.v2x.test_panel_control --ez TextPanelOpenStatus true --ei TextPanelOpenType 11 diff --git a/ZD_README/README_VersionHistory.md b/ZD_README/README_VersionHistory.md deleted file mode 100644 index aa6e59dedd..0000000000 --- a/ZD_README/README_VersionHistory.md +++ /dev/null @@ -1,91 +0,0 @@ -### 鹰眼 (MOGO-Autopilot) 平台接入说明 -```gradle -// 新版本架构SDK -MOGO_CORE_SDK_VERSION = 0.0.9 - -// 所有UI展示层 -com.mogo.eagle.core.function.impl:hmi:${MOGO_CORE_SDK_VERSION} -// 自动驾驶/工控机相关的功能实现 -com.mogo.eagle.core.function.impl:autopilot:${MOGO_CORE_SDK_VERSION} -// 车辆检测模块功能实现 -com.mogo.eagle.core.function.impl:check:${MOGO_CORE_SDK_VERSION} -// 地图层 -com.mogo.eagle.core.function.impl:map:${MOGO_CORE_SDK_VERSION} -// 超视距服务 -com.mogo.eagle.core.function.impl:monitoring:${MOGO_CORE_SDK_VERSION} -// 推送通知服务 -com.mogo.eagle.core.function.impl:notice:${MOGO_CORE_SDK_VERSION} -// 自研OBU功能服务 -com.mogo.eagle.core.function.impl:obu-mogo:${MOGO_CORE_SDK_VERSION} -// 小地图功能实现 -com.mogo.eagle.core.function.impl:smp:${MOGO_CORE_SDK_VERSION} -// 道路协同功能实现 -com.mogo.eagle.core.function.impl:v2x:${MOGO_CORE_SDK_VERSION} -// 模块功能定义接口,回调监听接口定义 -com.mogo.eagle.core.function:api:${MOGO_CORE_SDK_VERSION} -// 负责模块之间调用,回调监听注册 -com.mogo.eagle.core.function:call:${MOGO_CORE_SDK_VERSION} -// 数据bean基础,用来统一模块间数据调用 -com.mogo.eagle.core:data:${MOGO_CORE_SDK_VERSION} -// 项目公用资源 -com.mogo.eagle.core:res:${MOGO_CORE_SDK_VERSION} -// 项目工具类 -com.mogo.eagle.core:utils:${MOGO_CORE_SDK_VERSION} -// 网络服务 -com.mogo.eagle.core:network:${MOGO_CORE_SDK_VERSION} -``` - - -```gradle -MOGO_COMMONS_VERSION = 2.0.66 -// modules -moduleshare : "com.mogo.module:module-share:${MOGO_COMMONS_VERSION}", -mogocommons : "com.mogo.commons:mogo-commons:${MOGO_COMMONS_VERSION}", -mogoutils : "com.mogo.commons:mogo-utils:${MOGO_COMMONS_VERSION}", -mapamap : "com.mogo.map:map-amap:${MOGO_COMMONS_VERSION}", -mapautomap : "com.mogo.map:map-autonavi:${MOGO_COMMONS_VERSION}", -mapcustom : "com.mogo.map:map-custom:${MOGO_COMMONS_VERSION}", -mogomap : "com.mogo.map:mogo-map:${MOGO_COMMONS_VERSION}", -mogomapapi : "com.mogo.map:mogo-map-api:${MOGO_COMMONS_VERSION}", -mogocustommap : "com.zhidaoauto.machine:map:${MOGO_COMMONS_VERSION}", - -modulecommon : "com.mogo.module:module-common:${MOGO_COMMONS_VERSION}", -modulemain : "com.mogo.module:module-main:${MOGO_COMMONS_VERSION}", -modulemap : "com.mogo.module:module-map:${MOGO_COMMONS_VERSION}", -moduleservice : "com.mogo.module:module-service:${MOGO_COMMONS_VERSION}", -mogoservice : "com.mogo.service:mogo-service:${MOGO_COMMONS_VERSION}", -mogoserviceapi : "com.mogo.service:mogo-service-api:${MOGO_COMMONS_VERSION}", -moduleapps : "com.mogo.module:module-apps:${MOGO_COMMONS_VERSION}", -moduleextensions : "com.mogo.module:module-extensions:${MOGO_COMMONS_VERSION}", - -// V2X -moduleV2x : "com.mogo.module:module-v2x:${MOGO_COMMONS_VERSION}", -modulesearch : "com.mogo.module:module-search:${MOGO_COMMONS_VERSION}", -// push -modulepush : "com.mogo.module:module-push:${MOGO_COMMONS_VERSION}", -modulepushbase : "com.mogo.module:module-push-base:${MOGO_COMMONS_VERSION}", -modulepushnoop : "com.mogo.module:module-push-noop:${MOGO_COMMONS_VERSION}", -// 左侧面板 -moduleleftpanel : "com.mogo.module:module-left-panel:${MOGO_COMMONS_VERSION}", -// 左侧面板空实现 -moduleleftpanelnoop : "com.mogo.module:module-left-panel-noop:${MOGO_COMMONS_VERSION}", -// 基础服务实现 -mogobaseservicesdk : "com.mogo.base:services-sdk:${MOGO_COMMONS_VERSION}", -mogowebsocket : "com.mogo.module.carchatting:module-carchatt-socket:${MOGO_COMMONS_VERSION}", -mogologlib : "com.mogo.module:module-loglib:${MOGO_COMMONS_VERSION}", -kotlingradleplugin : "org.jetbrains.kotlin:kotlin-gradle-plugin:${MOGO_COMMONS_VERSION}", -skinsupport : "com.mogo.skin:skin-support:${MOGO_COMMONS_VERSION}", -skinsupportimpl : "com.mogo.skin:skin-support-impl:${MOGO_COMMONS_VERSION}", -skinsupportnoop : "com.mogo.skin:skin-support-noop:${MOGO_COMMONS_VERSION}", -skinsupportlight : "com.mogo.skin:skin-light:${MOGO_COMMONS_VERSION}", -crashreport : "com.mogo.test:crashreport:${MOGO_COMMONS_VERSION}", -crashreportbugly : "com.mogo.test:crashreport-bugly:${MOGO_COMMONS_VERSION}", -crashreportnoop : "com.mogo.test:crashreport-noop:${MOGO_COMMONS_VERSION}", -crashreportupgrade : "com.mogo.test:crashreport-upgrade:${MOGO_COMMONS_VERSION}", -skinsupportbase : "com.mogo.skin:skin-support-base:${MOGO_COMMONS_VERSION}", -skinsupportappcompat : "com.mogo.skin:skin-support-appcompat:${MOGO_COMMONS_VERSION}", -skinsupportcardview : "com.mogo.skin:skin-support-cardview:${MOGO_COMMONS_VERSION}", -skinsupportconstraintlayout : "com.mogo.skin:skin-support-constraint-layout:${MOGO_COMMONS_VERSION}", -skinsupportdesign : "com.mogo.skin:skin-support-design:${MOGO_COMMONS_VERSION}", - -``` \ No newline at end of file diff --git a/app/bugly/BuglySymtabLog.txt b/app/bugly/BuglySymtabLog.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/app/bugly/BuglyUploadLog.txt b/app/bugly/BuglyUploadLog.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/app/build.gradle b/app/build.gradle index 726a2d8cef..8ef4cbbd4f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,7 @@ import java.text.SimpleDateFormat +import groovy.json.JsonSlurper +import groovy.json.JsonOutput + apply plugin: 'com.android.application' apply plugin: 'com.alibaba.arouter' @@ -193,7 +196,7 @@ android { } } - flavorDimensions "product", "basic", "env" + flavorDimensions "business","product", "basic", "env" productFlavors { // launcher app @@ -208,18 +211,33 @@ android { buildConfigField 'String', 'MAP_SDK_VERSION', "\"${MAP_SDK_VERSION}\"" buildConfigField 'String', 'MAP_SDK_OPT_VERSION', "\"${MAP_SDK_OPERATION_VERSION}\"" } + busbase { + dimension "business" + } + taxibase { + dimension "business" + } + sweeper { + dimension "business" + } + shuttle{ + dimension "business" + } // 配置网络环境,QA、线上、演示 qa { dimension "env" buildConfigField 'int', 'NET_ENV', '2' + buildConfigField 'String', 'URLs', "\"${readFileToJson("qa").replace("\"","\\\"")}\"" } online { dimension "env" buildConfigField 'int', 'NET_ENV', '3' + buildConfigField 'String', 'URLs', "\"${readFileToJson("online").replace("\"","\\\"")}\"" } demo { dimension "env" buildConfigField 'int', 'NET_ENV', '4' + buildConfigField 'String', 'URLs', "\"${readFileToJson("demo").replace("\"","\\\"")}\"" } } @@ -230,6 +248,53 @@ android { apply from: "./productFlavors/fPadLenovoOchBusPassenger.gradle" apply from: "./productFlavors/fPadLenovoOchTaxiPassenger.gradle" apply from: "./productFlavors/fPadLenovoOchSweeper.gradle" + apply from: "./productFlavors/fMultiDisplayOchBus.gradle" + apply from: "./productFlavors/fMultiDisplayOchTaxi.gradle" + + variantFilter { variant -> + def names = variant.flavors*.name + //要检查特定的构建类型,请使用variant.buildType.name ==“ ” + // region 过滤sweper 的flavors + if (names.contains("sweeper")&&!names.contains("fPadLenovoOchSweeper")) { + //Gradle会忽略满足上述条件的所有变体 + setIgnore(true) + } + // endregion + + // region 过滤shuttle 的flavors + if (names.contains("shuttle")) { + //Gradle会忽略满足上述条件的所有变体 + if(names.contains("fPadLenovoOchBus")){ + }else if(names.contains("fPadLenovoOchBusPassenger")){ + }else { + setIgnore(true) + } + } + // endregion + // region 过滤taxibase 的flavors + if (names.contains("taxibase")) { + //Gradle会忽略满足上述条件的所有变体 + if(names.contains("fPadLenovoOchTaxi")){ + }else if(names.contains("fPadLenovoOchTaxiPassenger")){ + }else if(names.contains("fPadLenovo")){ + }else if(names.contains("fMultiDisplayOchTaxi")){ + }else { + setIgnore(true) + } + } + // endregion + // region 过滤taxibase 的flavors + if (names.contains("busbase")) { + //Gradle会忽略满足上述条件的所有变体 + if(names.contains("fPadLenovoOchBus")){ + }else if(names.contains("fPadLenovoOchBusPassenger")){ + }else if(names.contains("fMultiDisplayOchBus")){ + }else { + setIgnore(true) + } + } + // endregion + } packagingOptions { exclude 'META-INF/io.netty.versions.properties' @@ -263,6 +328,7 @@ dependencies { // releaseImplementation rootProject.ext.dependencies.releaseleakcanary implementation rootProject.ext.dependencies.android_start_up implementation rootProject.ext.dependencies.lancetx_runtime + implementation rootProject.ext.dependencies.mogocustommap // // 暂不使用Shizuku-API // implementation rootProject.ext.dependencies.shizuku_provider @@ -272,15 +338,11 @@ dependencies { androidTestImplementation rootProject.ext.dependencies.mogo_core_function_call androidTestImplementation rootProject.ext.dependencies.mogo_core_res - androidTestImplementation rootProject.ext.dependencies.mogo_core_function_notice } else { implementation project(':tts:tts-pad') implementation project(':core:function-impl:mogo-core-function-hmi') - androidTestImplementation project(':core:mogo-core-function-call') androidTestImplementation project(':core:mogo-core-res') - androidTestImplementation project(':core:function-impl:mogo-core-function-notice') - } apply from: "./functions/och.gradle" @@ -396,3 +458,44 @@ boolean isReleaseBuild() { } return false } + +Object readFileToJson(env){ + try { + def businessType = project.hasProperty('business') + if(businessType){ + println("businessType:${businessType}----${business}") + } + // 加载config.json 文件 + File file = new File("${rootDir}/app/config.json") + def jsonSlurper = new JsonSlurper() + // 解析json + def config = jsonSlurper.parse(file) + def flavorNames = variantName() + def jsonOutput = new JsonOutput() + config.each {key, value -> + // 匹配flavor对应的 json + if(flavorNames.toLowerCase().contains(key)){ + return jsonOutput.toJson(value.get(env)) + } + } + // 保底原则 + return jsonOutput.toJson(config.get("busbase").get(env)) + } catch (IOException e) { + e.printStackTrace() + } + return null +} + +def variantName() { + def taskName = getGradle().getStartParameter().getTaskRequests().toString() + def split = taskName.split(":") + if (split.length > 2){ + return split[2].toString().split("]")[0].replace("assemble","") + }else { + if(taskName.contains("bus")) { + return "busbase" + }else { + return "taxibase" + } + } +} diff --git a/app/config.json b/app/config.json new file mode 100644 index 0000000000..539d613985 --- /dev/null +++ b/app/config.json @@ -0,0 +1,46 @@ +{ + "busbase": { + "qa": { + "och_url":"https://tech-qa.zhidaohulian.com" + }, + "online": { + "och_url":"https://tech.zhidaohulian.com" + }, + "demo": { + "och_url":"http://tech-dev.zhidaohulian.com" + } + }, + "taxibase": { + "qa": { + "och_url":"https://tech-qa.zhidaohulian.com" + }, + "online": { + "och_url":"https://tech.zhidaohulian.com" + }, + "demo": { + "och_url":"http://tech-dev.zhidaohulian.com" + } + }, + "shuttle": { + "qa": { + "och_url":"https://och-driver-qa.zhidaozhixing.com" + }, + "online": { + "och_url":"https://och-driver.zhidaozhixing.com" + }, + "demo": { + "och_url":"http://och-driver-dev.zhidaozhixing.com" + } + }, + "sweeper": { + "qa": { + "och_url":"https://och-driver-qa.zhidaozhixing.com" + }, + "online": { + "och_url":"https://och-driver.zhidaozhixing.com" + }, + "demo": { + "och_url":"http://och-driver-dev.zhidaozhixing.com" + } + } +} \ No newline at end of file diff --git a/app/functions/och.gradle b/app/functions/och.gradle index 6a3e9f0776..e29a99cbe1 100644 --- a/app/functions/och.gradle +++ b/app/functions/och.gradle @@ -1,108 +1,53 @@ // 网约车服务:仅小巴车、出租车渠道用 project.dependencies { if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { - fPadLenovoImplementation(rootProject.ext.dependencies.mogoochnoop) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } - + fPadLenovoImplementation(rootProject.ext.dependencies.mogoochnoop) // sweeper清扫车 - fPadLenovoOchSweeperImplementation(rootProject.ext.dependencies.mogoochsweeper) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } + fPadLenovoOchSweeperImplementation(rootProject.ext.dependencies.mogoochsweeper) // Bus司机端 - fPadLenovoOchBusImplementation(rootProject.ext.dependencies.mogoochbus) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } - + fPadLenovoOchBusImplementation(rootProject.ext.dependencies.mogoochbus) // Bus乘客端 - fPadLenovoOchBusPassengerImplementation(rootProject.ext.dependencies.mogoochbus) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } + fPadLenovoOchBusPassengerImplementation(rootProject.ext.dependencies.mogoochbus) // taxi司机端 - fPadLenovoOchTaxiImplementation(rootProject.ext.dependencies.mogoochtaxi) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } - + fPadLenovoOchTaxiImplementation(rootProject.ext.dependencies.mogoochtaxi) // taxi乘客端 - fPadLenovoOchTaxiPassengerImplementation(rootProject.ext.dependencies.mogoochtaxi) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } + fPadLenovoOchTaxiPassengerImplementation(rootProject.ext.dependencies.mogoochtaxi) + + // Bus司机端 + fMultiDisplayOchBusImplementation(rootProject.ext.dependencies.mogoochbus) + // Bus乘客端 + fMultiDisplayOchBusImplementation(rootProject.ext.dependencies.mogoochbus) + + // taxi司机端 + fMultiDisplayOchTaxiImplementation(rootProject.ext.dependencies.mogoochtaxi) + // taxi乘客端 + fMultiDisplayOchTaxiImplementation(rootProject.ext.dependencies.mogoochtaxi) } else { - fPadLenovoImplementation (project(':OCH:mogo-och-noop')) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } + fPadLenovoImplementation (project(':OCH:mogo-och-noop')) // sweeper 清扫车 - fPadLenovoOchSweeperImplementation (project(':OCH:mogo-och-sweeper')) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } + fPadLenovoOchSweeperImplementation (project(':OCH:mogo-och-sweeper')) // Bus司机端 - fPadLenovoOchBusImplementation (project(':OCH:mogo-och-bus')) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } - + fPadLenovoOchBusImplementation (project(':OCH:mogo-och-bus')) // Bus乘客端 - fPadLenovoOchBusPassengerImplementation (project(':OCH:mogo-och-bus-passenger')) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } + fPadLenovoOchBusPassengerImplementation (project(':OCH:mogo-och-bus-passenger')) // taxi司机端 - fPadLenovoOchTaxiImplementation (project(':OCH:mogo-och-taxi')) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } - + fPadLenovoOchTaxiImplementation (project(':OCH:mogo-och-taxi')) // taxi乘客端 - fPadLenovoOchTaxiPassengerImplementation (project(':OCH:mogo-och-taxi-passenger')) { - exclude group: 'com.mogo.commons' //by group - exclude group: 'com.mogo.module' //by group - exclude group: 'com.mogo.map' //by group - exclude group: 'com.mogo.eagle.core' //by group - exclude group: 'com.mogo.eagle.core.function' //by group - } + fPadLenovoOchTaxiPassengerImplementation (project(':OCH:mogo-och-taxi-passenger')) + + // Bus司机端 + fMultiDisplayOchBusImplementation (project(':OCH:mogo-och-bus')) + // Bus乘客端 + fMultiDisplayOchBusImplementation (project(':OCH:mogo-och-bus-passenger')) + + // taxi司机端 + fMultiDisplayOchTaxiImplementation (project(':OCH:mogo-och-taxi')) + // taxi乘客端 + fMultiDisplayOchTaxiImplementation (project(':OCH:mogo-och-taxi-passenger')) } } diff --git a/app/productFlavors/README.md b/app/productFlavors/README.md new file mode 100644 index 0000000000..66b93ae8f2 --- /dev/null +++ b/app/productFlavors/README.md @@ -0,0 +1,23 @@ +APP_IDENTITY_MODE规则: +业务线 + Taxi 出租车 + Bus 小巴 + Sweeper 清扫车 +角色 + Driver 司机屏 + Passenger 乘客屏 +车型 + Base base(东风、红旗、金旅) + M1 m1 + M2 m2 + Van 开沃 + FT 福田 +已有: + taxi司机屏 Taxi_Driver_Base (东风、红旗司机端) + taxi乘客屏 Taxi_Passenger_Base (东风、红旗乘客端) + bus司机屏 Bus_Driver_Base (金旅小巴司机端) + Bus_Driver_Van (开沃小巴司机端) + bus乘客屏 Bus_Passenger_Base (金旅、开沃小巴乘客端) + Bus_Passenger_M1 (M1小巴乘客端) + Bus_Passenger_M2 (M2小巴乘客端) + 清扫车 Sweeper_Driver_FT (福田清扫车司机端) \ No newline at end of file diff --git a/app/productFlavors/f8xx.gradle b/app/productFlavors/f8xx.gradle deleted file mode 100644 index 89c37c0438..0000000000 --- a/app/productFlavors/f8xx.gradle +++ /dev/null @@ -1,37 +0,0 @@ -project.android.productFlavors { - // f系列-分体机全系列,未细分 - f8xx { - externalNativeBuild { - ndk { - // 设置支持的SO库架构 - abiFilters "arm64-v8a" - } - } - minSdkVersion rootProject.ext.android.minSdkVersion - targetSdkVersion rootProject.ext.android.targetSdkVersion - // 应用包名 - applicationId rootProject.ext.android.fLauncherApplicationId - dimension "product" - - // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 - buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' - //高德地图鉴权信息 - manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "f8xx",ACTIVITY_ROOT:true] - - // 是否基于地图 - buildConfigField 'boolean', 'IS_MAP_BASED', 'true' - - // 是否需要实时上报坐标 - buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' - // GPS数据提供源: 0-Android系统,1-工控机,2-OBU - buildConfigField 'int', 'GPS_PROVIDER', "1" - - // 构建的应用身份类型,司机|乘客 - buildConfigField 'int', 'APP_IDENTITY_MODE', "0x00" - // 连接的工控机IP地址 - buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.102\"" - // 构建的是否是演示(美化)模式 - buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' - } - -} \ No newline at end of file diff --git a/app/productFlavors/fochbus.gradle b/app/productFlavors/fMultiDisplayOchBus.gradle similarity index 57% rename from app/productFlavors/fochbus.gradle rename to app/productFlavors/fMultiDisplayOchBus.gradle index a9de923535..8b3608c211 100644 --- a/app/productFlavors/fochbus.gradle +++ b/app/productFlavors/fMultiDisplayOchBus.gradle @@ -1,37 +1,39 @@ project.android.productFlavors { - // f系列-网约车-小巴车 - fochbus { + // 支持多个屏幕异显示的终端,即一个终端包含司机端、乘客端 + fMultiDisplayOchBus { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a" } } - minSdkVersion rootProject.ext.android.minSdkVersion - targetSdkVersion rootProject.ext.android.targetSdkVersion + minSdkVersion rootProject.ext.android.minSdkVersionPadLenovo + targetSdkVersion rootProject.ext.android.targetSdkVersionPadLenovo + versionCode rootProject.versionCode as int + versionName rootProject.versionName // 应用包名 applicationId rootProject.ext.android.fLauncherApplicationId dimension "product" // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 - buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'int', 'CAR_MACHINE_TYPE', '2' //高德地图鉴权信息 - manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fochbus",ACTIVITY_ROOT:true] - - // 是否基于地图 - buildConfigField 'boolean', 'IS_MAP_BASED', 'true' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchBus",ACTIVITY_ROOT:true] // 是否需要实时上报坐标 buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' // GPS数据提供源: 0-Android系统,1-工控机,2-OBU buildConfigField 'int', 'GPS_PROVIDER', "1" - // 构建的应用身份类型,司机|乘客 - buildConfigField 'int', 'APP_IDENTITY_MODE', "0x00" + // 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 + buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Bus_Driver_Base\"" // 连接的工控机IP地址 buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.102\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' } } \ No newline at end of file diff --git a/app/productFlavors/fochtaxi.gradle b/app/productFlavors/fMultiDisplayOchTaxi.gradle similarity index 57% rename from app/productFlavors/fochtaxi.gradle rename to app/productFlavors/fMultiDisplayOchTaxi.gradle index af2535b0d1..a5534d3fce 100644 --- a/app/productFlavors/fochtaxi.gradle +++ b/app/productFlavors/fMultiDisplayOchTaxi.gradle @@ -1,37 +1,39 @@ project.android.productFlavors { - // f系列-网约车-出租车 - fochtaxi { + // 支持多个屏幕异显示的终端,即一个终端包含司机端、乘客端 + fMultiDisplayOchTaxi { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a" } } - minSdkVersion rootProject.ext.android.minSdkVersion - targetSdkVersion rootProject.ext.android.targetSdkVersion + minSdkVersion rootProject.ext.android.minSdkVersionPadLenovo + targetSdkVersion rootProject.ext.android.targetSdkVersionPadLenovo + versionCode rootProject.versionCode as int + versionName rootProject.versionName // 应用包名 applicationId rootProject.ext.android.fLauncherApplicationId dimension "product" // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 - buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'int', 'CAR_MACHINE_TYPE', '2' //高德地图鉴权信息 - manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fochtaxi",ACTIVITY_ROOT:true] - - // 是否基于地图 - buildConfigField 'boolean', 'IS_MAP_BASED', 'true' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchTaxi",ACTIVITY_ROOT:true] // 是否需要实时上报坐标 buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' // GPS数据提供源: 0-Android系统,1-工控机,2-OBU buildConfigField 'int', 'GPS_PROVIDER', "1" - // 构建的应用身份类型,司机|乘客 - buildConfigField 'int', 'APP_IDENTITY_MODE', "0x00" + // 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 + buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Taxi_Driver_Base\"" // 连接的工控机IP地址 buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.1.102\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' } } \ No newline at end of file diff --git a/app/productFlavors/fPadLenovo.gradle b/app/productFlavors/fPadLenovo.gradle index f32962c9df..3f81f59165 100644 --- a/app/productFlavors/fPadLenovo.gradle +++ b/app/productFlavors/fPadLenovo.gradle @@ -4,7 +4,7 @@ project.android.productFlavors { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a" } } minSdkVersion rootProject.ext.android.minSdkVersionPadLenovo @@ -18,19 +18,19 @@ project.android.productFlavors { // 高德地图鉴权信息 manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovo",ACTIVITY_ROOT:true] - // 是否基于地图 - buildConfigField 'boolean', 'IS_MAP_BASED', 'true' - // 是否需要实时上报坐标 buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' // GPS数据提供源: 0-Android系统,1-工控机,2-OBU buildConfigField 'int', 'GPS_PROVIDER', "1" - // 构建的应用身份类型,司机|乘客 - buildConfigField 'int', 'APP_IDENTITY_MODE', "0x00" + // 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 + buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Taxi_Driver_Base\"" // 连接的工控机IP地址 buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.1.104\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' } } \ No newline at end of file diff --git a/app/productFlavors/fPadLenovoOchBus.gradle b/app/productFlavors/fPadLenovoOchBus.gradle index 4f251e6744..faade038b5 100644 --- a/app/productFlavors/fPadLenovoOchBus.gradle +++ b/app/productFlavors/fPadLenovoOchBus.gradle @@ -4,7 +4,7 @@ project.android.productFlavors { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a" } } minSdkVersion rootProject.ext.android.minSdkVersionPadLenovo @@ -20,19 +20,19 @@ project.android.productFlavors { //高德地图鉴权信息 manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchBus",ACTIVITY_ROOT:true] - // 是否基于地图 - buildConfigField 'boolean', 'IS_MAP_BASED', 'true' - // 是否需要实时上报坐标 buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' // GPS数据提供源: 0-Android系统,1-工控机,2-OBU buildConfigField 'int', 'GPS_PROVIDER', "1" - // 构建的应用身份类型,出租车0|小巴A-司机|乘客 - buildConfigField 'int', 'APP_IDENTITY_MODE', "0xA0" + // 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 + buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Bus_Driver_Base\"" // 连接的工控机IP地址 buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.102\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' } } \ No newline at end of file diff --git a/app/productFlavors/fPadLenovoOchBusPassenger.gradle b/app/productFlavors/fPadLenovoOchBusPassenger.gradle index 4d739711e0..7d3a4fb24b 100644 --- a/app/productFlavors/fPadLenovoOchBusPassenger.gradle +++ b/app/productFlavors/fPadLenovoOchBusPassenger.gradle @@ -4,7 +4,7 @@ project.android.productFlavors { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a" } } minSdkVersion rootProject.ext.android.minSdkVersionPadLenovo @@ -18,19 +18,19 @@ project.android.productFlavors { //高德地图鉴权信息 manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchBusPassenger",ACTIVITY_ROOT:true] - // 是否基于地图 - buildConfigField 'boolean', 'IS_MAP_BASED', 'true' - // 是否需要实时上报坐标 buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' // GPS数据提供源: 0-Android系统,1-工控机,2-OBU buildConfigField 'int', 'GPS_PROVIDER', "1" - // 构建的应用身份类型,出租车0|小巴A-司机0|乘客1 - buildConfigField 'int', 'APP_IDENTITY_MODE', "0xA1" + // 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 + buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Bus_Passenger_Base\"" // 连接的工控机IP地址 buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.103\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' } } \ No newline at end of file diff --git a/app/productFlavors/fPadLenovoOchSweeper.gradle b/app/productFlavors/fPadLenovoOchSweeper.gradle index 35a55f8b87..29688ff909 100644 --- a/app/productFlavors/fPadLenovoOchSweeper.gradle +++ b/app/productFlavors/fPadLenovoOchSweeper.gradle @@ -4,7 +4,7 @@ project.android.productFlavors { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a" } } minSdkVersion rootProject.ext.android.minSdkVersionPadLenovo @@ -20,19 +20,19 @@ project.android.productFlavors { //高德地图鉴权信息 manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchSweeper",ACTIVITY_ROOT:true] - // 是否基于地图 - buildConfigField 'boolean', 'IS_MAP_BASED', 'true' - // 是否需要实时上报坐标 buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' // GPS数据提供源: 0-Android系统,1-工控机,2-OBU buildConfigField 'int', 'GPS_PROVIDER', "1" - // 构建的应用身份类型,出租车0|小巴A|清扫车B-司机|乘客 - buildConfigField 'int', 'APP_IDENTITY_MODE', "0xB0" + // 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 + buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Sweeper_Driver_FT\"" // 连接的工控机IP地址 buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.102\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' } } \ No newline at end of file diff --git a/app/productFlavors/fPadLenovoOchTaxi.gradle b/app/productFlavors/fPadLenovoOchTaxi.gradle index 5bd034f8f5..8b03a2ae79 100644 --- a/app/productFlavors/fPadLenovoOchTaxi.gradle +++ b/app/productFlavors/fPadLenovoOchTaxi.gradle @@ -5,7 +5,7 @@ project.android.productFlavors { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a" } } minSdkVersion rootProject.ext.android.minSdkVersionPadLenovo @@ -21,20 +21,20 @@ project.android.productFlavors { //高德地图鉴权信息 manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchTaxi",ACTIVITY_ROOT:true] - // 是否基于地图 - buildConfigField 'boolean', 'IS_MAP_BASED', 'true' - // 是否需要实时上报坐标 buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' // GPS数据提供源: 0-Android系统,1-工控机,2-OBU buildConfigField 'int', 'GPS_PROVIDER', "1" - // 构建的应用身份类型,出租车0|小巴A-司机|乘客 - buildConfigField 'int', 'APP_IDENTITY_MODE', "0x00" + // 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 + buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Taxi_Driver_Base\"" // 连接的工控机IP地址 buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.1.102\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' } } \ No newline at end of file diff --git a/app/productFlavors/fPadLenovoOchTaxiPassenger.gradle b/app/productFlavors/fPadLenovoOchTaxiPassenger.gradle index 3145ae7d5d..0ea289b89d 100644 --- a/app/productFlavors/fPadLenovoOchTaxiPassenger.gradle +++ b/app/productFlavors/fPadLenovoOchTaxiPassenger.gradle @@ -4,7 +4,7 @@ project.android.productFlavors { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a" } } minSdkVersion rootProject.ext.android.minSdkVersionPadLenovo @@ -20,20 +20,20 @@ project.android.productFlavors { //高德地图鉴权信息 manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchTaxiPassenger",ACTIVITY_ROOT:false] - // 是否基于地图 - buildConfigField 'boolean', 'IS_MAP_BASED', 'true' - // 是否需要实时上报坐标 buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' // GPS数据提供源: 0-Android系统,1-工控机,2-OBU buildConfigField 'int', 'GPS_PROVIDER', "1" - // 构建的应用身份类型,出租车0|小巴A-司机0|乘客1 - buildConfigField 'int', 'APP_IDENTITY_MODE', "0x01" + // 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 + buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Taxi_Passenger_Base\"" // 连接的工控机IP地址 buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.1.103\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' } } \ No newline at end of file diff --git a/app/regroup.gradle b/app/regroup.gradle index 56c7128a4f..64ad37e011 100644 --- a/app/regroup.gradle +++ b/app/regroup.gradle @@ -1,7 +1,15 @@ // 将 install 和 assemble 任务按功能分组 afterEvaluate { - def launcher = [ "fPadLenovo","fPadLenovoOchSweeper", "fPadLenovoOchTaxi", "fPadLenovoOchBus", "fPadLenovoOchBusPassenger", "fPadLenovoOchTaxiPassenger"] + def launcher = [ + "fPadLenovo", + "fPadLenovoOchSweeper", + "fPadLenovoOchTaxi", + "fPadLenovoOchBus", + "fPadLenovoOchBusPassenger", + "fPadLenovoOchTaxiPassenger", + "MultiDisplayOchBus", + "MultiDisplayOchTaxi"] it.getTasks().iterator().forEachRemaining { def task = it diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 078577e71e..ed485f3a03 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,17 +25,17 @@ android:name="design_height_in_dp" android:value="3200"/> - - - - + + + + + + + + + + + diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 547e5c243f..422a345196 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -1,13 +1,27 @@ package com.mogo.launcher; -import com.mogo.eagle.core.function.main.MainMoGoApplication; import android.content.Context; +import com.mogo.commons.debug.DebugConfig; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; +import com.mogo.eagle.core.function.main.MainMoGoApplication; import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.util.ProcessUtils; import com.mogo.launcher.crash.CrashSystem; +import com.mogo.launcher.stageone.APMStartup; +import com.mogo.launcher.stageone.ARouterStartUp; +import com.mogo.launcher.stageone.ConfigStartUp; +import com.mogo.launcher.stageone.HttpDnsStartUp; +import com.rousetime.android_startup.StartupListener; +import com.rousetime.android_startup.StartupManager; +import com.rousetime.android_startup.model.LoggerLevel; +import com.rousetime.android_startup.model.StartupConfig; +import com.zhidaoauto.map.sdk.open.HDTypes; +import com.zhidaoauto.map.sdk.open.MapAutoApi; +import com.zhidaoauto.map.sdk.open.MapParams; -import java.util.concurrent.ThreadPoolExecutor; +import org.greenrobot.eventbus.EventBus; /** * @author congtaowang @@ -17,6 +31,45 @@ import java.util.concurrent.ThreadPoolExecutor; */ public class MogoApplication extends MainMoGoApplication { + @Override + public void onCreate() { + startUpInStage1(); + super.onCreate(); + } + + private final StartupListener startupListener = (l, costTimesModels) -> EventBus.getDefault().postSticky(costTimesModels); + + /** + * 第一阶段初始化 + */ + public void startUpInStage1() { + StartupConfig config = null; + if (DebugConfig.isDebug()) { + config = new StartupConfig.Builder() + .setLoggerLevel(LoggerLevel.DEBUG) + .setOpenStatistics(true) + .setListener(startupListener) + .build(); + } else { + config = new StartupConfig.Builder() + .setLoggerLevel(LoggerLevel.NONE) + .setOpenStatistics(false) + .setAwaitTimeout(10000L) + .setListener(startupListener) + .build(); + } + new StartupManager.Builder() + .addStartup(new HttpDnsStartUp()) + .addStartup(new APMStartup()) + .addStartup(new ConfigStartUp()) + .addStartup(new ARouterStartUp()) + .setConfig(config) + .build(this) + .start() + .await(); + } + + @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); diff --git a/app/src/main/java/com/mogo/launcher/stageone/APMStartup.kt b/app/src/main/java/com/mogo/launcher/stageone/APMStartup.kt index b593f616ba..00d7da6b9e 100644 --- a/app/src/main/java/com/mogo/launcher/stageone/APMStartup.kt +++ b/app/src/main/java/com/mogo/launcher/stageone/APMStartup.kt @@ -8,8 +8,6 @@ import com.mogo.test.crashreport.CrashReportConstants class APMStartup : AndroidStartup() { override fun create(context: Context): Boolean? { - // bugly - ARouter.getInstance().build(UpgradeReportConstants.PATH).navigation() // apm ARouter.getInstance().build(CrashReportConstants.PATH).navigation() return true @@ -24,6 +22,6 @@ class APMStartup : AndroidStartup() { } override fun dependenciesByName(): List { - return listOf("com.mogo.launcher.stageone.ARouterStartUp") + return listOf("com.mogo.launcher.stageone.ARouterStartUp", "com.mogo.launcher.stageone.ConfigStartUp") } } \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt index c28853505e..006f28e5fe 100644 --- a/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt @@ -1,6 +1,7 @@ package com.mogo.launcher.stageone import android.content.Context +import android.util.Log import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.app.AppConfigInfo.appBuildTime import com.mogo.eagle.core.data.app.AppConfigInfo.workingBranchHash @@ -8,11 +9,18 @@ import com.mogo.eagle.core.data.app.AppConfigInfo.workingBranchName import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HdMapBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig +import com.mogo.eagle.core.data.deva.net.UrlConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.eagle.core.utilcode.util.ProcessUtils import com.mogo.launcher.BuildConfig import com.mogo.launcher.R import com.mogo.test.crashreport.CrashReportConstants import com.rousetime.android_startup.AndroidStartup -import com.zhjt.mogo_core_function_devatools.env.* +import com.zhidaoauto.map.sdk.open.HDTypes +import com.zhidaoauto.map.sdk.open.MapAutoApi +import com.zhidaoauto.map.sdk.open.MapParams +import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager class ConfigStartUp : AndroidStartup() { @@ -37,8 +45,27 @@ class ConfigStartUp : AndroidStartup() { // FunctionBuildConfig.gpsProvider = 2 // 演示模式,上一次勾选的数据 FunctionBuildConfig.isDemoMode = BuildConfig.IS_DEMO_MODE - // app安装的身份信息 +// // app安装的身份信息 FunctionBuildConfig.appIdentityMode = BuildConfig.APP_IDENTITY_MODE + // 各个module需要的url + FunctionBuildConfig.urlJson = GsonUtils.fromJson(BuildConfig.URLs, UrlConfig::class.java) + + Log.d("ConfigStartUp", "ProcessUtils.getCurrentProcessName():" + ProcessUtils.getCurrentProcessName()) + +// // 这里影响当前Activity的身份信息,多进程先保持与原来一样,主进程为司机端,:passenger 进程为乘客端 TODO 暂时不启用,仅做洱海交付,独立乘客屏+宣传视频 +// if (ProcessUtils.getCurrentProcessName().contains(":passenger")) { +// if (AppIdentityModeUtils.isBus(BuildConfig.APP_IDENTITY_MODE)) { +// FunctionBuildConfig.appIdentityMode = 0xA1 +// } else if (AppIdentityModeUtils.isTaxi(BuildConfig.APP_IDENTITY_MODE)) { +// FunctionBuildConfig.appIdentityMode = 0x01 +// } +// } else { +// if (AppIdentityModeUtils.isBus(BuildConfig.APP_IDENTITY_MODE)) { +// FunctionBuildConfig.appIdentityMode = 0xA0 +// } else if (AppIdentityModeUtils.isTaxi(BuildConfig.APP_IDENTITY_MODE)) { +// FunctionBuildConfig.appIdentityMode = 0x00 +// } +// } // 不同身份对应不同的IP地址 FunctionBuildConfig.adasConnectIP = BuildConfig.ADAS_CONNECT_IP } @@ -58,16 +85,16 @@ class ConfigStartUp : AndroidStartup() { DebugConfig.setMapVersion(BuildConfig.MAP_SDK_VERSION) DebugConfig.setMapOptVersion(BuildConfig.MAP_SDK_OPT_VERSION) DebugConfig.setNeedUploadCoordinatesInTime(BuildConfig.IS_NEED_UPLOAD_COORDINATES_IN_TIME) + DebugConfig.setMultiDisplay(BuildConfig.IS_MULTI_DISPLAY) + } private fun initOtherConfig(context: Context) { // 配置BuglyAppID:MoGoEagleEye CrashReportConstants.buglyAppID = "ac71228f85" - if (DebugConfig.getProductFlavor() == "fPadLenovoOchTaxi" || DebugConfig.getProductFlavor() == "fPadLenovoOchBus" - || DebugConfig.getProductFlavor() == "fPadLenovoOchTaxiPassenger" - || DebugConfig.getProductFlavor() == "fPadLenovoOchBusPassenger" - || DebugConfig.getProductFlavor() == "fPadLenovoOchSweeper") { + if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) || + AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { //控制HMI展示元素 将不用手动调用setXXXXXViewVisibility HmiBuildConfig.isShowSpeedView = false HmiBuildConfig.isShowAutopilotStatusView = false @@ -77,33 +104,72 @@ class ConfigStartUp : AndroidStartup() { HmiBuildConfig.isShowUpgradeTipsView = false } - if (DebugConfig.getProductFlavor() == "fPadLenovoOchTaxi" || DebugConfig.getProductFlavor() == "fPadLenovoOchTaxiPassenger") { + if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche - } else if (DebugConfig.getProductFlavor() == "fPadLenovoOchBus" || DebugConfig.getProductFlavor() == "fPadLenovoOchBusPassenger") { + } else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache // HmiBuildConfig.isShowBrakeLightView = false // HmiBuildConfig.isShowTurnLightView = false - } else if (DebugConfig.getProductFlavor() == "fPadLenovoOchSweeper") { + } else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.huanwei } - if (DebugConfig.getProductFlavor() == "fPadLenovoOchTaxiPassenger") { - //是否显示 红绿等 - HmiBuildConfig.isShowTrafficLightView = false - //是否显示 限速UI - HmiBuildConfig.isShowLimitingVelocityView = false - //是否显示 路侧监控 - HmiBuildConfig.isShowCameraView = false - } else if (DebugConfig.getProductFlavor() == "fPadLenovoOchBusPassenger") { - //是否显示 红绿等 - HmiBuildConfig.isShowTrafficLightView = false - //是否显示 限速UI - HmiBuildConfig.isShowLimitingVelocityView = false - //是否显示 路侧监控 - HmiBuildConfig.isShowCameraView = false - //白天模式 - FunctionBuildConfig.skinMode = 1 + if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + //是否显示 红绿等 + HmiBuildConfig.isShowTrafficLightView = false + //是否显示 限速UI + HmiBuildConfig.isShowLimitingVelocityView = false + //是否显示 路侧监控 + HmiBuildConfig.isShowCameraView = false + //白天模式 + FunctionBuildConfig.skinMode = 1 + } else if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { + //是否显示 红绿等 + HmiBuildConfig.isShowTrafficLightView = false + //是否显示 限速UI + HmiBuildConfig.isShowLimitingVelocityView = false + //是否显示 路侧监控 + HmiBuildConfig.isShowCameraView = false + } } + val mapParams = MapParams.init() + mapParams.setDebugMode(false) //todo 1-使用本地地图数据,0-使用在线地图数据 + //.setDataFileSource(1) + .setCoordinateType(MapParams.COORDINATETYPE_GCJ02) + .setPerspectiveMode(MapParams.MAP_PERSPECTIVE_UP_CAR) + .setHDVisibileArray(intArrayOf(HDTypes.DIVIDER.type, + HDTypes.ROAD_AREA.type, + HDTypes.STOP_LINE.type, + HDTypes.ARROW.type, + HDTypes.STATION_BRIDGE.type, + HDTypes.ZEBRA_LINE.type, + HDTypes.GREEN_BELT.type, + HDTypes.DIVERSION.type, + HDTypes.SAFE_ISLAND.type, + HDTypes.ALPHANUMERIC.type, + HDTypes.GUARDBAR.type, + HDTypes.TRAFFIC_DEVICE.type, + HDTypes.CABLE.type, + HDTypes.SIGNAL_LINE.type)) + // .setZoom( 20 ) + // .setPointToCenter( 0.734375f, 0.5f ) + //todo 2D模式下需要注意ADAS部分遮挡 + //.setPointToCenter(0.5f, 0.5f) + // 根据 FunctionBuildConfig 配置的皮肤样式设置题图的样式 + + if (FunctionBuildConfig.skinMode == 1) { + mapParams.setStyleMode(MapParams.MAP_STYLE_DAY_VR) + } else { + mapParams.setStyleMode(MapParams.MAP_STYLE_NIGHT_VR) + } + //todo 临时放在这 @梁利辉 + if (AppIdentityModeUtils.isBusPassenger(FunctionBuildConfig.appIdentityMode)) { + mapParams.setShadowEnable(false) + } + + MapAutoApi.init(context, mapParams) + } } \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt b/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt index 794e9ef28b..d25c10b26d 100644 --- a/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt @@ -29,8 +29,10 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_C import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener import com.mogo.eagle.core.function.call.analytics.AnalyticsManager import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager +import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant @@ -39,7 +41,6 @@ import com.mogo.eagle.core.utilcode.util.AppUtils import com.mogo.eagle.core.utilcode.util.ProcessUtils import com.mogo.eagle.core.utilcode.util.ThreadPoolService import com.mogo.eagle.core.utilcode.util.TimeUtils -import com.mogo.map.location.GDLocationClient import com.rousetime.android_startup.AndroidStartup import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager import com.zhjt.service.chain.ChainLog @@ -69,22 +70,22 @@ class HttpDnsStartUp : AndroidStartup() { override fun dependenciesByName(): List { return listOf( - "com.mogo.launcher.stageone.APMStartup", - "com.mogo.launcher.stageone.ConfigStartUp" + "com.mogo.launcher.stageone.APMStartup" ) } override fun create(context: Context): Boolean { this.context = context - if (ProcessUtils.isMainProcess(context)) { - initGDLoc() - initHttpDns() - } + // TODO 需要与,陈扶风,确认为啥要限制仅在主进程 +// if (ProcessUtils.isMainProcess(context)) { + initGDLoc() + initHttpDns() +// } return true } private fun initGDLoc() { - GDLocationClient.getInstance(context).start() + CallerMapUIServiceManager.getGDLocationServer(context!!)?.start() } /** @@ -129,7 +130,12 @@ class HttpDnsStartUp : AndroidStartup() { // 设置AI云平台分配给三方应用的签名密钥,需要从AI云平台申请 // 设置车机设备的唯一标识(这些表识必须是通过后台录入的设备) // TODO 现在这块逻辑因为网约车业务那后台的限制,还没有更换,条件成熟后替换为 DeviceIdUtils.getWidevineIDWithMd5(context) - clientConfig.thirdPartyDeviceId = Utils.getDevicesId() + // 这里影响当前Activity的身份信息,多进程先保持与原来一样,主进程为司机端,:passenger 进程为乘客端 + if (ProcessUtils.getCurrentProcessName().contains(":passenger")) { + clientConfig.thirdPartyDeviceId = Utils.getDevicesId() + "_passenger" + } else { + clientConfig.thirdPartyDeviceId = Utils.getDevicesId() + } // 设置循环检测间隔时间(每隔2小时loop一次httpDnsConfig) clientConfig.loopCheckDelay = (60 * 60 * 2 * 1000).toLong() //设置长链接的secretKey //todo 通过SHA1和包名找中台服务生成,后续包名分渠道,需要做对应操作 @@ -142,19 +148,18 @@ class HttpDnsStartUp : AndroidStartup() { return HttpDnsSimpleLocation(envConfig.cityCode, envConfig.lat, envConfig.lon) } var mogoLocation: MogoLocation? = null - val locationClient = - CallerMapUIServiceManager.getSingletonLocationClient(AbsMogoApplication.getApp()) + val locationClient = CallerMapLocationListenerManager.getCurrentLocation() if (locationClient != null) { - mogoLocation = locationClient.lastKnowLocation + mogoLocation = locationClient } val httpDnsSimpleLocation = if (mogoLocation != null && mogoLocation.latitude != 0.0 && mogoLocation.longitude != 0.0) { - if (mogoLocation.cityCode.isNullOrEmpty() && !GDLocationClient.getInstance( - context - ).lastCityCode.isNullOrEmpty() + if (mogoLocation.cityCode.isNullOrEmpty() + && !CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode.isNullOrEmpty() ) { HttpDnsSimpleLocation( - GDLocationClient.getInstance(context).lastCityCode, + CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode + ?: "010", mogoLocation.latitude, mogoLocation.longitude ) @@ -212,7 +217,7 @@ class HttpDnsStartUp : AndroidStartup() { // 异步初始化NetConfig asyncInit() // HttpDns ttl回调 --- socketTTL - registerSocketHttpDnsTTL(HostConst.SOCKET_CENTER_DOMAIN) + registerSocketHttpDnsTTL() // 开启每5s/次定位上报 uploadLocPerFiveSecond() gotToken = true @@ -236,17 +241,14 @@ class HttpDnsStartUp : AndroidStartup() { ThreadPoolService.execute { //初始化网络配置 NetConfigUtils.init() - // 初始化埋点 AnalyticsManager.init(context, DebugConfig.isDebug()) - // 加入启动统计 val mStartParams: HashMap = HashMap() mStartParams["start_time"] = TimeUtils.getNowMills() mStartParams["app_version"] = AppUtils.getAppVersionName() mStartParams["app_flavor"] = DebugConfig.getProductFlavor(); mStartParams["app_identity_mode"] = FunctionBuildConfig.appIdentityMode - AnalyticsManager.track("app_start_time", mStartParams) } } @@ -254,7 +256,7 @@ class HttpDnsStartUp : AndroidStartup() { /** * 请求获取最新的 DNS 微服务 域名信息 */ - private fun registerSocketHttpDnsTTL(host: String?) { + private fun registerSocketHttpDnsTTL() { mogoHttpDns.addressChangedListener(object : OnAddressChangedListener { @ChainLog( linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS, @@ -266,7 +268,7 @@ class HttpDnsStartUp : AndroidStartup() { ) override fun onAddressChanged(cityCode: String, address: Map?) { val dnsCacheIp = mogoHttpDns.getCachedHttpDnsIps( - host, + HostConst.SOCKET_CENTER_DOMAIN, HttpDnsConst.HTTP_DNS_ADDRESS_TYPE_HTTP ) ?: return if (dnsCacheIp != cacheIp) { @@ -289,19 +291,25 @@ class HttpDnsStartUp : AndroidStartup() { context?.let { MogoLocationInfoServices.getInstance().init(it) MogoLocationInfoServices.getInstance().start() - val locationClient = CallerMapUIServiceManager.getSingletonLocationClient(it) - locationClient?.addLocationListener { location: MogoLocation? -> - MogoLocationInfoServices.getInstance().provideLocation(location) - } + CallerMapLocationListenerManager.addListener( + TAG, + object : IMoGoMapLocationListener { + override fun onLocationChanged( + location: MogoLocation?, from: Int, isGps: Boolean) { + location?.let { + MogoLocationInfoServices.getInstance().provideLocation(it) + } + } + }, + false + ) } } } private fun startSocketService() { CallerLogger.d(SceneConstant.M_MAIN + TAG, "startSocketService") - val location = - CallerMapUIServiceManager.getSingletonLocationClient(AbsMogoApplication.getApp())!! - .lastKnowLocation + val location = CallerMapLocationListenerManager.getCurrentLocation() // 关闭长链服务 MogoAiCloudSocketManager.getInstance(context).destroy() MogoAiCloudSocketManager.getInstance(context) @@ -362,8 +370,10 @@ class HttpDnsStartUp : AndroidStartup() { } }) // 开启Socket长链服务 - val lat = location.latitude - val lon = location.longitude + val lat = + location?.latitude ?: CallerMapUIServiceManager.getGDLocationServer(context!!)!!.lastLat + val lon = location?.longitude + ?: CallerMapUIServiceManager.getGDLocationServer(context!!)!!.lastLon MogoAiCloudSocketManager.getInstance(context) .init(context, DebugConfig.getSocketAppId(), lat, lon) } diff --git a/app_ipc_monitoring/build.gradle b/app_ipc_monitoring/build.gradle index 5b806618c1..ec986aca15 100644 --- a/app_ipc_monitoring/build.gradle +++ b/app_ipc_monitoring/build.gradle @@ -6,7 +6,7 @@ android { compileSdkVersion rootProject.ext.android.compileSdkVersion defaultConfig { applicationId "com.zhidao.adas.client" - minSdkVersion 21 + minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion 25 multiDexEnabled true versionCode 1 @@ -87,7 +87,6 @@ dependencies { implementation rootProject.ext.dependencies.gson implementation project(':libraries:mogo-adas') implementation project(':libraries:mogo-adas-data') - implementation project(':libraries:mogo-adas-other') // implementation 'com.zhidao.support.adas:high:2.8.0.0' // implementation 'com.zhjt.mogo.adas.data:adas-data:2.6.6.0' // compileOnly project(':core:mogo-core-data') diff --git a/app_ipc_monitoring/mogo-adas-connect-status/.gitignore b/app_ipc_monitoring/mogo-adas-connect-status/.gitignore deleted file mode 100644 index 796b96d1c4..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/app_ipc_monitoring/mogo-adas-connect-status/README.md b/app_ipc_monitoring/mogo-adas-connect-status/README.md deleted file mode 100644 index 64f679824d..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/README.md +++ /dev/null @@ -1,2 +0,0 @@ -#### 说明 -# ADAS 连接状态 LIB diff --git a/app_ipc_monitoring/mogo-adas-connect-status/build.gradle b/app_ipc_monitoring/mogo-adas-connect-status/build.gradle deleted file mode 100644 index 1090744871..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/build.gradle +++ /dev/null @@ -1,106 +0,0 @@ -plugins { - id 'com.android.library' - id 'maven' -} -//ext { -// //自动驾驶产品版本号 -// AP_VERSION = "2.6.0" -//} -android { - compileSdkVersion rootProject.ext.android.compileSdkVersion - // buildToolsVersion rootProject.ext.android.buildToolsVersion - - defaultConfig { - minSdkVersion rootProject.ext.android.minSdkVersion - targetSdkVersion rootProject.ext.android.targetSdkVersion -// versionCode Integer.valueOf(VERSION_CODE) -// versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION") -// -// buildConfigField "String", "AP_VERSION", "\"${AP_VERSION}\"" - versionCode rootProject.versionCode as int - versionName rootProject.versionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles 'consumer-rules.pro' - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - - sourceSets { - main { - jniLibs.srcDirs = ['libs'] -// java { -// srcDir 'src/main/java' -// } -// -// proto { -// srcDir 'src/main/proto' -// include '**/*.proto' -// } - } - } -// -// protobuf { -// protoc { -// artifact = 'com.google.protobuf:protoc:3.6.1' -// } -// -// generateProtoTasks { -// all().each { task -> -// task.builtins { -// remove java -// } -// task.builtins { -// java {} -// } -// } -// } -// } - -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':libraries:mogo-adas') - implementation rootProject.ext.dependencies.androidxrecyclerview -} - -task androidSourcesJar(type: Jar) { - classifier = 'sources' - from android.sourceSets.main.java.srcDirs -} -//配置需要上传到maven仓库的文件 -artifacts { - archives androidSourcesJar -} - -uploadArchives { - repositories.mavenDeployer { - repository(url: RELEASE_REPOSITORY_URL) { - authentication(userName: USERNAME, password: PASSWORD) - } - snapshotRepository(url: SNAPSHOT_REPOSITORY_URL) { - authentication(userName: USERNAME, password: PASSWORD) - } - pom.groupId = ADAS_LIB_GROUP - pom.artifactId = ADAS_LIB_POM_ARTIFACT_ID - pom.version = versionName + ADAS_LIB_CHILD_VERSION - pom.whenConfigured { pom -> - pom.dependencies.forEach { dep -> - if (dep.getVersion() == "unspecified") { - println("--修改pom.xml中的dependies模块--->>" + dep.getArtifactId()) - if (dep.getArtifactId() == ADAS_DATA_LIB_POM_ARTIFACT_ID) { - dep.setGroupId(ADAS_DATA_LIB_GROUP) - dep.setVersion(versionName + ADAS_DATA_LIB_CHILD_VERSION) - } - } - - } - - } - } -} \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/gradle.properties b/app_ipc_monitoring/mogo-adas-connect-status/gradle.properties deleted file mode 100644 index 0d60ce4aee..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -GROUP=com.mogo.adas -POM_ARTIFACT_ID=mogo-adas -VERSION_CODE=1 \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/proguard-rules.pro b/app_ipc_monitoring/mogo-adas-connect-status/proguard-rules.pro deleted file mode 100644 index f10712073b..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/proguard-rules.pro +++ /dev/null @@ -1,26 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile - -#-----MogoMap----- --keep class com.mogo.map.MogoNavi{ - private (); -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/AndroidManifest.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/AndroidManifest.xml deleted file mode 100644 index 9c1d6e5204..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/AndroidManifest.xml +++ /dev/null @@ -1,3 +0,0 @@ - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/AdasConnectStatusManager.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/AdasConnectStatusManager.java deleted file mode 100644 index 81f6e1ae55..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/AdasConnectStatusManager.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.zhidao.support.adas.high; - -import android.app.Activity; - -import com.zhidao.support.adas.high.common.ConnectStatusTask; -import com.zhidao.support.adas.high.widget.ConnectStatusFloatWindow; - -/** - * @ProjectName: lib-adas-fpga - * @Package: com.zhidao.lib.adas.high - * @ClassName: AdasManager - * @Description: java类作用描述 - * @Author: fenghl - * @CreateDate: 2020/2/7 13:13 - * @UpdateUser: 更新者: - * @UpdateDate: 2020/2/7 13:13 - * @UpdateRemark: 更新说明: - * @Version: 1.0 - */ -public class AdasConnectStatusManager { - private static volatile AdasConnectStatusManager ourInstance; - - private ConnectStatusFloatWindow floatWindow; - - public static AdasConnectStatusManager getInstance() { - if (ourInstance == null) { - synchronized (AdasConnectStatusManager.class) { - if (ourInstance == null) { - ourInstance = new AdasConnectStatusManager(); - } - } - } - return ourInstance; - } - - private AdasConnectStatusManager() { - - } - - - /** - * 展示连接历史 - * - * @param activity - */ - public void showConnectStatusFloatWindow(Activity activity) { - if (floatWindow == null) { - floatWindow = new ConnectStatusFloatWindow(activity, ConnectStatusTask.getInstance().getList(), new ConnectStatusFloatWindow.OnConnectStatusFloatWindowListener() { - @Override - public void onClose() { - closeConnectStatusFloatWindow(); - } - }); - floatWindow.showFloatWindow(); - } else { - closeConnectStatusFloatWindow(); - } - } - - private void closeConnectStatusFloatWindow() { - floatWindow.hideFloatWindow(); - floatWindow = null; - } - - -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/bean/IPCConnectState.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/bean/IPCConnectState.java deleted file mode 100644 index b416ec0531..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/bean/IPCConnectState.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.zhidao.support.adas.high.bean; - -import androidx.annotation.ColorRes; - -public class IPCConnectState { - public final String status; - @ColorRes - public final int color; - - public IPCConnectState(String status, @ColorRes int color) { - this.status = status; - this.color = color; - } - - -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/common/ConnectStatusTask.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/common/ConnectStatusTask.java deleted file mode 100644 index daa5818a8c..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/common/ConnectStatusTask.java +++ /dev/null @@ -1,382 +0,0 @@ -package com.zhidao.support.adas.high.common; - -import android.os.Environment; -import android.text.TextUtils; - -import com.zhidao.support.adas.high.bean.IPCConnectState; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.LineNumberReader; -import java.io.RandomAccessFile; -import java.nio.charset.StandardCharsets; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.concurrent.Future; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.atomic.AtomicBoolean; - -/** - * 连接状态存储任务 - */ -public class ConnectStatusTask { - private static final String TAG = ConnectStatusTask.class.getSimpleName(); - public static final String ROOT_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "mogo" + File.separator + "adas" + File.separator;//程序外部存储跟目录 - private static final String LOG_FILE_NAME = "ipc_connect_status.log";//文件名称 - private volatile static ConnectStatusTask INSTANCE; - private static final int MAX_LINES = 1000;//最大存储行数 - private static final int DEL_LINES = 500;//超过最大存储行数删除的行数 - private static final int EVERY_TIME_READ_LINES = 200;//每次读取最大行数 - private LinkedBlockingQueue queue; - private BufferedWriter buff = null; - private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.getDefault()); - private File file; - //是否写入本地 - private final AtomicBoolean isSave = new AtomicBoolean(false); - private Future future; - private final AtomicBoolean isInitRead = new AtomicBoolean(false);//是否已经读取过本地文件 - private final List onReadListeners = new ArrayList<>(); - private final List listLog = new ArrayList<>(); - - private ConnectStatusTask() { - queue = new LinkedBlockingQueue<>(); - init(false); - ThreadPoolManager.getsInstance().submit(new ReadThread()); - } - - public static ConnectStatusTask getInstance() { - if (INSTANCE == null) { - synchronized (ConnectStatusTask.class) { - if (INSTANCE == null) { - INSTANCE = new ConnectStatusTask(); - } - } - } - return INSTANCE; - } - - public List getList() { - return listLog; - } - - public void clear() { - init(true); - listLog.clear(); - if (onReadListeners.size() != 0) { - for (int i = 0; i < onReadListeners.size(); i++) { - onReadListeners.get(i).onRefresh(); - } - } - } - - - public void setIsLogSwitch(boolean isLogSwitch) { - this.isLogSwitch = isLogSwitch; - } - - public boolean isLogSwitch() { - return isLogSwitch; - } - - - public boolean isSdcardUse() { - boolean bl = false; - if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { - bl = true; - } - return bl; - } - - private void init(boolean isClear) { - if (isSdcardUse()) { - try { - file = new File(ROOT_PATH + LOG_FILE_NAME); - if (isClear && file.exists()) { - file.delete(); - } - if (!file.exists()) { - if (!file.getParentFile().exists()) { - file.getParentFile().mkdirs(); - } - file.createNewFile(); - } - FileWriter fw = new FileWriter(file, true); - buff = new BufferedWriter(fw); - } catch (IOException e) { - e.printStackTrace(); - } - } - start(); - } - - public void start() { - if (future == null) { - future = ThreadPoolManager.getsInstance().submit(new WriteThread()); - } - } - - public void stop() { - queue.clear(); - if (future != null && !future.isCancelled()) { - future.cancel(true); - } - future = null; - closeBufferedWriter(); - } - - private void closeBufferedWriter() { - if (buff != null) { - try { - buff.flush(); - buff.close(); - } catch (IOException e) { - e.printStackTrace(); - } - buff = null; - } - - } - - public void save(String status) { - if (isLogSwitch) { - String time = sdf.format(new Date(System.currentTimeMillis())); - queue.add(time + "##" + status); - } - } - - private int getStatusColor(String connectStatus) { - if (connectStatus.contains("已连接")) { - return R.color.connect_status_connected; - } else if (connectStatus.contains("连接中") || connectStatus.contains("重连中")) { - return R.color.connect_status_connecting; - } else if (connectStatus.contains("正在搜索IP")) { - return R.color.connect_status_search_address; - } else if (connectStatus.contains("地址不可用或不合法")) { - return R.color.connect_status_disconnecting; - } else { - return R.color.connect_status_disconnected; - } - } - - - private synchronized void addList(String status) { - listLog.add(0, onParse(status)); - if (onReadListeners.size() != 0) { - for (OnReadListener listener : onReadListeners) { - listener.onRefresh(); - } - } - } - - private IPCConnectState onParse(String status) { - status = status.replace("##", "\n"); - return new IPCConnectState(status, getStatusColor(status)); - } - - //写入 - public class WriteThread implements Runnable { - int lineNum = -1; - - @Override - public void run() { -// L.i(TAG, "是否是主线程=" + Utils.isMainThread()); - if (lineNum == -1) { - lineNum = lineNumber(); - } - CupidLogUtils.i(TAG, "初始化获得的行数=" + lineNum); - synchronized (this) { - while (!Thread.currentThread().isInterrupted()) { - try { - String data = queue.take(); - data = data == null ? "主动断开连接" : data; -// addList(data, true); -// L.i(TAG, "写入Log---" + data); - if (buff != null && !TextUtils.isEmpty(data)) { - buff.write(data); - buff.newLine(); - buff.flush(); - lineNum++; - if (lineNum == MAX_LINES + 1 + DEL_LINES) { - List delLines = readAndRemoveFirstLines(); - for (String str : delLines) { - CupidLogUtils.i(TAG, "被删除的数据=" + str); - } - lineNum = lineNum - DEL_LINES; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - } - } - - - private List readAndRemoveFirstLines() { - List strList = new ArrayList<>(); - RandomAccessFile raf = null; - try { - raf = new RandomAccessFile(file, "rw"); - //Initial write position - long writePosition = raf.getFilePointer(); - for (int i = 0; i < DEL_LINES; i++) { - String line = raf.readLine(); - if (line == null) { - break; - } - strList.add(new String(line.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8)); - } - // Shift the next lines upwards. - long readPosition = raf.getFilePointer(); - - byte[] buff = new byte[1024]; - int n; - while (-1 != (n = raf.read(buff))) { - raf.seek(writePosition); - raf.write(buff, 0, n); - readPosition += n; - writePosition += n; - raf.seek(readPosition); - } - raf.setLength(writePosition); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (raf != null) { - raf.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - - return strList; - } - - - //获取文件总行数 - private int lineNumber() { - int lineNumber = 0; - if (file != null) - try { - LineNumberReader lineNumberReader = new LineNumberReader(new FileReader(file)); - lineNumberReader.skip(Long.MAX_VALUE); - //注意加1,实际上是读取换行符,所以需要+1 - lineNumber = lineNumberReader.getLineNumber() + 1; - } catch (IOException e) { - e.printStackTrace(); - } - return lineNumber; - } - - - //读取日志 - public void registerReadListener(OnReadListener onReadListener) { - if (onReadListener != null) { - if (!onReadListeners.contains(onReadListener)) { - onReadListeners.add(onReadListener); - } - - } - } - - public void unRegisterReadListener(OnReadListener onReadListener) { - if (onReadListener != null) - onReadListeners.remove(onReadListener); - } - - - public interface OnReadListener { - void onRefresh(); - } - - //读取 - public class ReadThread implements Runnable { - RandomAccessFile rf = null; - long len; - long start; - long nextend; - long readLine = 0; - boolean isRead = true; - int lineNum = -1; - - @Override - public void run() { -// L.i(TAG, "是否是主线程=" + Utils.isMainThread()); - if (lineNum == -1) { - lineNum = lineNumber(); - } - synchronized (this) { - try { - if (rf == null && file != null) { - rf = new RandomAccessFile(file, "r"); - len = rf.length(); - start = rf.getFilePointer(); - nextend = start + len - 1; - rf.seek(nextend); - } -// L.i(TAG, "len=" + len); -// L.i(TAG, "start=" + start); -// L.i(TAG, "nextend=" + nextend); - String line; - int c = -1; - while (isRead && nextend > start) { - c = rf.read(); - if (c == '\n' || c == '\r') { - line = rf.readLine(); - if (!TextUtils.isEmpty(line)) { - String log = new String(line.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); - listLog.add(onParse(log)); - } - nextend--; - readLine++; - } - nextend--; - rf.seek(nextend); - if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行 - String log = new String(rf.readLine().getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); - listLog.add(onParse(log)); - readLine++; - } - if (readLine == EVERY_TIME_READ_LINES + 1) { - isRead = false; - } -// L.i(TAG, "readLine=" + readLine); - } - Collections.reverse(listLog); - if (onReadListeners.size() != 0) { - for (int i = 0; i < onReadListeners.size(); i++) { - onReadListeners.get(i).onRefresh(); - } - - } - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (rf != null) - rf.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - isInitRead.set(true); - } - - } - - - } - - -} \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusAdapter.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusAdapter.java deleted file mode 100644 index 55c5bd4cd4..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusAdapter.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.zhidao.support.adas.high.widget; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.zhidao.support.adas.high.R; -import com.zhidao.support.adas.high.bean.IPCConnectState; - -import java.util.List; -import java.util.Locale; - - -/** - * 连接状态 - */ -public class ConnectStatusAdapter extends RecyclerView.Adapter { - private static final String POS = "%03d. "; - private List mDatas; - private Context mContext; - - public void setData(List mDatas) { - this.mDatas = mDatas; - } - - public void refreshView() { -// notifyItemChanged(mDatas.size()-1,0); - notifyItemRangeChanged(0, getItemCount()); - } - - @Override - public long getItemId(int position) { - return position; - } - - - @NonNull - @Override - public InfoViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) { - mContext = viewGroup.getContext(); - View remoteView = LayoutInflater.from(mContext).inflate(R.layout.item_status, viewGroup, false); - return new InfoViewHolder(remoteView); - - } - - @Override - public void onBindViewHolder(@NonNull InfoViewHolder viewHolder, int position) { - if (mDatas != null) { - IPCConnectState data = mDatas.get(position); - viewHolder.id.setText(String.format(Locale.getDefault(), POS, getItemCount() - position)); - viewHolder.editText.setText(data.status); - viewHolder.editText.setTextColor(mContext.getResources().getColor(data.color)); - } - - } - - - @Override - public int getItemCount() { - return mDatas == null ? 0 : mDatas.size(); - } - - - class InfoViewHolder extends RecyclerView.ViewHolder { - EditText editText; - TextView id; - - public InfoViewHolder(View itemView) { - super(itemView); - editText = itemView.findViewById(R.id.log); - id = itemView.findViewById(R.id.id); - itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - } - }); - } - } -} \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusFloatWindow.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusFloatWindow.java deleted file mode 100644 index 3e28199f85..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusFloatWindow.java +++ /dev/null @@ -1,195 +0,0 @@ -package com.zhidao.support.adas.high.widget; - -import android.app.Activity; -import android.content.Context; -import android.graphics.PixelFormat; -import android.os.Build; -import android.util.DisplayMetrics; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.view.WindowManager; -import android.widget.ImageView; -import android.widget.Toast; - -import androidx.recyclerview.widget.RecyclerView; - -import com.zhidao.support.adas.high.R; -import com.zhidao.support.adas.high.bean.IPCConnectState; - -import java.lang.reflect.Field; -import java.util.List; - -/** - * @author xuxinchao - * @description - * @since: 2022/4/20 - */ -public class ConnectStatusFloatWindow implements View.OnTouchListener { - - - private final Activity mContext; - private WindowManager.LayoutParams mWindowParams; - private WindowManager mWindowManager; - - private View mFloatLayout; - private ImageView btn_drag; - private float mInViewX; - private float mInViewY; - private float mDownInScreenX; - private float mDownInScreenY; - private float mInScreenX; - private float mInScreenY; - private RecyclerView rv_status; - private ConnectStatusAdapter adapter; - private List list; - private OnConnectStatusFloatWindowListener listener; - - public interface OnConnectStatusFloatWindowListener { - void onClose(); - } - - public ConnectStatusFloatWindow(Activity context, List list, OnConnectStatusFloatWindowListener listener) { - this.mContext = context; - this.list = list; - this.listener = listener; - initFloatWindow(); - } - - public void refreshView() { - if (adapter != null) { - adapter.refreshView(); - } - } - - private void initRV() { - //创建默认的线性LayoutManager 横向的GridLayoutManager - MyLinearLayoutManager linearLayoutManager = new MyLinearLayoutManager(mContext); -// linearLayoutManager.setStackFromEnd(true);//列表再底部开始展示,反转后由上面开始展示 -// linearLayoutManager.setReverseLayout(true);//列表翻转 - rv_status.setLayoutManager(linearLayoutManager); - //如果可以确定每个item的高度是固定的,设置这个选项可以提高性能 - rv_status.setHasFixedSize(false); - rv_status.setNestedScrollingEnabled(false); - adapter = new ConnectStatusAdapter(); - adapter.setHasStableIds(true); - rv_status.setAdapter(adapter); - adapter.setData(list); - } - - private void initFloatWindow() { - LayoutInflater inflater = LayoutInflater.from(mContext); - if (inflater == null) - return; - mFloatLayout = inflater.inflate(R.layout.layout_float, null); - rv_status = mFloatLayout.findViewById(R.id.rv_status); - View btn_close = mFloatLayout.findViewById(R.id.btn_close); - View btn_help = mFloatLayout.findViewById(R.id.btn_help); - View btn_save = mFloatLayout.findViewById(R.id.btn_save); - btn_drag = mFloatLayout.findViewById(R.id.btn_drag); - btn_close.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (listener != null) - listener.onClose(); - } - }); - btn_help.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Toast.makeText(v.getContext(), "功能提示\n1.将数连接状态写入本地;\n2.清空列表以及保存到本地的数据;\n3.拖拽;\n4.帮助;\n5.关闭此窗口;", Toast.LENGTH_LONG).show(); - } - }); - btn_save.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - } - }); - mFloatLayout.setOnTouchListener(this); - initRV(); - mWindowParams = new WindowManager.LayoutParams(); - mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); - if (Build.VERSION.SDK_INT >= 26) {//8.0新特性 - mWindowParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; - } else { - mWindowParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; - } - - mWindowManager = mContext.getWindowManager(); - - mWindowParams.format = PixelFormat.RGBA_8888; - mWindowParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; - mWindowParams.gravity = Gravity.START | Gravity.TOP; - mWindowParams.width = WindowManager.LayoutParams.WRAP_CONTENT; - mWindowParams.height = WindowManager.LayoutParams.WRAP_CONTENT; - mWindowParams.alpha = 0.82F; - } - - @Override - public boolean onTouch(View view, MotionEvent motionEvent) { - return floatLayoutTouch(motionEvent); - } - - private boolean floatLayoutTouch(MotionEvent motionEvent) { - switch (motionEvent.getAction()) { - case MotionEvent.ACTION_DOWN: - // 获取相对View的坐标,即以此View左上角为原点 - mInViewX = motionEvent.getX(); - mInViewY = motionEvent.getY(); - // 获取相对屏幕的坐标,即以屏幕左上角为原点 - mDownInScreenX = motionEvent.getRawX(); - mDownInScreenY = motionEvent.getRawY() - BarUtils.getStatusBarHeight(); - mInScreenX = motionEvent.getRawX(); - mInScreenY = motionEvent.getRawY() - BarUtils.getStatusBarHeight(); - btn_drag.setSelected(true); - break; - case MotionEvent.ACTION_MOVE: - // 更新浮动窗口位置参数 - mInScreenX = motionEvent.getRawX(); - mInScreenY = motionEvent.getRawY() - BarUtils.getStatusBarHeight(); - mWindowParams.x = (int) (mInScreenX - mInViewX); - mWindowParams.y = (int) (mInScreenY - mInViewY); - // 手指移动的时候更新小悬浮窗的位置 - mWindowManager.updateViewLayout(mFloatLayout, mWindowParams); - break; - case MotionEvent.ACTION_UP: - btn_drag.setSelected(false); - // 如果手指离开屏幕时,xDownInScreen和xInScreen相等,且yDownInScreen和yInScreen相等,则视为触发了单击事件。 - if (mDownInScreenX == mInScreenX && mDownInScreenY == mInScreenY) { - - } - break; - } - return true; - } - - - public void showFloatWindow() { - if (mFloatLayout.getParent() == null) { - DisplayMetrics metrics = new DisplayMetrics(); - // 默认固定位置,靠屏幕右边缘的中间 - mWindowManager.getDefaultDisplay().getMetrics(metrics); - mWindowParams.x = metrics.widthPixels; - mWindowParams.y = metrics.heightPixels; - mWindowManager.addView(mFloatLayout, mWindowParams); - } - } - - - public void hideFloatWindow() { - if (mFloatLayout.getParent() != null) - mWindowManager.removeView(mFloatLayout); - } - - public void setFloatLayoutAlpha(boolean alpha) { - if (alpha) - mFloatLayout.setAlpha((float) 0.5); - else - mFloatLayout.setAlpha(1); - } - - private int sbar = -1; - -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/MyLinearLayoutManager.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/MyLinearLayoutManager.java deleted file mode 100644 index b6e1846c84..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/MyLinearLayoutManager.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.zhidao.support.adas.high.widget; - -import android.content.Context; -import android.util.AttributeSet; - -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -public class MyLinearLayoutManager extends LinearLayoutManager { - public MyLinearLayoutManager(Context context) { - super(context); - } - - public MyLinearLayoutManager(Context context, int orientation, boolean reverseLayout) { - super(context, orientation, reverseLayout); - } - - public MyLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - @Override - public boolean supportsPredictiveItemAnimations() { - return false; - } - - @Override - public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) { - //override this method and implement code as below - try { - super.onLayoutChildren(recycler, state); - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_false.xml deleted file mode 100644 index b4eee2bcdc..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_false.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_true.xml deleted file mode 100644 index 46f8b43ede..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_true.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_false.xml deleted file mode 100644 index 82d38b39b2..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_false.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_true.xml deleted file mode 100644 index 56376ad184..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_true.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_false.xml deleted file mode 100644 index 74a5841e78..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_false.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_true.xml deleted file mode 100644 index b57b9765f2..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_true.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_false.xml deleted file mode 100644 index 1bec997e8b..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_false.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_true.xml deleted file mode 100644 index 4b6ea31cbd..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_true.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_false.xml deleted file mode 100644 index cfcde358d0..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_false.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_true.xml deleted file mode 100644 index 4f5899e1b9..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_true.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_clear.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_clear.xml deleted file mode 100644 index 93ce351569..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_clear.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_close.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_close.xml deleted file mode 100644 index c0b211a4be..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_close.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_drag.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_drag.xml deleted file mode 100644 index e5f0d0ed7b..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_drag.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_help.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_help.xml deleted file mode 100644 index f873bd66ce..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_help.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_save.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_save.xml deleted file mode 100644 index f818021ab3..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_save.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/item_status.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/item_status.xml deleted file mode 100644 index a4cfdf3b81..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/item_status.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/layout_float.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/layout_float.xml deleted file mode 100644 index 4215ac80e8..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/layout_float.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/colors.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/colors.xml deleted file mode 100644 index 1f6228713d..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/colors.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - #32CD32 - #DC143C - #FF00FF - #DAA520 - #1E90FF - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/strings.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/strings.xml deleted file mode 100644 index 54d97e6cde..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - adas-status - diff --git a/app_ipc_monitoring/other.zip b/app_ipc_monitoring/other.zip new file mode 100644 index 0000000000..9bfec749b2 Binary files /dev/null and b/app_ipc_monitoring/other.zip differ diff --git a/app_ipc_monitoring/src/main/AndroidManifest.xml b/app_ipc_monitoring/src/main/AndroidManifest.xml index 13164a794c..ef2a239c85 100644 --- a/app_ipc_monitoring/src/main/AndroidManifest.xml +++ b/app_ipc_monitoring/src/main/AndroidManifest.xml @@ -2,9 +2,12 @@ + + + + - @@ -20,9 +23,7 @@ - - @@ -63,6 +64,12 @@ android:theme="@style/AppTheme.NoActionBar"> + + listTrajectory = new ArrayList<>(); - public final List listTrackedObjects = new ArrayList<>(); - public final List listGnssInfo = new ArrayList<>(); - public final List listAutopilotState = new ArrayList<>(); - public final List listMogoReportMessage = new ArrayList<>(); - public final List listPerceptionTrafficLight = new ArrayList<>(); - public final List listPredictionObstacleTrajectory = new ArrayList<>(); - public final List listRecordPanel = new ArrayList<>(); - public final List listGlobalPathResp = new ArrayList<>(); - public final List listWarn = new ArrayList<>(); - public final List listArrivalNotification = new ArrayList<>(); - public final List listStatusInfo = new ArrayList<>(); - public final List listRecordDataConfig = new ArrayList<>(); - public final List listErrorData = new ArrayList<>(); - public final List listOriginalPointCloud = new ArrayList<>(); - public final List listPlanningObjects = new ArrayList<>(); - public final List listPlanningDecisionState = new ArrayList<>(); - public final List listChassisStates = new ArrayList<>(); - public final List listFSMFunctionStates = new ArrayList<>(); - public final List listRoboSweeperTaskIndex = new ArrayList<>(); + private static final int LIST_SIZE = 30;//默认list最大数据量 + public final List listTrajectory = new ArrayList<>(); + public final List listTrackedObjects = new ArrayList<>(); + public final List listGnssInfo = new ArrayList<>(); + public final List listVehicleState = new ArrayList<>(); + public final List listAutopilotState = new ArrayList<>(); + public final List listMogoReportMessage = new ArrayList<>(); + public final List listPerceptionTrafficLight = new ArrayList<>(); + public final List listPredictionObstacleTrajectory = new ArrayList<>(); + public final List listRecordPanel = new ArrayList<>(); + public final List listGlobalPathResp = new ArrayList<>(); + public final List listWarn = new ArrayList<>(); + public final List listArrivalNotification = new ArrayList<>(); + public final List listStatusInfo = new ArrayList<>(); + public final List listRecordDataConfig = new ArrayList<>(); + public final List listErrorData = new ArrayList<>(); + public final List listOriginalPointCloud = new ArrayList<>(); + public final List listPlanningObjects = new ArrayList<>(); + public final List listPlanningDecisionState = new ArrayList<>(); + public final List listChassisStates = new ArrayList<>(); + public final List listFSMFunctionStates = new ArrayList<>(); + public final List listRoboSweeperTaskIndex = new ArrayList<>(); + public final List listBagManagerCmd = new ArrayList<>(); + + private long listTrajectorySize = 0; + private long listTrackedObjectsSize = 0; + private long listGnssInfoSize = 0; + private long listVehicleStateSize = 0; + private long listAutopilotStateSize = 0; + private long listMogoReportMessageSize = 0; + private long listPerceptionTrafficLightSize = 0; + private long listPredictionObstacleTrajectorySize = 0; + private long listRecordPanelSize = 0; + private long listGlobalPathRespSize = 0; + private long listWarnSize = 0; + private long listArrivalNotificationSize = 0; + private long listStatusInfoSize = 0; + private long listRecordDataConfigSize = 0; + private long listErrorDataSize = 0; + private long listOriginalPointCloudSize = 0; + private long listPlanningObjectsSize = 0; + private long listPlanningDecisionStateSize = 0; + private long listChassisStatesSize = 0; + private long listFSMFunctionStatesSize = 0; + private long listRoboSweeperTaskIndexSize = 0; + private long listBagManagerCmdSize = 0; public String cutDown(String str) { if (isCutDown && str.length() > 650) { @@ -133,7 +160,7 @@ public class DataDistribution { String temp = data.toString(); String str = cutDown(temp); if (data instanceof Trajectory) { - listTrajectory.add(0, time + str); + listTrajectory.add(0, new DataShow(listTrajectorySize++, time + str)); if (listTrajectory.size() > LIST_SIZE) { listTrajectory.remove(listTrajectory.size() - 1); } @@ -141,7 +168,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof TrackedObjects) { - listTrackedObjects.add(0, time + str); + listTrackedObjects.add(0, new DataShow(listTrackedObjectsSize++, time + str)); if (listTrackedObjects.size() > LIST_SIZE) { listTrackedObjects.remove(listTrackedObjects.size() - 1); } @@ -149,7 +176,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof OriginalPointCloudData) { - listOriginalPointCloud.add(0, time + str); + listOriginalPointCloud.add(0, new DataShow(listOriginalPointCloudSize++, time + str)); if (listOriginalPointCloud.size() > LIST_SIZE) { listOriginalPointCloud.remove(listOriginalPointCloud.size() - 1); } @@ -157,7 +184,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof PlanningObjects) { - listPlanningObjects.add(0, time + str); + listPlanningObjects.add(0, new DataShow(listPlanningObjectsSize++, time + str)); if (listPlanningObjects.size() > LIST_SIZE) { listPlanningObjects.remove(listPlanningObjects.size() - 1); } @@ -165,7 +192,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof PlanningDecisionState) { - listPlanningDecisionState.add(0, time + str); + listPlanningDecisionState.add(0, new DataShow(listPlanningDecisionStateSize++, time + str)); if (listPlanningDecisionState.size() > LIST_SIZE) { listPlanningDecisionState.remove(listPlanningDecisionState.size() - 1); } @@ -173,15 +200,23 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof GnssInfo) { - listGnssInfo.add(0, time + str); + listGnssInfo.add(0, new DataShow(listGnssInfoSize++, time + str)); if (listGnssInfo.size() > LIST_SIZE) { listGnssInfo.remove(listGnssInfo.size() - 1); } if (listener != null && Constants.TITLE.RECEIVE_GNSS_INFO.equals(listener.first)) { listener.second.onRefresh(); } + } else if (data instanceof VehicleState) { + listVehicleState.add(0, new DataShow(listVehicleStateSize++, time + str)); + if (listVehicleState.size() > LIST_SIZE) { + listVehicleState.remove(listVehicleState.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_VEHICLE_STATE.equals(listener.first)) { + listener.second.onRefresh(); + } } else if (data instanceof ChassisStates) { - listChassisStates.add(0, time + str); + listChassisStates.add(0, new DataShow(listChassisStatesSize++, time + str)); if (listChassisStates.size() > LIST_SIZE) { listChassisStates.remove(listChassisStates.size() - 1); } @@ -189,7 +224,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof AutopilotState) { - listAutopilotState.add(0, time + str); + listAutopilotState.add(0, new DataShow(listAutopilotStateSize++, time + str)); if (listAutopilotState.size() > LIST_SIZE) { listAutopilotState.remove(listAutopilotState.size() - 1); } @@ -197,7 +232,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof MogoReportMessage) { - listMogoReportMessage.add(0, time + str); + listMogoReportMessage.add(0, new DataShow(listMogoReportMessageSize++, time + str)); if (listMogoReportMessage.size() > LIST_SIZE) { listMogoReportMessage.remove(listMogoReportMessage.size() - 1); } @@ -205,7 +240,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof PerceptionTrafficLight) { - listPerceptionTrafficLight.add(0, time + str); + listPerceptionTrafficLight.add(0, new DataShow(listPerceptionTrafficLightSize++, time + str)); if (listPerceptionTrafficLight.size() > LIST_SIZE) { listPerceptionTrafficLight.remove(listPerceptionTrafficLight.size() - 1); } @@ -213,7 +248,7 @@ public class DataDistribution { listener.second.onPerceptionTrafficLight((PerceptionTrafficLight) data); } } else if (data instanceof PredictionObstacleTrajectory) { - listPredictionObstacleTrajectory.add(0, time + str); + listPredictionObstacleTrajectory.add(0, new DataShow(listPredictionObstacleTrajectorySize++, time + str)); if (listPredictionObstacleTrajectory.size() > LIST_SIZE) { listPredictionObstacleTrajectory.remove(listPredictionObstacleTrajectory.size() - 1); } @@ -227,15 +262,23 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof RecordPanel) { - listRecordPanel.add(0, time + str); + listRecordPanel.add(0, new DataShow(listRecordPanelSize++, time + str)); if (listRecordPanel.size() > LIST_SIZE) { listRecordPanel.remove(listRecordPanel.size() - 1); } if (listener != null && Constants.TITLE.RECEIVE_RECORD_RESULT.equals(listener.first)) { listener.second.onRefresh(); } + } else if (data instanceof BagManagerCmd) { + listBagManagerCmd.add(0, new DataShow(listBagManagerCmdSize++, time + str)); + if (listBagManagerCmd.size() > LIST_SIZE) { + listBagManagerCmd.remove(listBagManagerCmd.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_BAG_MANAGER_CMD.equals(listener.first)) { + listener.second.onRefresh(); + } } else if (data instanceof GlobalPathResp) { - listGlobalPathResp.add(0, time + str); + listGlobalPathResp.add(0, new DataShow(listGlobalPathRespSize++, time + str)); if (listGlobalPathResp.size() > LIST_SIZE) { listGlobalPathResp.remove(listGlobalPathResp.size() - 1); } @@ -243,7 +286,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof Warn) { - listWarn.add(0, time + str); + listWarn.add(0, new DataShow(listWarnSize++, time + str)); if (listWarn.size() > LIST_SIZE) { listWarn.remove(listWarn.size() - 1); } @@ -251,7 +294,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof ArrivalNotification) { - listArrivalNotification.add(0, time + str); + listArrivalNotification.add(0, new DataShow(listArrivalNotificationSize++, time + str)); if (listArrivalNotification.size() > LIST_SIZE) { listArrivalNotification.remove(listArrivalNotification.size() - 1); } @@ -259,7 +302,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof StatusInfo) { - listStatusInfo.add(0, time + str); + listStatusInfo.add(0, new DataShow(listStatusInfoSize++, time + str)); if (listStatusInfo.size() > LIST_SIZE) { listStatusInfo.remove(listStatusInfo.size() - 1); } @@ -267,7 +310,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof RecordDataConfig) { - listRecordDataConfig.add(0, time + str); + listRecordDataConfig.add(0, new DataShow(listRecordDataConfigSize++, time + str)); if (listRecordDataConfig.size() > LIST_SIZE) { listRecordDataConfig.remove(listRecordDataConfig.size() - 1); } @@ -282,8 +325,16 @@ public class DataDistribution { if (listener != null && Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA.equals(listener.first)) { listener.second.onRefresh(); } + } else if (data instanceof RoboSweeperTaskIndex) { + listRoboSweeperTaskIndex.add(0, new DataShow(listRoboSweeperTaskIndexSize++, time + str)); + if (listRoboSweeperTaskIndex.size() > LIST_SIZE) { + listRoboSweeperTaskIndex.remove(listRoboSweeperTaskIndex.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA.equals(listener.first)) { + listener.second.onRefresh(); + } } else if (data instanceof FSMFunctionStates) { - listFSMFunctionStates.add(0, time + str); + listFSMFunctionStates.add(0, new DataShow(listFSMFunctionStatesSize++, time + str)); if (listFSMFunctionStates.size() > LIST_SIZE) { listFSMFunctionStates.remove(listFSMFunctionStates.size() - 1); } @@ -291,7 +342,7 @@ public class DataDistribution { listener.second.onRefresh(); } } else if (data instanceof ErrorData) { - listErrorData.add(0, time + str); + listErrorData.add(0, new DataShow(listErrorDataSize++, time + str)); if (listErrorData.size() > 100) { listErrorData.remove(listErrorData.size() - 1); } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/adapter/DataShowAdapter.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/adapter/DataShowAdapter.java index 23c3de8590..c233f55b31 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/adapter/DataShowAdapter.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/adapter/DataShowAdapter.java @@ -10,10 +10,11 @@ import android.widget.TextView; import com.zhidao.adas.client.R; import com.zhidao.adas.client.base.BaseAdapter; import com.zhidao.adas.client.base.BaseViewHolder; +import com.zhidao.adas.client.bean.DataShow; //log所用 -public class DataShowAdapter extends BaseAdapter { +public class DataShowAdapter extends BaseAdapter { public void refreshView() { @@ -28,9 +29,9 @@ public class DataShowAdapter extends BaseAdapter options; - private final String tag;//用于存储 + public final String tag;//用于存储 public int sendType = SEND_TYPE.ONE;//发送类型 private SpecialVehicleFloatWindowManager manager; @@ -127,20 +128,79 @@ public class SpecialVehicleBean { int checkPos = options.get(index).checkPos; setFuTianCleanValue(builder, index, checkPos); } - SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd fuTianCleanCmd = builder.build(); SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd fuTianTaskCmd = SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd.newBuilder() .setRoboSweeperFutianCleanCmd(fuTianCleanCmd).build(); AdasManager.getInstance().sendRoboSweeperFuTianTaskCmd(fuTianTaskCmd); - str = TextFormat.printer().escapingNonAscii(false).printToString(fuTianTaskCmd).replaceAll("\n", ""); + str = TextFormat.printer().escapingNonAscii(false).shortDebugString(fuTianTaskCmd); } else if (TextUtils.equals(this.tag, TAG.KWXB)) { //开沃小巴 SpecialVehicleTaskCmdOuterClass.RoboVanSkywellTaskCmd vanSkywellTaskCmd = SpecialVehicleTaskCmdOuterClass.RoboVanSkywellTaskCmd.newBuilder() .build(); AdasManager.getInstance().sendRoboVanSkywellTaskCmd(vanSkywellTaskCmd); + } else if (TextUtils.equals(this.tag, TAG.JLM1)) { //金旅M1 + SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.Builder builder = SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder(); + if (index < 0) { + for (index = 0; index < options.size(); index++) { + SpecialVehicleOption option = options.get(index); + if (option.moreCheckPos != -1) { + option.checkPos = option.moreCheckPos; + option.moreCheckPos = -1; + } + setJinlvM1Value(builder, index, option.checkPos); + } + } else { + int checkPos = options.get(index).checkPos; + setJinlvM1Value(builder, index, checkPos); + } + SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd roboBusJinlvM1Cmd = builder.build(); + AdasManager.getInstance().sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd); + str = TextFormat.printer().escapingNonAscii(false).shortDebugString(roboBusJinlvM1Cmd); } return str; } + private void setJinlvM1Value(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.Builder builder, int index, int checkPos) { + switch (index) { + case 0: + builder.setAirConditionerCmd(checkPos); + break; + case 1: + builder.setAirConditionerModeCmd(checkPos); + break; + case 2: + builder.setAirConditionerWindSpeedCmd(checkPos); + break; + case 3: + if (checkPos == 1) { + checkPos = 16; + } else if (checkPos == 2) { + checkPos = 20; + } else if (checkPos == 3) { + checkPos = 26; + } + builder.setAirConditionerTemperatureCmd(checkPos); + break; + case 4: + builder.setHeaderCmd(checkPos); + break; + case 5: + builder.setHeaderWindSpeedCmd(checkPos); + break; + case 6: + builder.setMainLamp1Cmd(checkPos); + break; + case 7: + builder.setMainLamp2Cmd(checkPos); + break; + case 8: + builder.setSmallLampCmd(checkPos); + break; + case 9: + builder.setFrontDoorCmd(checkPos); + break; + } + } + private void setFuTianCleanValue(SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.Builder builder, int index, int checkPos) { switch (index) { case 0: @@ -222,8 +282,65 @@ public class SpecialVehicleBean { optionsF.add(new SpecialVehicleOption("扫盘加速", tag, value, 0)); SpecialVehicleBean beanF = new SpecialVehicleBean("福田清扫车", "福清", TAG.FTQSC, optionsF); SpecialVehicleBean beanK = new SpecialVehicleBean("开沃小巴", "开巴", TAG.KWXB, null); + List optionsM1 = new ArrayList<>(); + tag = 0; + value = new String[3]; + value[0] = "0-DEFAULT"; + value[1] = "1-开启空调"; + value[2] = "2-关闭空调"; + optionsM1.add(new SpecialVehicleOption("空调", tag++, value, 0)); + value = new String[4]; + value[0] = "0-DEFAULT"; + value[1] = "1-自动模式"; + value[2] = "2-制冷模式"; + value[3] = "3-通风模式"; + optionsM1.add(new SpecialVehicleOption("空调模式", tag++, value, 0)); + value = new String[4]; + value[0] = "0-DEFAULT"; + value[1] = "1-1档"; + value[2] = "2-2档"; + value[3] = "3-3档"; + optionsM1.add(new SpecialVehicleOption("空调档位", tag++, value, 0)); + value = new String[4]; + value[0] = "0-DEFAULT"; + value[1] = "16-16度"; + value[2] = "20-20度"; + value[3] = "26-26度"; + optionsM1.add(new SpecialVehicleOption("空调温度", tag++, value, 0)); + value = new String[3]; + value[0] = "0-DEFAULT"; + value[1] = "1-开启暖风"; + value[2] = "2-关闭暖风"; + optionsM1.add(new SpecialVehicleOption("暖风机", tag++, value, 0)); + value = new String[3]; + value[0] = "0-DEFAULT"; + value[1] = "1-1档"; + value[2] = "2-2档"; + optionsM1.add(new SpecialVehicleOption("暖风机档位", tag++, value, 0)); + value = new String[3]; + value[0] = "0-DEFAULT"; + value[1] = "1-开启"; + value[2] = "2-关闭"; + optionsM1.add(new SpecialVehicleOption("顶灯1", tag++, value, 0)); + value = new String[3]; + value[0] = "0-DEFAULT"; + value[1] = "1-开启"; + value[2] = "2-关闭"; + optionsM1.add(new SpecialVehicleOption("顶灯2", tag++, value, 0)); + value = new String[3]; + value[0] = "0-DEFAULT"; + value[1] = "1-开启"; + value[2] = "2-关闭"; + optionsM1.add(new SpecialVehicleOption("氛围灯", tag++, value, 0)); + value = new String[3]; + value[0] = "0-DEFAULT"; + value[1] = "1-打开"; + value[2] = "2-关闭"; + optionsM1.add(new SpecialVehicleOption("车门", tag++, value, 0)); + SpecialVehicleBean beanM1 = new SpecialVehicleBean("金旅M1", "M1", TAG.JLM1, optionsM1); list.add(beanF); list.add(beanK); + list.add(beanM1); return list; } diff --git a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/permission/BackgrounderPermission.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/permission/BackgrounderPermission.java similarity index 98% rename from libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/permission/BackgrounderPermission.java rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/permission/BackgrounderPermission.java index c6481e3306..274a017cea 100644 --- a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/permission/BackgrounderPermission.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/permission/BackgrounderPermission.java @@ -1,4 +1,4 @@ -package com.zhidao.support.adas.high.other.permission; +package com.zhidao.adas.client.other.permission; import android.app.Activity; import android.content.Context; @@ -13,6 +13,7 @@ import android.util.Log; import androidx.annotation.RequiresApi; + /** * 长时间后台运行权限检查 */ diff --git a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/permission/OnAdasPermissionListener.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/permission/OnAdasPermissionListener.java similarity index 81% rename from libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/permission/OnAdasPermissionListener.java rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/permission/OnAdasPermissionListener.java index 5fd7a694bd..7063b848b1 100644 --- a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/permission/OnAdasPermissionListener.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/permission/OnAdasPermissionListener.java @@ -1,4 +1,4 @@ -package com.zhidao.support.adas.high.other.permission; +package com.zhidao.adas.client.other.permission; public interface OnAdasPermissionListener { /** diff --git a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/permission/PermissionLongBackgroundRunningDialog.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/permission/PermissionLongBackgroundRunningDialog.java similarity index 90% rename from libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/permission/PermissionLongBackgroundRunningDialog.java rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/permission/PermissionLongBackgroundRunningDialog.java index 7af0a7296b..0feeb3f54e 100644 --- a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/permission/PermissionLongBackgroundRunningDialog.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/permission/PermissionLongBackgroundRunningDialog.java @@ -1,4 +1,4 @@ -package com.zhidao.support.adas.high.other.permission; +package com.zhidao.adas.client.other.permission; import android.content.Intent; import android.os.Build; @@ -12,7 +12,7 @@ import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; -import com.zhidao.support.adas.high.other.R; +import com.zhidao.adas.client.R; /** @@ -29,7 +29,6 @@ public class PermissionLongBackgroundRunningDialog extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - overridePendingTransition(R.anim.dialog_in, R.anim.dialog_out); setContentView(R.layout.dialog_adas_permission_long_background_running); initView(); setBatteryHint(); @@ -78,10 +77,5 @@ public class PermissionLongBackgroundRunningDialog extends AppCompatActivity { } } - @Override - public void finish() { - super.finish(); - //在此时设置转场动画 - overridePendingTransition(R.anim.dialog_out, R.anim.dialog_in); - } + } diff --git a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/router/PlaceholderFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/router/PlaceholderFragment.java similarity index 98% rename from libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/router/PlaceholderFragment.java rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/router/PlaceholderFragment.java index eb24783f71..c5e428a442 100644 --- a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/router/PlaceholderFragment.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/router/PlaceholderFragment.java @@ -1,4 +1,4 @@ -package com.zhidao.support.adas.high.other.router; +package com.zhidao.adas.client.other.router; import android.content.Context; import android.content.SharedPreferences; @@ -22,7 +22,7 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; -import com.zhidao.support.adas.high.other.R; +import com.zhidao.adas.client.R; /** diff --git a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/router/RouterActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/router/RouterActivity.java similarity index 97% rename from libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/router/RouterActivity.java rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/router/RouterActivity.java index d4e7bda46a..bbe64a6435 100644 --- a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/router/RouterActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/router/RouterActivity.java @@ -1,4 +1,4 @@ -package com.zhidao.support.adas.high.other.router; +package com.zhidao.adas.client.other.router; import android.content.Context; import android.content.Intent; @@ -14,7 +14,7 @@ import androidx.viewpager2.widget.ViewPager2; import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayoutMediator; -import com.zhidao.support.adas.high.other.R; +import com.zhidao.adas.client.R; public class RouterActivity extends AppCompatActivity { diff --git a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/router/SectionsPagerAdapter.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/router/SectionsPagerAdapter.java similarity index 95% rename from libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/router/SectionsPagerAdapter.java rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/router/SectionsPagerAdapter.java index 4e01e40871..aa69731fb3 100644 --- a/libraries/mogo-adas-other/src/main/java/com/zhidao/support/adas/high/other/router/SectionsPagerAdapter.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/other/router/SectionsPagerAdapter.java @@ -1,10 +1,11 @@ -package com.zhidao.support.adas.high.other.router; +package com.zhidao.adas.client.other.router; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.viewpager2.adapter.FragmentStateAdapter; + import java.util.HashMap; import java.util.Map; diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/AutopilotConfigActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/AutopilotConfigActivity.java index 925e539745..baddbc16d4 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/AutopilotConfigActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/AutopilotConfigActivity.java @@ -27,6 +27,7 @@ import com.zhidao.adas.client.R; import com.zhidao.adas.client.adapter.AutopilotConfigAdapter; import com.zhidao.adas.client.base.BaseActivity; import com.zhidao.adas.client.bean.AutoPilotMode; +import com.zhidao.adas.client.bean.DataShow; import com.zhidao.adas.client.bean.UpdateDataEvent; import com.zhidao.adas.client.utils.Constants; import com.zhidao.support.adas.high.common.ThreadPoolManager; @@ -263,9 +264,9 @@ public class AutopilotConfigActivity extends BaseActivity { private OnAdasClientListener listener = new OnAdasClientListener() { @Override public void onRefresh() { - List listGnssInfo = DataDistribution.getInstance().listGnssInfo; + List listGnssInfo = DataDistribution.getInstance().listGnssInfo; if (!listGnssInfo.isEmpty()) { - String info = listGnssInfo.get(listGnssInfo.size() - 1); + String info = listGnssInfo.get(listGnssInfo.size() - 1).data; lon = Double.parseDouble(info.split("longitude: ")[1].split("\n")[0]); lat = Double.parseDouble(info.split("latitude: ")[1].split("\n")[0]); getHandler().sendEmptyMessage(WHAT_UPDATE_SHOW); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java index 50d8153af0..dcffd9ae35 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java @@ -138,6 +138,8 @@ public class InfoFragment extends BaseFragment { adapter.setData(DataDistribution.getInstance().listGlobalPathResp); } else if (Constants.TITLE.RECEIVE_RECORD_RESULT.equals(title)) { adapter.setData(DataDistribution.getInstance().listRecordPanel); + } else if (Constants.TITLE.RECEIVE_BAG_MANAGER_CMD.equals(title)) { + adapter.setData(DataDistribution.getInstance().listBagManagerCmd); } else if (Constants.TITLE.RECEIVE_REPORT_MESSAGE.equals(title)) { adapter.setData(DataDistribution.getInstance().listMogoReportMessage); } else if (Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT.equals(title)) { diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 07f1f0d584..614ba5ec55 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -57,6 +57,7 @@ import com.zhidao.adas.client.base.BaseAdapter; import com.zhidao.adas.client.base.BaseFragment; import com.zhidao.adas.client.bean.ArrivalNotification; import com.zhidao.adas.client.bean.AutopilotState; +import com.zhidao.adas.client.bean.BagManagerCmd; import com.zhidao.adas.client.bean.BasicInfoReq; import com.zhidao.adas.client.bean.CarConfigResp; import com.zhidao.adas.client.bean.ChassisStates; @@ -81,6 +82,9 @@ import com.zhidao.adas.client.bean.Trajectory; import com.zhidao.adas.client.bean.Warn; import com.zhidao.adas.client.log.ConnectStatusSave; import com.zhidao.adas.client.log.LogSave; +import com.zhidao.adas.client.other.permission.BackgrounderPermission; +import com.zhidao.adas.client.other.permission.OnAdasPermissionListener; +import com.zhidao.adas.client.other.router.RouterActivity; import com.zhidao.adas.client.ui.special.SpecialVehicleDialog; import com.zhidao.adas.client.utils.Constants; import com.zhidao.adas.client.utils.PreferencesUtils; @@ -97,9 +101,6 @@ import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.common.ProtocolStatus; import com.zhidao.support.adas.high.common.ReceiveTimeoutManager; -import com.zhidao.support.adas.high.other.permission.BackgrounderPermission; -import com.zhidao.support.adas.high.other.permission.OnAdasPermissionListener; -import com.zhidao.support.adas.high.other.router.RouterActivity; import java.net.Inet4Address; import java.net.InetAddress; @@ -114,6 +115,7 @@ import java.util.List; import java.util.Locale; import java.util.concurrent.ScheduledExecutorService; +import bag_manager.BagManagerOuterClass; import chassis.Chassis; import chassis.ChassisStatesOuterClass; import function_state_management.FunctionStates; @@ -644,6 +646,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleFragmentData.add(Constants.TITLE.RECEIVE_CAR_CONFIG_RESP); titleFragmentData.add(Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP); titleFragmentData.add(Constants.TITLE.RECEIVE_RECORD_RESULT); + titleFragmentData.add(Constants.TITLE.RECEIVE_BAG_MANAGER_CMD); titleFragmentData.add(Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP); titleFragmentData.add(Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION); titleFragmentData.add(Constants.TITLE.RECEIVE_STATUS_QUERY_RESP); @@ -673,6 +676,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleBtnData.add(Constants.TITLE.SEND_DETOURING_CLOSE); titleBtnData.add(Constants.TITLE.SEND_DETOURING_SPEED); titleBtnData.add(Constants.TITLE.SEND_TRIP_INFO); + titleBtnData.add(Constants.TITLE.SEND_PLANNING_CMD); } @@ -874,7 +878,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onAutopilotStatistics(AutopilotStatistics statistics) { - Log.i(TAG, "启动自动驾驶状态=" + statistics.status + " 用时=" + statistics.usedTime + " SetAutopilotModeReq=" + TextFormat.printer().escapingNonAscii(false).printToString(statistics.req) + " failedMessage=" + (statistics.failedMessage == null ? null : TextFormat.printer().escapingNonAscii(false).printToString(statistics.failedMessage))); + Log.i(TAG, "启动自动驾驶状态=" + statistics.status + " 用时=" + statistics.usedTime + " SetAutopilotModeReq=" + (statistics.req == null ? null : TextFormat.printer().escapingNonAscii(false).printToString(statistics.req)) + " failedMessage=" + (statistics.failedMessage == null ? null : TextFormat.printer().escapingNonAscii(false).printToString(statistics.failedMessage))); } @Override @@ -896,6 +900,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas } + @Override public void onChassisStates(MessagePad.Header header, ChassisStatesOuterClass.ChassisStates chassisStates) { ChassisStates base = new ChassisStates(header, chassisStates, sdf); @@ -1035,6 +1040,11 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas DataDistribution.getInstance().addData(base); } + @Override + public void onBagManagerCmd(MessagePad.Header header, BagManagerOuterClass.BagManager bagManager) { + BagManagerCmd base = new BagManagerCmd(header, bagManager, sdf); + DataDistribution.getInstance().addData(base); + } private void initAdas() { CupidLogUtils.e(TAG, "--->初始化"); @@ -1274,6 +1284,13 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas AdasManager.getInstance().sendGlobalPathReq(); break; case Constants.TITLE.SEND_SPECIAL_VEHICLE_TASK_CMD: +// AdasManager.getInstance().sendRoboBusJinlvM1AirConditionerCmd(1,2,3,4); +// AdasManager.getInstance().sendRoboBusJinlvM1HeaderCmd(5,6); +// AdasManager.getInstance().sendRoboBusJinlvM1MainLampCmd(7,8); +// AdasManager.getInstance().sendRoboBusJinlvM1SmallLampCmd(9); +// AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(10); + + if (specialVehicleBeanList == null) { specialVehicleBeanList = SpecialVehicleBean.init(); } @@ -1442,6 +1459,10 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas AdasManager.getInstance().sendTripInfoReq(4, "x19", "x20", "x21", true); AdasManager.getInstance().sendTripInfoReq(5, "x22", "x23", "x24", false); break; + case Constants.TITLE.SEND_PLANNING_CMD: + AdasManager.getInstance().sendPlanningCmd(1); + AdasManager.getInstance().sendPlanningCmd(2); + break; } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleDialog.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleDialog.java index 0903180db1..6f5d1761c8 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleDialog.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleDialog.java @@ -108,6 +108,7 @@ public class SpecialVehicleDialog extends Dialog { private void initView() { recyclerView = findViewById(R.id.recyclerView); findViewById(R.id.settings).setVisibility(View.GONE); + findViewById(R.id.cancel).setVisibility(View.GONE); TextView textView = findViewById(R.id.title); textView.setText("特种车辆"); } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleFloatWindow.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleFloatWindow.java index 31fa4fad1b..51a652c336 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleFloatWindow.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleFloatWindow.java @@ -330,9 +330,11 @@ public class SpecialVehicleFloatWindow extends LinearLayout { .findViewById(R.id.r_btn); button.setText(value[j]); button.setId(j); - if (i == 1 || i == 2 || i == 3 || i == 4) { - ViewGroup.LayoutParams layoutParams = button.getLayoutParams(); - layoutParams.width = 202; + if (specialVehicleBean.tag.equals(SpecialVehicleBean.TAG.FTQSC)) { + if (i == 1 || i == 2 || i == 3 || i == 4) { + ViewGroup.LayoutParams layoutParams = button.getLayoutParams(); + layoutParams.width = 202; + } } radioGroup.addView(button); } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java index cc63012c33..ac72e934f3 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java @@ -165,6 +165,7 @@ public class Constants { String TITLE_CAR_CONFIG_RESP = "工控机版本\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t配置"; String RECEIVE_CAR_CONFIG_RESP = "信息与配置"; String RECEIVE_RECORD_RESULT = MessageType.TYPE_RECEIVE_RECORD_RESULT.desc; + String RECEIVE_BAG_MANAGER_CMD = MessageType.TYPE_RECEIVE_BAG_MANAGER_CMD.desc; String RECEIVE_RECORD_DATA_CONFIG_RESP = MessageType.TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP.desc; String RECEIVE_GLOBAL_PATH_RESP = MessageType.TYPE_RECEIVE_GLOBAL_PATH_RESP.desc; String RECEIVE_WARN = MessageType.TYPE_RECEIVE_WARN.desc; @@ -194,6 +195,7 @@ public class Constants { String SEND_DETOURING_CLOSE = "绕障类功能关"; String SEND_DETOURING_SPEED = "绕障速度阈值"; String SEND_TRIP_INFO = "行程信息"; + String SEND_PLANNING_CMD = "给Planning指令"; } diff --git a/libraries/mogo-adas-other/src/main/res/drawable/bg_adas_dialog.xml b/app_ipc_monitoring/src/main/res/drawable/bg_adas_dialog.xml similarity index 100% rename from libraries/mogo-adas-other/src/main/res/drawable/bg_adas_dialog.xml rename to app_ipc_monitoring/src/main/res/drawable/bg_adas_dialog.xml diff --git a/libraries/mogo-adas-other/src/main/res/layout/activity_router.xml b/app_ipc_monitoring/src/main/res/layout/activity_router.xml similarity index 100% rename from libraries/mogo-adas-other/src/main/res/layout/activity_router.xml rename to app_ipc_monitoring/src/main/res/layout/activity_router.xml diff --git a/app_ipc_monitoring/src/main/res/layout/dialog_adas_permission_long_background_running.xml b/app_ipc_monitoring/src/main/res/layout/dialog_adas_permission_long_background_running.xml new file mode 100644 index 0000000000..33d71621f4 --- /dev/null +++ b/app_ipc_monitoring/src/main/res/layout/dialog_adas_permission_long_background_running.xml @@ -0,0 +1,35 @@ + + + + + + + +