diff --git a/app/build.gradle b/app/build.gradle index 171bfbe8e5..91c1f7694e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -175,6 +175,7 @@ android { apply from: "./script/productFlavors/noop.gradle" apply from: "./script/productFlavors/shuttle.gradle" apply from: "./script/productFlavors/sweeperOperate.gradle" + apply from: "./script/productFlavors/sweeperCloud.gradle" apply from: "./script/productFlavors/taxi.gradle" apply from: "./script/productFlavors/taxiunmanned.gradle" // 配置不同渠道参数,直接影响功能完整度 diff --git a/app/script/flavorfilter/flavors.json b/app/script/flavorfilter/flavors.json index e2bad9d7a3..15da63986b 100644 --- a/app/script/flavorfilter/flavors.json +++ b/app/script/flavorfilter/flavors.json @@ -6,6 +6,9 @@ "sweeperOperate" :{ "driver": ["ochFT"] }, + "sweeperCloud" :{ + "driver": ["ochFT"] + }, "shuttle" :{ "driver": ["ochJL","ochM2"], "passenger": ["ochJL","ochM2"] diff --git a/app/script/functions/och.gradle b/app/script/functions/och.gradle index 9d49e702be..804ae6d846 100644 --- a/app/script/functions/och.gradle +++ b/app/script/functions/och.gradle @@ -29,6 +29,8 @@ project.dependencies { implementation project.project(':OCH:shuttle:passenger') } else if (isCurrentDriver("sweeperOperate")) { implementation project.project(':OCH:sweeper:driver') + } else if (isCurrentDriver("sweeperCloud")) { + implementation project.project('OCH:sweeper:driver') } else if (isCurrentDriver("taxiunmanned")) { implementation project.project(':OCH:taxi:unmanned-driver') } else if (isCurrentPassenger("taxiunmanned")) { diff --git a/app/script/productFlavors/sweeperCloud.gradle b/app/script/productFlavors/sweeperCloud.gradle new file mode 100644 index 0000000000..5d78279f04 --- /dev/null +++ b/app/script/productFlavors/sweeperCloud.gradle @@ -0,0 +1,33 @@ +project.android.productFlavors { + // 清扫车业务 + sweeperCloud { + dimension "product" + + manifestPlaceholders = [ + // 标识 + CHANNEL_VALUE_HEAD: "Sweeper", + // 在启动的时候把Task给清空 + ACTIVITY_ROOT : true, + // Activity的朝向 + SCREEN_ORIENTATION:"landscape", + ] + + // ①标识 + buildConfigField 'String', 'APP_IDENTITY_MODE_HEAD', "\"Sweeper\"" + + // ②连接的工控机IP地址 + buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.102\"" + + // ③是否需要重写状态栏 + buildConfigField 'boolean', 'IS_REPLACE_STATUSVIEW', 'false' + + // ④构建 是否支持多屏异显异交互 + buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + // ⑤清扫车 默认模式(运营/云控) + buildConfigField 'String', 'SWEEPER_DEFAULT_MODE', '\"Cloud\"' + + // ⑥清扫车 是否能切换模式 + buildConfigField 'boolean', 'SWEEPER_CAN_SWITCH_MODE', 'true' + } +} \ No newline at end of file diff --git a/app/script/productFlavors/sweeperOperate.gradle b/app/script/productFlavors/sweeperOperate.gradle index 9e14e1684e..afb9455879 100644 --- a/app/script/productFlavors/sweeperOperate.gradle +++ b/app/script/productFlavors/sweeperOperate.gradle @@ -23,5 +23,11 @@ project.android.productFlavors { // ④构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + // ⑤清扫车 默认模式(运营/云控) + buildConfigField 'String', 'SWEEPER_DEFAULT_MODE', '\"Operate\"' + + // ⑥清扫车 是否能切换模式 + buildConfigField 'boolean', 'SWEEPER_CAN_SWITCH_MODE', 'false' } } \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt index 6e2e9741a7..9741b40fd4 100644 --- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt @@ -70,6 +70,10 @@ object ConfigStartUp { FunctionBuildConfig.adasConnectIP = BuildConfig.ADAS_CONNECT_IP // 是否开启secure校验 FunctionBuildConfig.isSecure = BuildConfig.secure + // 清扫车 默认业务模式 + FunctionBuildConfig.sweeperDefaultMode = BuildConfig.SWEEPER_DEFAULT_MODE + // 清扫车 是否能切换当前业务模式 + FunctionBuildConfig.sweeperCanSwitchMode = BuildConfig.SWEEPER_CAN_SWITCH_MODE } private fun initDebugConfig() { diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index 1b9d01dbb7..fcc59f6365 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -313,4 +313,18 @@ object FunctionBuildConfig { @JvmField var isFaultSlowDown = true + /** + * 清扫车 默认业务模式(云控) + */ + @Volatile + @JvmField + var sweeperDefaultMode = "Cloud" + + /** + * 清扫车 是否能切换当前业务模式 + */ + @Volatile + @JvmField + var sweeperCanSwitchMode = "true" + } \ No newline at end of file diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/vehicle/SweeperVehicleConfigUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/vehicle/SweeperVehicleConfigUtils.kt new file mode 100644 index 0000000000..a74a154aed --- /dev/null +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/vehicle/SweeperVehicleConfigUtils.kt @@ -0,0 +1,73 @@ +package com.mogo.eagle.core.utilcode.mogo.vehicle + +import com.mogo.eagle.core.utilcode.util.SPUtils + +/** + * 清扫车 业务相关的车型配置 + */ +object SweeperVehicleConfigUtils { + // 业务模式(云控/运营) + private const val BUSINESS_MODE_OPERATE = "Operate" + private const val BUSINESS_MODE_CLOUD = "Cloud" + + // 本地存储SP key + private const val SP_KEY_SWEEPER_CURRENT_MODE = "key_sweeper_current_mode" + + /** + * 是否 默认清扫车营运模式 + * + * @param sweeperDefaultMode productFlavors 配置的默认值 + * @return true - 是默认清扫车运营模式 false - 不是默认清扫车运营模式 + */ + @JvmStatic + fun isDefaultSweeperOperateMode(sweeperDefaultMode: String): Boolean { + return BUSINESS_MODE_OPERATE == sweeperDefaultMode + } + + /** + * 是否 默认清扫车云控模式 + * + * @param sweeperDefaultMode productFlavors 配置的默认值 + * @return true - 是默认清扫车云控模式 false - 不是默认清扫车云控模式 + */ + @JvmStatic + fun isDefaultSweeperCloudMode(sweeperDefaultMode: String): Boolean { + return BUSINESS_MODE_CLOUD == sweeperDefaultMode + } + + /** + * 保存 当前清扫业务模式到SP + */ + @JvmStatic + fun setSPCurrentSweeperMode(sweeperCurrentMode: String) { + SPUtils.getInstance().put(SP_KEY_SWEEPER_CURRENT_MODE, sweeperCurrentMode) + } + + /** + * 是否SP中存在 当前清扫业务模式的配置 + */ + @JvmStatic + fun isSPExistCurrentSweeperModeConfig(): Boolean { + return SPUtils.getInstance().contains(SP_KEY_SWEEPER_CURRENT_MODE) + } + + /** + * 是否SP中 当前是运营业务模式 + */ + @JvmStatic + fun isSPCurrentSweeperOperateMode(): Boolean { + return isSPExistCurrentSweeperModeConfig() && + BUSINESS_MODE_OPERATE == + SPUtils.getInstance().getString(SP_KEY_SWEEPER_CURRENT_MODE, BUSINESS_MODE_CLOUD) + } + + /** + * 是否SP中 当前是云控业务模式 + */ + @JvmStatic + fun isSPCurrentSweeperCloudMode(): Boolean { + return isSPExistCurrentSweeperModeConfig() && + BUSINESS_MODE_CLOUD == + SPUtils.getInstance().getString(SP_KEY_SWEEPER_CURRENT_MODE, BUSINESS_MODE_CLOUD) + } +} \ No newline at end of file