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/utils/CallerLoggerUtils.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CallerLoggerUtils.kt index 6289004563..125b4b91d0 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,31 +1,30 @@ 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_TAXI 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 - } - 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{ + "" } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 8365c3042b..0f51e4b85d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -228,6 +228,8 @@ 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" packagingOptions { exclude 'META-INF/io.netty.versions.properties' diff --git a/app/functions/och.gradle b/app/functions/och.gradle index 692970d733..4b2414e200 100644 --- a/app/functions/och.gradle +++ b/app/functions/och.gradle @@ -52,6 +52,42 @@ project.dependencies { exclude group: 'com.mogo.eagle.core' //by group exclude group: 'com.mogo.eagle.core.function' //by group } + + // Bus司机端 + fMultiDisplayOchBusImplementation(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 + } + + // Bus乘客端 + fMultiDisplayOchBusImplementation(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 + } + + // taxi司机端 + fMultiDisplayOchTaxiImplementation(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 + } + + // taxi乘客端 + fMultiDisplayOchTaxiImplementation(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 + } } else { fPadLenovoImplementation (project(':OCH:mogo-och-noop')) { exclude group: 'com.mogo.commons' //by group @@ -78,7 +114,7 @@ project.dependencies { } // Bus乘客端 - fPadLenovoOchBusImplementation (project(':OCH:mogo-och-bus-passenger')) { + 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 @@ -96,7 +132,43 @@ project.dependencies { } // taxi乘客端 - fPadLenovoOchTaxiImplementation (project(':OCH:mogo-och-taxi-passenger')) { + 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 + } + + // Bus司机端 + fMultiDisplayOchBusImplementation (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 + } + + // Bus乘客端 + fMultiDisplayOchBusImplementation (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 + } + + // taxi司机端 + fMultiDisplayOchTaxiImplementation (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 + } + + // taxi乘客端 + fMultiDisplayOchTaxiImplementation (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 diff --git a/app/productFlavors/f8xx.gradle b/app/productFlavors/fMultiDisplayOchBus.gradle similarity index 60% rename from app/productFlavors/f8xx.gradle rename to app/productFlavors/fMultiDisplayOchBus.gradle index 89c37c0438..1f8c0733a4 100644 --- a/app/productFlavors/f8xx.gradle +++ b/app/productFlavors/fMultiDisplayOchBus.gradle @@ -1,37 +1,39 @@ project.android.productFlavors { - // f系列-分体机全系列,未细分 - f8xx { + // 支持多个屏幕异显示的终端,即一个终端包含司机端、乘客端 + fMultiDisplayOchBus { externalNativeBuild { ndk { // 设置支持的SO库架构 abiFilters "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: "f8xx",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" + // 构建的应用身份类型,出租车0|小巴A-司机|乘客 + buildConfigField 'int', 'APP_IDENTITY_MODE', "0xA0" // 连接的工控机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 64% rename from app/productFlavors/fochtaxi.gradle rename to app/productFlavors/fMultiDisplayOchTaxi.gradle index af2535b0d1..ebec4d6f35 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" } } - 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" - // 构建的应用身份类型,司机|乘客 + // 构建的应用身份类型,出租车0|小巴A-司机|乘客 buildConfigField 'int', 'APP_IDENTITY_MODE', "0x00" // 连接的工控机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..33c6b2b39b 100644 --- a/app/productFlavors/fPadLenovo.gradle +++ b/app/productFlavors/fPadLenovo.gradle @@ -32,5 +32,8 @@ project.android.productFlavors { 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..d7516af64c 100644 --- a/app/productFlavors/fPadLenovoOchBus.gradle +++ b/app/productFlavors/fPadLenovoOchBus.gradle @@ -34,5 +34,8 @@ project.android.productFlavors { 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..4588a7b67c 100644 --- a/app/productFlavors/fPadLenovoOchBusPassenger.gradle +++ b/app/productFlavors/fPadLenovoOchBusPassenger.gradle @@ -32,5 +32,8 @@ project.android.productFlavors { buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.103\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' } } \ No newline at end of file diff --git a/app/productFlavors/fPadLenovoOchSweeper.gradle b/app/productFlavors/fPadLenovoOchSweeper.gradle index 97db194a24..4b07e12cbb 100644 --- a/app/productFlavors/fPadLenovoOchSweeper.gradle +++ b/app/productFlavors/fPadLenovoOchSweeper.gradle @@ -34,5 +34,8 @@ project.android.productFlavors { 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..2946dc325c 100644 --- a/app/productFlavors/fPadLenovoOchTaxi.gradle +++ b/app/productFlavors/fPadLenovoOchTaxi.gradle @@ -35,6 +35,9 @@ project.android.productFlavors { 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..973da7ef36 100644 --- a/app/productFlavors/fPadLenovoOchTaxiPassenger.gradle +++ b/app/productFlavors/fPadLenovoOchTaxiPassenger.gradle @@ -34,6 +34,9 @@ project.android.productFlavors { buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.1.103\"" // 构建的是否是演示(美化)模式 buildConfigField 'boolean', 'IS_DEMO_MODE', 'false' + + // 构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' } } \ No newline at end of file diff --git a/app/productFlavors/fochbus.gradle b/app/productFlavors/fochbus.gradle deleted file mode 100644 index a9de923535..0000000000 --- a/app/productFlavors/fochbus.gradle +++ /dev/null @@ -1,37 +0,0 @@ -project.android.productFlavors { - // f系列-网约车-小巴车 - fochbus { - 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: "fochbus",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/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/java/com/mogo/launcher/stageone/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt index 4048c3950d..74b7bba8fb 100644 --- a/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt @@ -76,6 +76,7 @@ class ConfigStartUp : AndroidStartup() { DebugConfig.setCarMachineType(BuildConfig.CAR_MACHINE_TYPE) DebugConfig.setProductFlavor(BuildConfig.FLAVOR_product) DebugConfig.setSocketAppId(BuildConfig.SOCKET_APP_ID) + DebugConfig.setMultiDisplay(BuildConfig.IS_MULTI_DISPLAY) DebugConfig.setScheduleCalculateNotHomeCompanyDistanceForPush(BuildConfig.IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH) DebugConfig.setNeedUploadCoordinatesInTime(BuildConfig.IS_NEED_UPLOAD_COORDINATES_IN_TIME) DebugConfig.setObuType( @@ -87,11 +88,8 @@ class ConfigStartUp : AndroidStartup() { // 配置BuglyAppID:MoGoEagleEye CrashReportConstants.buglyAppID = "ac71228f85" - // TODO: @王明君 ,这里判断方式可以替换为使用 AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)等进行替换 - 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 @@ -101,32 +99,14 @@ 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" - || DebugConfig.getProductFlavor() == "fPadLenovoOchSweeper") { + } else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache HmiBuildConfig.isShowBrakeLightView = false HmiBuildConfig.isShowTurnLightView = false } - 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)) { //是否显示 红绿等 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 82fafbf823..4cde3d6fdf 100644 --- a/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt @@ -40,6 +40,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadPoolService import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.map.location.GDLocationClient import com.mogo.eagle.core.data.constants.HostConst +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.rousetime.android_startup.AndroidStartup import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager import com.zhjt.service.chain.ChainLog @@ -365,7 +366,8 @@ class HttpDnsStartUp : AndroidStartup() { private fun initCloudClientConfig() { // 使用旧Socket链路 true = 旧链路,false = 新链路 - if (DebugConfig.getProductFlavor() == "fPadLenovoOchTaxi" || DebugConfig.getProductFlavor() == "fPadLenovoOchBus" || DebugConfig.getProductFlavor() == "fPadLenovoOchTaxiPassenger" || DebugConfig.getProductFlavor() == "fPadLenovoOchBusPassenger") { + if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)|| + AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { clientConfig.isUseOriginSocket = true } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt index bcf3604817..20ae249966 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt @@ -168,6 +168,7 @@ class AutoPilotAndCheckView @JvmOverloads constructor( actvLoginout.visibility = View.VISIBLE CallerHmiManager.setBusOperationView(toolBusOperationView) + // TODO 这里判断方式可以替换为使用 AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)等进行替换 when (DebugConfig.getProductFlavor()) { "fPadLenovoOchTaxi" -> { //出租车司机 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 4692c112f4..0b81ec1e26 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 @@ -99,7 +99,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { FrameLayout frameLayout = findViewById(R.id.module_main_id_map_fragment_container); - frameLayout.setPadding(0, 0, AutoSizeUtils.dp2px(getContext(),700), 0); + frameLayout.setPadding(0, 0, AutoSizeUtils.dp2px(getContext(), 700), 0); } } @@ -144,20 +144,39 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis * 加载网约车模块 */ private void loadOCHModule() { - IMoGoFunctionProvider ochProvider = (IMoGoFunctionProvider) ARouter.getInstance() - .build("/driver/api") - .navigation(getContext()); + IMoGoFunctionProvider ochProvider; + // 兼容处理之前联想PAD及小巴车多个设备部署不同APP方案 + if (!DebugConfig.isMultiDisplay()) { + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + ochProvider = (IMoGoFunctionProvider) ARouter.getInstance() + .build("/driver/api") + .navigation(getContext()); + } else { + ochProvider = (IMoGoFunctionProvider) ARouter.getInstance() + .build("/passenger/api") + .navigation(getContext()); + } + } + // 处理一个机器多个屏幕方案 + else { + // 这里先加载司机端 + ochProvider = (IMoGoFunctionProvider) ARouter.getInstance() + .build("/driver/api") + .navigation(getContext()); + + // 启动乘客端Act + if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) || + AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { + MultiDisplayUtils.INSTANCE.startActWithProcess( + this, + 2, + PassengerLauncherActivity.class); + } + } + if (ochProvider != null) { ochProvider.createCoverage(this, R.id.module_main_id_och_fragment); } - // TODO:这里只针对目前有的 Bus、Taxi业务进行异屏幕启动,这里需要考虑现有方案如何兼容 - if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) || - AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { - MultiDisplayUtils.INSTANCE.startActWithProcess( - this, - 2, - PassengerLauncherActivity.class); - } } @Subscribe(sticky = true) @@ -225,6 +244,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis /** * 魔方按键分发 提测前注释 ToastUtils TODO + * * @param event * @return */ diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java index 0308e9a605..16d989bb3c 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java @@ -290,4 +290,16 @@ public class DebugConfig { public static boolean isUseAdasRecognize() { return isUseAdasRecognize; } + + + // 兼容是否支持多屏幕方案 + private static boolean isMultiDisplay = false; + + public static void setMultiDisplay(boolean status) { + isMultiDisplay = status; + } + + public static boolean isMultiDisplay() { + return isMultiDisplay; + } }