diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
index 1f7d3de420..c8760bf959 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
@@ -40,6 +40,7 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.call.map.CallerSmpManager
import com.mogo.eagle.core.function.call.obu.CallerOBUManager
import com.mogo.eagle.core.function.call.obu.CallerObuListenerManager
+import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.ui.logcatch.ILogViewListener
@@ -460,10 +461,14 @@ class DebugSettingView @JvmOverloads constructor(
/**
- * 修改地图样式按钮(白天模式、夜间模式)
+ * 修改皮肤样式按钮(白天模式、夜间模式)
*/
- tbChangeCurrentMapStyle.setOnCheckedChangeListener { _, isChecked ->
- CallerHDMapManager.stepInVrMode(isChecked)
+ tbChangeCurrentSkinMode.setOnCheckedChangeListener { _, isChecked ->
+ if (isChecked) {
+ CallerMoGoUiSettingManager.stepInDayMode()
+ } else {
+ CallerMoGoUiSettingManager.stepOutDayMode()
+ }
}
//设置鹰眼本地参数配置监听
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java
index c4a7e2b5aa..b95c2c482a 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java
@@ -15,9 +15,12 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
+import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener;
+import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager;
import com.mogo.eagle.core.function.hmi.R;
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
+import com.mogo.eagle.core.utilcode.util.BarUtils;
import com.mogo.service.intent.IMogoIntentListener;
/**
@@ -25,7 +28,7 @@ import com.mogo.service.intent.IMogoIntentListener;
*
* @author tongchenfei
*/
-public class MainLauncherActivity extends MainActivity implements IMogoIntentListener {
+public class MainLauncherActivity extends MainActivity implements IMogoIntentListener, IMoGoSkinModeChangeListener {
private static final String TAG = "MainLauncherActivity";
protected boolean mIsHomeKeyDown = false;
private final static Handler handlerV2XEvent = new Handler();
@@ -54,6 +57,8 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
protected void onStart() {
super.onStart();
getApis().getIntentManagerApi().registerIntentListener(Intent.ACTION_CLOSE_SYSTEM_DIALOGS, this);
+ // 添加换肤监听
+ CallerSkinModeListenerManager.INSTANCE.addListener(TAG, this);
//ActivityLifecycleManager.getInstance().setAppActive(true);
}
@@ -106,6 +111,8 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
} catch (Exception e) {
e.printStackTrace();
}
+ // 移除换肤监听
+ CallerSkinModeListenerManager.INSTANCE.removeListener(TAG);
}
private void stopCountDown() {
@@ -115,4 +122,12 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
}
}
+ @Override
+ public void onSkinModeChange(int skinMode) {
+ if (skinMode == 0) {
+ BarUtils.setStatusBarLightMode(this, false);
+ } else {
+ BarUtils.setStatusBarLightMode(this, true);
+ }
+ }
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml
index a1ff2860b7..e5cc4ff123 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml
@@ -701,8 +701,7 @@
android:drawableEnd="@drawable/icon_right"
android:padding="@dimen/dp_20"
android:textOff="车辆状态"
- android:textOn="车辆状态"
- />
+ android:textOn="车辆状态" />
+ android:text="方向盘转向角:" />
+ android:text="挂挡档位:" />
+ app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toBottomOf="@id/btnBrakeThreshold" />
+ app:layout_constraintTop_toBottomOf="@id/brakeThresholdDivider" />
+ app:layout_constraintRight_toRightOf="parent"
+ app:layout_constraintTop_toTopOf="@id/btnConnectServerIp" />
@@ -949,6 +943,19 @@
android:columnCount="2"
android:visibility="gone">
+
+
-
-
+ android:textOn="应用包管理中心" />
+ android:visibility="gone">
+ android:padding="10dp"
+ android:src="@drawable/icon_search"
+ app:layout_constraintRight_toRightOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintBottom_toBottomOf="@id/ivApkSearch"
+ app:layout_constraintLeft_toLeftOf="parent"
+ app:layout_constraintRight_toLeftOf="@id/ivApkSearch"
+ app:layout_constraintTop_toTopOf="@id/ivApkSearch" />
+ app:layout_constraintTop_toBottomOf="@id/ivApkSearch" />
+ app:layout_constraintTop_toBottomOf="@id/ivApkSearch" />
+ android:background="#F0F0F0"
+ app:layout_constraintTop_toBottomOf="@id/cbApkQa" />
+ app:layout_constraintTop_toBottomOf="@id/apkSearchDivider" />
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/IdentifyDataDrawer.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/IdentifyDataDrawer.java
index f56a931402..f8e0efc87b 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/IdentifyDataDrawer.java
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/IdentifyDataDrawer.java
@@ -9,7 +9,6 @@ import com.mogo.commons.AbsMogoApplication;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.enums.TrafficTypeEnum;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.map.MogoMarkerManager;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.utils.DrivingDirectionUtils;
@@ -51,7 +50,6 @@ public class IdentifyDataDrawer {
private IdentifyDataDrawer() {
mContext = AbsMogoApplication.getApp();
- addPreVehicleModel();
}
public static IdentifyDataDrawer getInstance() {
@@ -178,44 +176,4 @@ public class IdentifyDataDrawer {
trafficDataUuidList.clear();
}
- private void addPreVehicleModel() {
- CallerLogger.INSTANCE.d(TAG, "添加感知模型到地图中……");
- addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI, "添加感知模型到地图中……preVehicleStrWeiZhi=");
-
- addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE, "添加感知模型到地图中……preVehicleStrPeople=");
-
- addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE, "添加感知模型到地图中……preVehicleStrBicycle=");
-
- addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE, "添加感知模型到地图中……preVehicleStrTaChe=");
-
- addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO, "添加感知模型到地图中……preVehicleStrMoto=");
-
- addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_BUS, "添加感知模型到地图中……preVehicleStrBus=");
-
- addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_TRUCK, "添加感知模型到地图中……preVehicleStrTruck=");
- }
-
- /**
- * 添加模型到地图中
- *
- * @param typeTrafficIdWeiZhi
- * @param s
- */
- private void addPreVehicleModelWeiZhi(TrafficTypeEnum typeTrafficIdWeiZhi, String s) {
- String preVehicleStrWeiZhi = MogoMarkerManager.getInstance(mContext)
- .addPreVehicleModel(typeTrafficIdWeiZhi.getType(),
- typeTrafficIdWeiZhi.getTraffic3DIconId());
- CallerLogger.INSTANCE.d(TAG, s + preVehicleStrWeiZhi);
-
- if (preVehicleStrWeiZhi == null) {
- UiThreadHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- CallerLogger.INSTANCE.w(TAG, "添加感知模型到地图中失败,尝试重复添加……");
- addPreVehicleModelWeiZhi(typeTrafficIdWeiZhi, s);
- }
- }, 1000L);
- }
- }
-
}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MapFragment.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MapFragment.java
index d29965c240..44201bf5cb 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MapFragment.java
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MapFragment.java
@@ -11,6 +11,9 @@ import com.mogo.commons.mvp.MvpFragment;
import com.mogo.eagle.core.data.constants.MoGoFragmentPaths;
import com.mogo.eagle.core.data.map.CenterLine;
import com.mogo.eagle.core.function.api.map.hd.IMoGoMapFragmentProvider;
+import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener;
+import com.mogo.eagle.core.function.call.map.CallerHDMapManager;
+import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager;
import com.mogo.map.IMogoMap;
import com.mogo.map.IMogoUiSettings;
import com.mogo.map.MogoMapView;
@@ -25,7 +28,7 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
*/
@Route(path = MoGoFragmentPaths.PATH_FRAGMENT_MAP)
public class MapFragment extends MvpFragment
- implements MapView, IMoGoMapFragmentProvider {
+ implements MapView, IMoGoMapFragmentProvider, IMoGoSkinModeChangeListener {
private static final String TAG = "MapFragment";
@@ -71,6 +74,8 @@ public class MapFragment extends MvpFragment
if (mMogoMap != null) {
mMogoMap.getUIController().showMyLocation(true);
}
+ // 添加换肤监听
+ CallerSkinModeListenerManager.INSTANCE.addListener(TAG, this);
}
@NonNull
@@ -163,6 +168,7 @@ public class MapFragment extends MvpFragment
@Override
public void onDestroyView() {
+ CallerSkinModeListenerManager.INSTANCE.removeListener(TAG);
if (mMogoMapView != null) {
mMogoMapView.onDestroy();
mMogoMapView = null;
@@ -226,4 +232,14 @@ public class MapFragment extends MvpFragment
public CenterLine getCenterLineInfo(double lon, double lat, float angle) {
return mMogoMapView.getMap().getUIController().getCenterLineInfo(lon, lat, angle);
}
+
+ @Override
+ public void onSkinModeChange(int skinMode) {
+ if (skinMode == 0) {
+ CallerHDMapManager.INSTANCE.stepInVrMode(false);
+ } else if (skinMode == 1) {
+ CallerHDMapManager.INSTANCE.stepInVrMode(true);
+ }
+ }
+
}
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt
index 7398bfa135..107551d672 100644
--- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt
+++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt
@@ -12,67 +12,78 @@ enum class TrafficTypeEnum(
var type: Int,
var desc: String,
var traffic2DIconId: Int,
- var traffic3DIconId: Int
+ var traffic3DIconId: Int,
+ var traffic3DNightIconId: Int
) {
TYPE_TRAFFIC_ID_WEI_ZHI(
100,
"未知数据",
R.raw.fangkuang,
+ R.raw.fangkuang,
R.raw.fangkuang
),
TYPE_TRAFFIC_ID_PEOPLE(
1,
"人",
R.raw.traffic_people,
+ R.raw.traffic_people_day,
R.raw.traffic_people
),
TYPE_TRAFFIC_ID_BICYCLE(
2,
"自行车",
R.raw.traffic_zixingche,
+ R.raw.traffic_zixingche_day,
R.raw.traffic_zixingche
),
TYPE_TRAFFIC_ID_TA_CHE(
3,
"他车",
R.raw.traffic_tachexiaoche,
+ R.raw.traffic_tachexiaoche_day,
R.raw.traffic_tachexiaoche
),
TYPE_TRAFFIC_ID_MOTO(
4,
"摩托",
R.raw.traffic_motuoche,
+ R.raw.traffic_motuoche_day,
R.raw.traffic_motuoche
),
TYPE_TRAFFIC_ID_BUS(
6,
"大巴",
R.raw.traffic_daba,
+ R.raw.traffic_daba_day,
R.raw.traffic_daba
),
TYPE_TRAFFIC_ID_TRUCK(
8,
"卡车",
R.raw.traffic_daba,
+ R.raw.traffic_daba_day,
R.raw.traffic_daba
),
TYPE_TRAFFIC_ID_CAMERA(
9,
"摄像头",
R.raw.shexiangtou,
+ R.raw.shexiangtou,
R.raw.shexiangtou
),
TYPE_TRAFFIC_ID_SPECIAL_VEHICLE(
11,
"特殊车辆",
R.raw.special_vehicle,
+ R.raw.special_vehicle,
R.raw.special_vehicle
),
TYPE_TRAFFIC_ID_DAO_LU_SHI_GONG(
12,
"道路施工",
R.raw.v2x_shigong_warning,
+ R.raw.v2x_shigong_warning,
R.raw.v2x_shigong_warning
);
diff --git a/core/mogo-core-function-api/build.gradle b/core/mogo-core-function-api/build.gradle
index d0b7e2c76b..e9b128373c 100644
--- a/core/mogo-core-function-api/build.gradle
+++ b/core/mogo-core-function-api/build.gradle
@@ -44,13 +44,12 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation rootProject.ext.dependencies.kotlinstdlibjdk7
implementation rootProject.ext.dependencies.arouter
- implementation project(path: ':libraries:mogo-adas')
kapt rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.coroutinescore
implementation rootProject.ext.dependencies.coroutinesandroid
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
implementation rootProject.ext.dependencies.mogo_core_data
- compileOnly rootProject.ext.dependencies.adasHigh
+ implementation project(path: ':libraries:mogo-adas')
compileOnly rootProject.ext.dependencies.mogomapapi
} else {
implementation project(':core:mogo-core-data')
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/IMoGoMapModeChangeListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/IMoGoMapModeChangeListener.kt
new file mode 100644
index 0000000000..b5210db62f
--- /dev/null
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/IMoGoMapModeChangeListener.kt
@@ -0,0 +1,17 @@
+package com.mogo.eagle.core.function.api.setting
+
+import com.mogo.map.uicontroller.EnumMapUI
+
+/**
+ * MAP 模式改变监听
+ * @author xiaoyuzhou
+ * @date 2021/9/22 9:26 下午
+ */
+interface IMoGoMapModeChangeListener {
+ /**
+ * 当 地图 修改后的回调
+ * @param styleMode
+ * @see{EnumMapUI}
+ */
+ fun onMapStyleModeChange(styleMode: EnumMapUI)
+}
\ No newline at end of file
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/IMoGoSkinModeChangeListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/IMoGoSkinModeChangeListener.kt
new file mode 100644
index 0000000000..a41058b199
--- /dev/null
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/IMoGoSkinModeChangeListener.kt
@@ -0,0 +1,14 @@
+package com.mogo.eagle.core.function.api.setting
+
+/**
+ * UI 皮肤模式改变监听
+ * @author xiaoyuzhou
+ * @date 2021/9/22 9:26 下午
+ */
+interface IMoGoSkinModeChangeListener {
+ /**
+ * 当皮肤颜色修改后的回调
+ * @param skinMode 0--默认夜间模式,1-白天模式,2-节日模式(待开发,加载节日图片包)
+ */
+ fun onSkinModeChange(skinMode: Int)
+}
\ No newline at end of file
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/MoGoUiSettingProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/MoGoUiSettingProvider.kt
new file mode 100644
index 0000000000..7ed85728d2
--- /dev/null
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/MoGoUiSettingProvider.kt
@@ -0,0 +1,36 @@
+package com.mogo.eagle.core.function.api.setting
+
+/**
+ * 设置UI相关的
+ *
+ * @author mogoauto
+ */
+interface MoGoUiSettingProvider {
+
+ /**
+ * 进入 VR 模式
+ */
+ fun stepInVrMode()
+
+ /**
+ * 退出 VR 模式
+ */
+ fun stepOutVrMode()
+
+ /**
+ * 进入 皮肤 白天 模式
+ */
+ fun stepInDayMode()
+
+ /**
+ * 退出 皮肤 白天 模式
+ */
+ fun stepOutDayMode()
+
+ /**
+ * 获取 皮肤 模式
+ */
+ fun getDayMode():Int
+
+
+}
\ No newline at end of file
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/setting/CallerMoGoUiSettingManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/setting/CallerMoGoUiSettingManager.kt
new file mode 100644
index 0000000000..c153b47e68
--- /dev/null
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/setting/CallerMoGoUiSettingManager.kt
@@ -0,0 +1,43 @@
+package com.mogo.eagle.core.function.call.setting
+
+import com.mogo.eagle.core.function.api.setting.MoGoUiSettingProvider
+
+/**
+ * UI 设置管理
+ *
+ * @author mogoauto
+ */
+object CallerMoGoUiSettingManager : MoGoUiSettingProvider {
+ // 0--默认夜间模式,1-白天模式,2-节日模式(待开发,加载节日图片包)
+ private var skinMode = 0
+
+ // 是否是VR模式,true-VR模式,false-2D模式
+ var vrMode = true
+
+ override fun stepInVrMode() {
+
+ }
+
+ override fun stepOutVrMode() {
+
+ }
+
+ override fun stepInDayMode() {
+ skinMode = 1
+ CallerSkinModeListenerManager.invokeListener(skinMode)
+ }
+
+ override fun stepOutDayMode() {
+ skinMode = 0
+ CallerSkinModeListenerManager.invokeListener(skinMode)
+ }
+
+ /**
+ * 0--默认夜间模式,1-白天模式,2-节日模式(待开发,加载节日图片包)
+ */
+ override fun getDayMode(): Int {
+ return skinMode
+ }
+
+
+}
\ No newline at end of file
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/setting/CallerSkinModeListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/setting/CallerSkinModeListenerManager.kt
new file mode 100644
index 0000000000..ab1b9b0832
--- /dev/null
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/setting/CallerSkinModeListenerManager.kt
@@ -0,0 +1,75 @@
+package com.mogo.eagle.core.function.call.setting
+
+import androidx.annotation.Nullable
+import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener
+import com.mogo.eagle.core.function.call.base.CallerBase
+import java.util.concurrent.ConcurrentHashMap
+
+/**
+ * @author xiaoyuzhou
+ * @date 2021/9/30 5:48 下午
+ * 肤色模式 设置监听监听管理
+ */
+object CallerSkinModeListenerManager : CallerBase() {
+
+ // 存储所有注册了监听的对象,invokeXXXX进行遍历回调,将信息同步
+ private val mSkinModeListeners: ConcurrentHashMap =
+ ConcurrentHashMap()
+
+ /**
+ * 添加 肤色模式 监听
+ * @param tag 标记,用来注销监听使用
+ * @param listener 监听回调
+ */
+ fun addListener(
+ @Nullable tag: String,
+ @Nullable listener: IMoGoSkinModeChangeListener
+ ) {
+ if (mSkinModeListeners.containsKey(tag)) {
+ return
+ }
+ mSkinModeListeners[tag] = listener
+ listener.onSkinModeChange(CallerMoGoUiSettingManager.getDayMode())
+ }
+
+ /**
+ * 删除 肤色模式 监听
+ * @param tag 标记,用来注销监听使用
+ */
+ fun removeListener(@Nullable tag: String) {
+ if (!mSkinModeListeners.containsKey(tag)) {
+ return
+ }
+ mSkinModeListeners.remove(tag)
+ }
+
+ /**
+ * 删除 肤色模式 监听
+ * @param listener 要删除的监听对象
+ */
+ fun removeListener(@Nullable listener: IMoGoSkinModeChangeListener) {
+ if (!mSkinModeListeners.containsValue(listener)) {
+ return
+ }
+ mSkinModeListeners.forEach {
+ if (it.value == listener) {
+ mSkinModeListeners.remove(it.key)
+ }
+ }
+ }
+
+
+ /**
+ * 触发 肤色模式 监听
+ * @param skinMode 肤色模式
+ */
+ fun invokeListener(skinMode: Int) {
+ mSkinModeListeners.forEach {
+ val tag = it.key
+ val listener = it.value
+ listener.onSkinModeChange(skinMode)
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/core/mogo-core-res/src/main/res/raw/traffic_daba_day.nt3d b/core/mogo-core-res/src/main/res/raw/traffic_daba_day.nt3d
new file mode 100644
index 0000000000..9dc15cf3f9
Binary files /dev/null and b/core/mogo-core-res/src/main/res/raw/traffic_daba_day.nt3d differ
diff --git a/core/mogo-core-res/src/main/res/raw/traffic_motuoche_day.nt3d b/core/mogo-core-res/src/main/res/raw/traffic_motuoche_day.nt3d
new file mode 100644
index 0000000000..a41de3b851
Binary files /dev/null and b/core/mogo-core-res/src/main/res/raw/traffic_motuoche_day.nt3d differ
diff --git a/core/mogo-core-res/src/main/res/raw/traffic_people_day.nt3d b/core/mogo-core-res/src/main/res/raw/traffic_people_day.nt3d
new file mode 100644
index 0000000000..3a7f2315cd
Binary files /dev/null and b/core/mogo-core-res/src/main/res/raw/traffic_people_day.nt3d differ
diff --git a/core/mogo-core-res/src/main/res/raw/traffic_tachexiaoche_day.nt3d b/core/mogo-core-res/src/main/res/raw/traffic_tachexiaoche_day.nt3d
new file mode 100644
index 0000000000..d1b77227c1
Binary files /dev/null and b/core/mogo-core-res/src/main/res/raw/traffic_tachexiaoche_day.nt3d differ
diff --git a/core/mogo-core-res/src/main/res/raw/traffic_ziche_day.nt3d b/core/mogo-core-res/src/main/res/raw/traffic_ziche_day.nt3d
new file mode 100644
index 0000000000..2a9784aad2
Binary files /dev/null and b/core/mogo-core-res/src/main/res/raw/traffic_ziche_day.nt3d differ
diff --git a/core/mogo-core-res/src/main/res/raw/traffic_zixingche_day.nt3d b/core/mogo-core-res/src/main/res/raw/traffic_zixingche_day.nt3d
new file mode 100644
index 0000000000..c6545ea446
Binary files /dev/null and b/core/mogo-core-res/src/main/res/raw/traffic_zixingche_day.nt3d differ
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
index bd70815898..b42e0b33ee 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
@@ -31,21 +31,6 @@ public interface IMogoMapUIController {
*/
MapControlResult changeZoom(float zoom);
- /**
- * 切换2D/3D模式
- *
- * @param mode true - 3D模式 false - 2D模式
- */
- void changeMapMode(EnumMapUI mode);
-
- /**
- * 打开鹰眼模式
- *
- * @param zoomGestureEnable 是否支持手势缩放改变地图样式
- */
- @Deprecated
- void openVrMode(boolean zoomGestureEnable);
-
/**
* 进入VR 模式
*
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java
index 3f301a61d1..4040f60538 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java
@@ -21,6 +21,7 @@ import android.view.View;
import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.eagle.core.data.config.HdMapBuildConfig;
+import com.mogo.eagle.core.data.enums.TrafficTypeEnum;
import com.mogo.eagle.core.data.map.CenterLine;
import com.mogo.eagle.core.data.map.MapRoadInfo;
import com.mogo.eagle.core.data.map.MogoLatLng;
@@ -103,7 +104,7 @@ public class AMapViewWrapper implements IMogoMapView,
.naviCursorRes(R.drawable.ic_amap_navi_cursor)
.build();
private CarCursorOption mCarCursorOption = DEFAULT_OPTION;
- private EnumMapUI mCurrentUI;
+ private EnumMapUI mCurrentUI = EnumMapUI.MAP_STYLE_NIGHT_VR;
private VisualAngleMode mVisualAngleMode = MODE_MEDIUM_SIGHT;
private float mDefaultZoomLevel = 16.0f;
@@ -112,7 +113,6 @@ public class AMapViewWrapper implements IMogoMapView,
private boolean mIsFirstLocated = true;
private boolean mIsDelayed = false;
-
private volatile String mRoadId = null;
public AMapViewWrapper(MapAutoView mMapView) {
@@ -314,25 +314,6 @@ public class AMapViewWrapper implements IMogoMapView,
return MapControlResult.SUCCESS;
}
- @Override
- public void changeMapMode(EnumMapUI ui) {
- if (ui == null) {
- return;
- }
-
- CallerLogger.INSTANCE.d(TAG, "设置的样式 :" + ui);
- if (checkAMapView()) {
- mMapView.getMapAutoViewHelper().setScaleVRMode(true);
- if (ui == EnumMapUI.MAP_STYLE_DAY_VR) {
- mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_DAY_VR);
- } else if (ui == EnumMapUI.MAP_STYLE_NIGHT_VR) {
- mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_NIGHT_VR);
- } else {
- mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_NIGHT_VR);
- CallerLogger.INSTANCE.e(TAG, "暂时不支持此模式 :" + ui);
- }
- }
- }
@Override
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
@@ -401,10 +382,26 @@ public class AMapViewWrapper implements IMogoMapView,
}
}
+ /**
+ * 是否是VR模式
+ *
+ * @return true-是,false=不是
+ */
private boolean isVrMold() {
return mCurrentUI == EnumMapUI.MAP_STYLE_NIGHT_VR || mCurrentUI == EnumMapUI.MAP_STYLE_DAY_VR;
}
+ /**
+ * 是否是白天模式
+ *
+ * @return true-是,false-不是
+ */
+ private boolean isDayMold() {
+ return mCurrentUI == EnumMapUI.MAP_STYLE_DAY_VR
+ || mCurrentUI == EnumMapUI.MAP_STYLE_DAY
+ || mCurrentUI == EnumMapUI.MAP_STYLE_DAY_NAV;
+ }
+
@Override
public void showMyLocation(View view) {
if (DebugConfig.isDebug()) {
@@ -714,6 +711,7 @@ public class AMapViewWrapper implements IMogoMapView,
Trace.endSection();
initMapView();
initMyLocation();
+ loadPreVehicleModel();
}
@Override
@@ -807,6 +805,8 @@ public class AMapViewWrapper implements IMogoMapView,
mCurrentUI = EnumMapUI.MAP_STYLE_DAY_VR;
}
+ loadPreVehicleModel();
+
if (mCurrentUI != null) {
UiThreadHandler.post(() -> {
try {
@@ -896,23 +896,15 @@ public class AMapViewWrapper implements IMogoMapView,
CallerMapDataCollectorManager.INSTANCE.setIsInit();
}
- @Override
- public void openVrMode(boolean zoomGestureEnable) {
- try {
- mMapView.getMapAutoViewHelper().setZoomGesturesEnabled(zoomGestureEnable);
- mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_DAY_VR);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
@Override
public void stepInVrMode(boolean isDayMode) {
try {
int mapStyle;
if (isDayMode) {
+ mCurrentUI = EnumMapUI.MAP_STYLE_DAY_VR;
mapStyle = MapAutoApi.MAP_STYLE_DAY_VR;
} else {
+ mCurrentUI = EnumMapUI.MAP_STYLE_NIGHT_VR;
mapStyle = MapAutoApi.MAP_STYLE_NIGHT_VR;
}
mMapView.getMapAutoViewHelper().setMapStyle(mapStyle);
@@ -941,4 +933,52 @@ public class AMapViewWrapper implements IMogoMapView,
return MapAutoApi.INSTANCE.getAngle(startLon, startLat, endLon, endLat);
}
+
+ private void loadPreVehicleModel() {
+ CallerLogger.INSTANCE.d(TAG, "添加感知模型到地图中……");
+ addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI, "添加感知模型到地图中……preVehicleStrWeiZhi=");
+
+ addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE, "添加感知模型到地图中……preVehicleStrPeople=");
+
+ addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE, "添加感知模型到地图中……preVehicleStrBicycle=");
+
+ addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE, "添加感知模型到地图中……preVehicleStrTaChe=");
+
+ addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO, "添加感知模型到地图中……preVehicleStrMoto=");
+
+ addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_BUS, "添加感知模型到地图中……preVehicleStrBus=");
+
+ addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_TRUCK, "添加感知模型到地图中……preVehicleStrTruck=");
+ }
+
+ /**
+ * 添加模型到地图中
+ *
+ * @param typeTrafficId 障碍物类型ID
+ * @param logMsg 日志消息
+ */
+ private void addPreVehicleModelWeiZhi(TrafficTypeEnum typeTrafficId, String logMsg) {
+ String preVehicleStrWeiZhi;
+ // 根据当前的地图皮肤模式动态替换
+ if (isDayMold()) {
+ preVehicleStrWeiZhi =
+ // 添加模型到地图中
+ MogoMarkerManager.getInstance(getContext())
+ .addPreVehicleModel(typeTrafficId.getType(), typeTrafficId.getTraffic3DIconId());
+ } else {
+ preVehicleStrWeiZhi =
+ // 添加模型到地图中
+ MogoMarkerManager.getInstance(getContext())
+ .addPreVehicleModel(typeTrafficId.getType(), typeTrafficId.getTraffic3DNightIconId());
+ }
+
+ CallerLogger.INSTANCE.d(TAG, logMsg + preVehicleStrWeiZhi);
+
+ if (preVehicleStrWeiZhi == null) {
+ UiThreadHandler.postDelayed(() -> {
+ CallerLogger.INSTANCE.w(TAG, "添加感知模型到地图中失败,尝试重复添加……");
+ addPreVehicleModelWeiZhi(typeTrafficId, logMsg);
+ }, 1000L);
+ }
+ }
}
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
index 102a44b513..59f72da281 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
@@ -67,14 +67,6 @@ public class MogoMapUIController implements IMogoMapUIController {
return MapControlResult.ERROR;
}
- @Override
- public void changeMapMode(EnumMapUI mode) {
- initDelegate();
- if (mDelegate != null) {
- CallerLogger.INSTANCE.d(TAG, "set type: " + mode.name());
- mDelegate.changeMapMode(mode);
- }
- }
@Override
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
@@ -352,13 +344,6 @@ public class MogoMapUIController implements IMogoMapUIController {
}
}
- @Override
- public void openVrMode(boolean zoomGestureEnable) {
- initDelegate();
- if (mDelegate != null) {
- mDelegate.openVrMode(zoomGestureEnable);
- }
- }
@Override
public void stepInVrMode(boolean isDayMode) {
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java
index 1efbcc391d..2efc9f413c 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java
@@ -60,13 +60,6 @@ public class AMapUIController implements IMogoMapUIController {
return MapControlResult.ERROR;
}
- @Override
- public void changeMapMode(EnumMapUI mode) {
- if (mClient != null) {
- mClient.changeMapMode(mode);
- }
- }
-
@Override
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
if (mClient != null) {
@@ -293,12 +286,6 @@ public class AMapUIController implements IMogoMapUIController {
}
}
- @Override
- public void openVrMode(boolean zoomGestureEnable) {
- if (mClient != null) {
- mClient.openVrMode(zoomGestureEnable);
- }
- }
@Override
public void stepInVrMode(boolean isDayMode) {