Merge branch 'dev_robotaxi-d-app-module_251_220125_2.5.1' of gitlab.zhidaoauto.com:zhjt/AndroidApp/MoGoEagleEye into dev_robotaxi-d-app-module_251_220125_2.5.1

# Conflicts:
#	OCH/mogo-och-noop/build.gradle
#	OCH/mogo-och-noop/src/main/java/com/mogo/och/bus/MogoOCHNoop.java
This commit is contained in:
wangmingjun
2022-01-25 17:59:19 +08:00
18 changed files with 217 additions and 285 deletions

View File

@@ -12,20 +12,24 @@ project.android.productFlavors {
// 应用包名
applicationId rootProject.ext.android.fLauncherApplicationId
dimension "product"
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
// 车机类型主要用于区分自研车机还是别人家的车机自研车机类型为0
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
//高德地图鉴权信息
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "f8xx"]
// 是否使用高德sdk自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
// 是否基于地图
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
// 是否需要实时上报坐标
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', "0"
// 构建的是否是演示(美化)模式
buildConfigField 'boolean', 'IS_DEMO_MODE', 'true'
}
}

View File

@@ -12,21 +12,23 @@ project.android.productFlavors {
// 应用包名
applicationId rootProject.ext.android.fLauncherApplicationId
dimension "product"
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
// 车机类型主要用于区分自研车机还是别人家的车机自研车机类型为0
buildConfigField 'int', 'CAR_MACHINE_TYPE', '2'
// 高德地图鉴权信息
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovo"]
// 是否使用高德sdk自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
// 是否基于地图
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
// 是否需要实时上报坐标
buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true'
// GPS数据提供源 0-Android系统1-工控机2-OBU
buildConfigField 'int', 'GPS_PROVIDER', "1"
// 默认进入的地图模式
buildConfigField 'int', 'MAP_STYLE_MODE', "1"
// 构建的应用身份类型,司机|乘客
buildConfigField 'int', 'APP_IDENTITY_MODE', "0"
// 构建的是否是演示(美化)模式
buildConfigField 'boolean', 'IS_DEMO_MODE', 'true'
}
}

View File

@@ -12,19 +12,23 @@ project.android.productFlavors {
// 应用包名
applicationId rootProject.ext.android.fLauncherApplicationId
dimension "product"
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
// 车机类型主要用于区分自研车机还是别人家的车机自研车机类型为0
buildConfigField 'int', 'CAR_MACHINE_TYPE', '2'
//高德地图鉴权信息
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchBus"]
// 是否使用高德sdk自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
// 是否基于地图
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
// 是否需要实时上报坐标
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', "0"
// 构建的是否是演示(美化)模式
buildConfigField 'boolean', 'IS_DEMO_MODE', 'true'
}
}

View File

@@ -12,19 +12,23 @@ project.android.productFlavors {
// 应用包名
applicationId rootProject.ext.android.fLauncherApplicationId
dimension "product"
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
// 车机类型主要用于区分自研车机还是别人家的车机自研车机类型为0
buildConfigField 'int', 'CAR_MACHINE_TYPE', '2'
//高德地图鉴权信息
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchBusPassenger"]
// 是否使用高德sdk自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
// 是否基于地图
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
// 是否需要实时上报坐标
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', "0"
// 构建的是否是演示(美化)模式
buildConfigField 'boolean', 'IS_DEMO_MODE', 'true'
}
}

View File

@@ -13,20 +13,24 @@ project.android.productFlavors {
// 应用包名
applicationId rootProject.ext.android.fLauncherApplicationId
dimension "product"
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
// 车机类型主要用于区分自研车机还是别人家的车机自研车机类型为0
buildConfigField 'int', 'CAR_MACHINE_TYPE', '2'
//高德地图鉴权信息
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchTaxi"]
// 是否使用高德sdk自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
// 是否基于地图
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
// 是否需要实时上报坐标
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', "0"
// 构建的是否是演示(美化)模式
buildConfigField 'boolean', 'IS_DEMO_MODE', 'true'
}
}

View File

@@ -12,20 +12,24 @@ project.android.productFlavors {
// 应用包名
applicationId rootProject.ext.android.fLauncherApplicationId
dimension "product"
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
// 车机类型主要用于区分自研车机还是别人家的车机自研车机类型为0
buildConfigField 'int', 'CAR_MACHINE_TYPE', '2'
//高德地图鉴权信息
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fPadLenovoOchTaxiPassenger"]
// 是否使用高德sdk自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
// 是否基于地图
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
// 是否需要实时上报坐标
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', "0"
// 构建的是否是演示(美化)模式
buildConfigField 'boolean', 'IS_DEMO_MODE', 'true'
}
}

View File

@@ -12,20 +12,24 @@ project.android.productFlavors {
// 应用包名
applicationId rootProject.ext.android.fLauncherApplicationId
dimension "product"
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
// 车机类型主要用于区分自研车机还是别人家的车机自研车机类型为0
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
//高德地图鉴权信息
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fochbus"]
// 是否使用高德sdk自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
// 是否基于地图
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
// 是否需要实时上报坐标
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', "0"
// 构建的是否是演示(美化)模式
buildConfigField 'boolean', 'IS_DEMO_MODE', 'true'
}
}

View File

@@ -12,20 +12,24 @@ project.android.productFlavors {
// 应用包名
applicationId rootProject.ext.android.fLauncherApplicationId
dimension "product"
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
// 车机类型主要用于区分自研车机还是别人家的车机自研车机类型为0
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
//高德地图鉴权信息
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fochtaxi"]
// 是否使用高德sdk自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
// 是否基于地图
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
// 是否需要实时上报坐标
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', "0"
// 构建的是否是演示(美化)模式
buildConfigField 'boolean', 'IS_DEMO_MODE', 'true'
}
}

View File

@@ -6,6 +6,7 @@ import com.mogo.eagle.core.data.app.AppConfigInfo;
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.constants.MoGoConfig;
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;
@@ -38,7 +39,7 @@ public class MogoApplication extends MainMoGoApplication {
@Override
protected void initCloudClientConfig() {
// todo 使用旧Socket链路 true = 旧链路false = 新链路
if (DebugConfig.getProductFlavor().equals("fPadLenovoOchTaxi") || DebugConfig.getProductFlavor().equals("fPadLenovoOchBus")){
if (DebugConfig.getProductFlavor().equals("fPadLenovoOchTaxi") || DebugConfig.getProductFlavor().equals("fPadLenovoOchBus")) {
clientConfig.setUseOriginSocket(true);
}
}
@@ -48,16 +49,13 @@ public class MogoApplication extends MainMoGoApplication {
DebugConfig.setNetMode(BuildConfig.NET_ENV);
DebugConfig.setDebug(BuildConfig.DEBUG);
DebugConfig.setLaunchLocationService(BuildConfig.LAUNCH_LOCATION_SERVICE);
DebugConfig.setUseCustomNavi(BuildConfig.USE_CUSTOM_NAVI);
DebugConfig.setLauncher(BuildConfig.IS_LAUNCHER);
DebugConfig.setActiveAIAssistFlag(BuildConfig.AI_ASSIST_ACTIVE_STAUTS);
DebugConfig.setUseMockObuData(false);
DebugConfig.setCarMachineType(BuildConfig.CAR_MACHINE_TYPE);
DebugConfig.setProductFlavor(BuildConfig.FLAVOR_product);
DebugConfig.setSocketAppId(BuildConfig.SOCKET_APP_ID);
DebugConfig.setScheduleCalculateNotHomeCompanyDistanceForPush(BuildConfig.IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH);
DebugConfig.setMapBased(BuildConfig.IS_MAP_BASED);
DebugConfig.setNeedHideAdasWhenShare(BuildConfig.IS_NEED_HIDE_ADAS_WHEN_SHARE);
DebugConfig.setNeedUploadCoordinatesInTime(BuildConfig.IS_NEED_UPLOAD_COORDINATES_IN_TIME);
DebugConfig.setObuType(SharedPrefsMgr.getInstance(this).getInt("OBU_TYPE", DebugConfig.OBU_TYPE_CIDI));
@@ -67,7 +65,11 @@ public class MogoApplication extends MainMoGoApplication {
// 使用与渠道配置一样的gps提供者提供的数据,app/productFlavors/fPadLenovo.gradle GPS_PROVIDER 0-Android系统1-工控机2-OBU
FunctionBuildConfig.gpsProvider = BuildConfig.GPS_PROVIDER;
if (DebugConfig.getProductFlavor().equals("fPadLenovoOchTaxi") || DebugConfig.getProductFlavor().equals("fPadLenovoOchBus")){
// 演示模式,上一次勾选的数据
FunctionBuildConfig.isDemoMode = BuildConfig.IS_DEMO_MODE;
FunctionBuildConfig.appIdentityMode = BuildConfig.APP_IDENTITY_MODE;
if (DebugConfig.getProductFlavor().equals("fPadLenovoOchTaxi") || DebugConfig.getProductFlavor().equals("fPadLenovoOchBus")) {
// 配置BuglyAppID
CrashReportConstants.buglyAppID = "f3f8b0b2f1";
//控制HMI展示元素 将不用手动调用setXXXXXViewVisibility
@@ -75,13 +77,20 @@ public class MogoApplication extends MainMoGoApplication {
HmiBuildConfig.isShowAutopilotStatusView = false;
HmiBuildConfig.isShowPerspectiveSwitchView = false;
HmiBuildConfig.isShowToolsView = false;
}else {
} else {
CrashReportConstants.buglyAppID = "ac71228f85";
}
if (DebugConfig.getProductFlavor().equals("fPadLenovoOchTaxi")){
if (DebugConfig.getProductFlavor().equals("fPadLenovoOchTaxi")) {
HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche;
}else if (DebugConfig.getProductFlavor().equals("fPadLenovoOchBus")){
} else if (DebugConfig.getProductFlavor().equals("fPadLenovoOchBus")) {
HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache;
}
}
@Override
protected void initConfigWithSP() {
// 演示模式,上一次勾选的数据
FunctionBuildConfig.isDemoMode = SharedPrefsMgr.getInstance(this).getBoolean(MoGoConfig.IS_DEMO_MODE, false);
}
}

View File

@@ -6,9 +6,11 @@ import androidx.annotation.RequiresPermission
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.data.autopilot.AutopilotControlCmdParameter
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
import com.mogo.eagle.core.data.constants.MoGoConfig
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotProvider
import com.mogo.eagle.core.function.autopilot.server.AsyncDataToAutopilotServer
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.LogUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
@@ -23,13 +25,15 @@ import java.util.concurrent.TimeUnit
*/
@Route(path = MogoServicePaths.PATH_AUTO_PILOT)
class MoGoAutopilotProvider :
IMoGoAutopilotProvider {
IMoGoAutopilotProvider {
private val TAG = "MoGoAutoPilotProvider"
private var mContext: Context? = null
override val functionName: String
get() = TAG
override fun init(context: Context) {
mContext = context
// 初始化ADAS 域控制器
//AdasManager.getInstance().create(context)
AsyncDataToAutopilotServer.INSTANCE.initServer()
@@ -47,6 +51,8 @@ class MoGoAutopilotProvider :
ThreadUtils.executeBySingleWithDelay(object : ThreadUtils.SimpleTask<String>() {
@RequiresPermission(permission.INTERNET)
override fun doInBackground(): String {
// 保存本地 AutoPilot IP地址
mContext?.let { SharedPrefsMgr.getInstance(it).putString(MoGoConfig.AUTOPILOT_IP, autoPilotIp) }
// 设置IP地址
AdasManager.getInstance().setIPCIp(autoPilotIp)
// 打开通讯连接
@@ -83,7 +89,7 @@ class MoGoAutopilotProvider :
override fun recordPackage(): Boolean {
return AdasManager.getInstance()
.recordPackage(1, (System.currentTimeMillis() / 1000).toInt())
.recordPackage(1, (System.currentTimeMillis() / 1000).toInt())
}
override fun setEnableLog(isEnableLog: Boolean) {

View File

@@ -50,11 +50,11 @@ import kotlinx.android.synthetic.main.view_debug_setting.view.*
* 展示 本机、网络、工控机、OBU等状态信息支持设置IP等参数进行调试
*/
class DebugSettingView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoObuStatusListener,
IMoGoAutopilotStatusListener, IMoGoAutopilotCarStateListener, IMoGoMapLocationListener {
IMoGoAutopilotStatusListener, IMoGoAutopilotCarStateListener, IMoGoMapLocationListener {
private val TAG = "DebugSettingView"
@@ -146,14 +146,14 @@ class DebugSettingView @JvmOverloads constructor(
tvObuInfo.text = CallerObuListenerManager.getObuStatusInfoJsonString()
tvAutopilotInfo.text =
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfoJsonString()
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfoJsonString()
// 绘制应用基本信息
drawAppInfo()
// 初始化OBU IP信息
val ipAddress =
SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, "192.168.1.199")
SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, "192.168.1.199")
etObuIP.setText(ipAddress)
etObuIP.text?.let { etObuIP.setSelection(it.length) }
@@ -169,7 +169,7 @@ class DebugSettingView @JvmOverloads constructor(
// 初始化工控机 IP信息
val autoPilotIpAddress =
SharedPrefsMgr.getInstance(context).getString(MoGoConfig.AUTOPILOT_IP, "192.168.1.102")
SharedPrefsMgr.getInstance(context).getString(MoGoConfig.AUTOPILOT_IP, "192.168.1.102")
etAutopilotIP.setText(autoPilotIpAddress)
etAutopilotIP.text?.let { etAutopilotIP.setSelection(it.length) }
@@ -178,8 +178,6 @@ class DebugSettingView @JvmOverloads constructor(
val autoPilotIp = etAutopilotIP.text.toString()
if (autoPilotIp.isNotEmpty()) {
CallerAutoPilotManager.resetIpAddress(autoPilotIp)
// 保存本地 AutoPilot IP地址
SharedPrefsMgr.getInstance(context).putString(MoGoConfig.AUTOPILOT_IP, autoPilotIp)
} else {
ToastUtils.showShort("请输入正确的IP地址")
}
@@ -190,21 +188,20 @@ class DebugSettingView @JvmOverloads constructor(
CallerAutoPilotManager.recordPackage()
}
// 初始化 GSP数据源 数据
rgGpsProvider.check(
when (FunctionBuildConfig.gpsProvider) {
0 -> {
R.id.rbGpsProviderAndroid
when (FunctionBuildConfig.gpsProvider) {
0 -> {
R.id.rbGpsProviderAndroid
}
1 -> {
R.id.rbGpsProviderRTK
}
2 -> {
R.id.rbGpsProviderOBU
}
else -> R.id.rbGpsProviderAndroid
}
1 -> {
R.id.rbGpsProviderRTK
}
2 -> {
R.id.rbGpsProviderOBU
}
else -> R.id.rbGpsProviderAndroid
}
)
rgGpsProvider.setOnCheckedChangeListener { group, checkedId ->
when (checkedId) {
@@ -222,14 +219,14 @@ class DebugSettingView @JvmOverloads constructor(
// 初始化 感知数据是否绘制 选择情况
rgIsDrawIdentifyData.check(
when (FunctionBuildConfig.isDrawIdentifyData) {
true -> {
R.id.rbDraw
when (FunctionBuildConfig.isDrawIdentifyData) {
true -> {
R.id.rbDraw
}
false -> {
R.id.rbDoNotDraw
}
}
false -> {
R.id.rbDoNotDraw
}
}
)
rgIsDrawIdentifyData.setOnCheckedChangeListener { group, checkedId ->
when (checkedId) {
@@ -242,37 +239,16 @@ class DebugSettingView @JvmOverloads constructor(
}
}
/*// 切换地图中心点视角
tbChangeCarCenter100.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(1)
// 演示模式,上一次勾选的数据
val isDemoMode =
SharedPrefsMgr.getInstance(context).getBoolean(MoGoConfig.IS_DEMO_MODE, false)
rbIsDemoMode.isChecked = isDemoMode
// 演示模式
rbIsDemoMode.setOnCheckedChangeListener { buttonView, isChecked ->
FunctionBuildConfig.isDemoMode = isChecked
SharedPrefsMgr.getInstance(context).putBoolean(MoGoConfig.IS_DEMO_MODE, isChecked)
}
tbChangeCarQuarter100.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(2)
}
tbChangeCarTwoFifths100.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(3)
}
tbChangeCarTwoFifths80.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(4)
}
tbChangeCAR_AFTER_30_FRONT_80.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(5)
}
tbChangeCAR_AFTER_30_FRONT_100.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(6)
}
tbChangeCAR_AFTER_30_FRONT_120.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(7)
}
tbChangeCAR_AFTER_40_FRONT_80.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(8)
}
tbChangeCAR_AFTER_40_FRONT_100.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(9)
}
tbChangeCAR_AFTER_40_FRONT_120.setOnClickListener {
CallerHDMapManager.changeMaoViewAngle(10)
}*/
tbSelfLog.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
@@ -305,7 +281,7 @@ class DebugSettingView @JvmOverloads constructor(
}
tbLogCatch.isChecked =
SharedPrefsMgr.getInstance(context).getBoolean(MoGoConfig.CATCH_LOG, false)
SharedPrefsMgr.getInstance(context).getBoolean(MoGoConfig.CATCH_LOG, false)
tbLogCatch.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
CallerDevaToolsManager.startCatchLog()
@@ -316,20 +292,20 @@ class DebugSettingView @JvmOverloads constructor(
}
}
CallerDevaToolsListenerManager.registerDevaToolsLogCatchListener(TAG,
object : IMoGoDevaToolsListener {
override fun onLogCatchClose() {
super.onLogCatchClose()
tbLogCatch.isChecked = false
}
object : IMoGoDevaToolsListener {
override fun onLogCatchClose() {
super.onLogCatchClose()
tbLogCatch.isChecked = false
}
override fun onLogCatch(lineLog: String) {
logInfoView?.let {
if (logViewAttach) {
it.onLogCatch(lineLog)
override fun onLogCatch(lineLog: String) {
logInfoView?.let {
if (logViewAttach) {
it.onLogCatch(lineLog)
}
}
}
}
})
})
tbLogDebugView.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
logInfoView = LogInfoView()

View File

@@ -9,7 +9,9 @@ import android.widget.FrameLayout
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.map.MogoLatLng
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.map.navi.IMogoCarLocationChangedListener2
import com.mogo.service.IMogoServiceApis
@@ -53,7 +55,11 @@ class SpeedPanelView @JvmOverloads constructor(
}
private fun initEvent(context: Context) {
setOnLongClickListener {
Logger.d(TAG, "长按显示状态工具栏")
CallerHmiManager.toggleDebugView()
false
}
}
private val timerTask = object : TimerTask() {
@@ -99,12 +105,6 @@ class SpeedPanelView @JvmOverloads constructor(
override fun onCarLocationChanged2(latLng: Location) {
mLatLng = latLng
// UiThreadHandler.post {
// val speed = (latLng.speed * 3.6f).toInt()
// mSpeedChartView.setArcColor(Color.parseColor(if (speed > 60) "#DB3137" else "#3E77F6"))
// mSpeedChartView.setValues(speed)
// setBackgroundResource(if (speed > 60) R.drawable.yi_biao_pan_bg_speeding else R.drawable.yi_biao_pan_bg_nor)
// }
}
}

View File

@@ -31,26 +31,26 @@
android:textSize="@dimen/dp_34"
android:textStyle="bold" />
<!-- <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!-- <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PAD系统时间"
android:textColor="#000"
android:textSize="@dimen/dp_36" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PAD系统时间"
android:textColor="#000"
android:textSize="@dimen/dp_36" />
<TextClock
android:id="@+id/tvNowTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="yyyy年MM月dd日 EEEE aa HH:mm:ss"
android:format24Hour="yyyy年MM月dd日 EEEE aa HH:mm:ss"
android:textColor="#000"
android:textSize="@dimen/dp_36" />
</LinearLayout>-->
<TextClock
android:id="@+id/tvNowTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="yyyy年MM月dd日 EEEE aa HH:mm:ss"
android:format24Hour="yyyy年MM月dd日 EEEE aa HH:mm:ss"
android:textColor="#000"
android:textSize="@dimen/dp_36" />
</LinearLayout>-->
<TextView
android:id="@+id/tvAppInfo"
@@ -166,7 +166,8 @@
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 顶视角"
android:textSize="@dimen/dp_34"/>
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/changesight_back_btn"
android:layout_width="wrap_content"
@@ -174,7 +175,8 @@
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 后方来车视角"
android:textSize="@dimen/dp_34"/>
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/changesight_cross_btn"
android:layout_width="wrap_content"
@@ -182,7 +184,7 @@
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 十字路口视角"
android:textSize="@dimen/dp_34"/>
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/changesight_far_btn"
@@ -191,7 +193,8 @@
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 远视角"
android:textSize="@dimen/dp_34"/>
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/reset_changesight"
android:layout_width="wrap_content"
@@ -199,96 +202,8 @@
android:layout_margin="2dp"
android:gravity="center"
android:text="恢复视角"
android:textSize="@dimen/dp_34"/>
<!-- <Button
android:id="@+id/tbChangeCarCenter100"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_CENTER_100"
android:textSize="@dimen/dp_34" />
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/tbChangeCarQuarter100"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_QUARTER_100"
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/tbChangeCarTwoFifths100"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_TWO_FIFTHS_100"
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/tbChangeCarTwoFifths80"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_TWO_FIFTHS_80"
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/tbChangeCAR_AFTER_30_FRONT_80"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_AFTER_30_FRONT_80"
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/tbChangeCAR_AFTER_30_FRONT_100"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_AFTER_30_FRONT_100"
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/tbChangeCAR_AFTER_30_FRONT_120"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_AFTER_30_FRONT_120"
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/tbChangeCAR_AFTER_40_FRONT_80"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_AFTER_40_FRONT_80"
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/tbChangeCAR_AFTER_40_FRONT_100"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_AFTER_40_FRONT_100"
android:textSize="@dimen/dp_34" />
<Button
android:id="@+id/tbChangeCAR_AFTER_40_FRONT_120"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="center"
android:text="切换 CAR_AFTER_40_FRONT_120"
android:textSize="@dimen/dp_34" />-->
</com.google.android.flexbox.FlexboxLayout>
@@ -440,6 +355,14 @@
</RadioGroup>
<CheckBox
android:id="@+id/rbIsDemoMode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/dp_10"
android:text="选中开启美化模式"
android:textColor="#000"
android:textSize="@dimen/dp_34" />
</LinearLayout>
@@ -504,6 +427,7 @@
android:textColor="#000"
android:textSize="@dimen/dp_34"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/etAutopilotIP"
android:layout_width="match_parent"

View File

@@ -54,6 +54,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
@Override
public void onCreate() {
initBuildConfig();
initConfigWithSP();
super.onCreate();
if (!shouldInit()) {
return;
@@ -79,6 +80,11 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
*/
protected abstract void initBuildConfig();
/**
* 从SP本地设置中恢复数据
*/
protected abstract void initConfigWithSP();
/**
* 初始化异常采集配置
*/

View File

@@ -6,8 +6,30 @@ package com.mogo.eagle.core.data.config
* 功能构建配置文件,根据 APP 中build.gradle productFlavors 配置的不同将直接影响加载的功能的不同
*/
object FunctionBuildConfig {
/**
* 自车位置使用哪种外部数据源,0-Android系统1-工控机2-OBU
* 是否是演示美化模式会存在SP中方便做现场恢复
* 1.当点击【开始服务taxi/滑动出发bus】btn后不管实际自动驾驶按钮「state值」如何变更自动驾驶按钮都呈现2的状态。
* 只是自动驾驶按钮的样式为2-被选中的状态
* 若点击,则可继续向自动驾驶系统发送启动自动驾驶的命令。
* 2.车前引导线一直呈现,含人工接管过程中。
*/
@JvmField
var isDemoMode = false
/**
* 当前APP的身份模式
* 0 = 司机模式(默认)
* 1 = 乘客模式(部分功能受到影响)
*/
@JvmField
var appIdentityMode = 0
/**
* 自车位置使用哪种外部数据源
* 0 = Android系统
* 1 = 工控机
* 2 = OBU
*/
@JvmField
var gpsProvider = 0

View File

@@ -15,4 +15,7 @@ object MoGoConfig {
// CMD全量日志抓取
const val CATCH_LOG = "CATCH_LOG"
// 是否是演示美化模式会存在SP中方便做现场恢复
const val IS_DEMO_MODE = "IS_DEMO_MODE"
}

View File

@@ -118,19 +118,6 @@ public class DebugConfig {
DebugConfig.sLaunchLocationService = launchLocationService;
}
/**
* 是否使用自定义导航
*/
private static boolean sUseCustomNavi = false;
public static boolean isUseCustomNavi() {
return sUseCustomNavi;
}
public static void setUseCustomNavi(boolean sUseCustomNavi) {
DebugConfig.sUseCustomNavi = sUseCustomNavi;
}
/**
* 设置当前车机类型
*
@@ -172,19 +159,6 @@ public class DebugConfig {
DebugConfig.sRequestOnlineCarData = sRequestOnlineCarData;
}
/**
* 是否支持临时激活小智
*/
private static boolean sActiveAIAssistFlag = false;
public static boolean isActiveAIAssistFlag() {
return sActiveAIAssistFlag;
}
public static void setActiveAIAssistFlag(boolean sActiveAIAssistFlag) {
DebugConfig.sActiveAIAssistFlag = sActiveAIAssistFlag;
}
private static boolean useMockObuData;
public static void setUseMockObuData(boolean use) {
@@ -282,17 +256,6 @@ public class DebugConfig {
DebugConfig.isMapBased = isMapBased;
}
private static boolean isNeedHideAdasWhenShare = false;
public static boolean isNeedHideAdasWhenShare() {
return isNeedHideAdasWhenShare;
}
public static void setNeedHideAdasWhenShare(boolean isNeedHideAdas) {
DebugConfig.isNeedHideAdasWhenShare = isNeedHideAdas;
}
/**
* 是否需要实时上报坐标位置
*/

View File

@@ -47,19 +47,12 @@ public class BaseFloatDialog extends Dialog {
@Override
public void show() {
Logger.d(TAG, "onShow====");
if (DebugConfig.isNeedHideAdasWhenShare()) {
MogoApisHandler.getInstance().getApis().getAdasControllerApi().closeADAS();
}
super.show();
}
@Override
public void dismiss() {
Logger.d(TAG, "onDismiss====");
if (DebugConfig.isNeedHideAdasWhenShare()
&& MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageOnResume()) {
MogoApisHandler.getInstance().getApis().getAdasControllerApi().showADAS();
}
super.dismiss();
}
}