[gradle]
[sweeper、bus、shuttle 分离]
This commit is contained in:
@@ -45,8 +45,8 @@
|
||||
| 车型 | 配置所在文件 | 档位 | 配置 |
|
||||
|:-|:-|:-|:-|
|
||||
| 东风、红旗 | fOchTaxi.gradle、fOchTaxiPassenger.gradle | P、R | buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' |
|
||||
| 金旅小巴 | fOchBus.gradle、fOchBusPassenger.gradle、fOchShuttle.gradle、fOchShuttlePassenger.gradle | N、R | buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' |
|
||||
| 金旅小巴 | ochJL.gradle、ochJL.gradle、ochJL.gradle、ochJL.gradle | N、R | buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' |
|
||||
| M1 | fOchBusPassengerM1.gradle | 不限制档位 | buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' |
|
||||
| M2 | fOchShuttlePassengerM2.gradle | N、P、R | buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' |
|
||||
| 清扫车 | fOchSweeper.gradle | 不限制档位 | buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' |
|
||||
| M2 | ochM2.gradle | N、P、R | buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' |
|
||||
| 清扫车 | ochFT.gradle | 不限制档位 | buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' |
|
||||
| 开沃 | 暂无 | 不限制档位 | buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' |
|
||||
|
||||
@@ -268,13 +268,11 @@ android {
|
||||
apply from: "./script/productFlavors/taxi.gradle"
|
||||
// 配置不同渠道参数,直接影响功能完整度
|
||||
apply from: "./script/vehicleFlavors/fPadLenovo.gradle"
|
||||
apply from: "./script/vehicleFlavors/fOchBus.gradle"
|
||||
apply from: "./script/vehicleFlavors/fOchShuttle.gradle"
|
||||
apply from: "./script/vehicleFlavors/fOchBusPassenger.gradle"
|
||||
apply from: "./script/vehicleFlavors/fOchShuttlePassengerM2.gradle"
|
||||
apply from: "./script/vehicleFlavors/fOchShuttlePassenger.gradle"
|
||||
apply from: "./script/vehicleFlavors/ochJL.gradle"
|
||||
apply from: "./script/vehicleFlavors/ochJL.gradle"
|
||||
apply from: "./script/vehicleFlavors/ochM2.gradle"
|
||||
apply from: "./script/vehicleFlavors/ochDFHQ.gradle"
|
||||
apply from: "./script/vehicleFlavors/fOchSweeper.gradle"
|
||||
apply from: "./script/vehicleFlavors/ochFT.gradle"
|
||||
apply from: "./script/vehicleFlavors/fMultiDisplayOchBus.gradle"
|
||||
apply from: "./script/vehicleFlavors/fMultiDisplayOchTaxi.gradle"
|
||||
//包车
|
||||
|
||||
@@ -3,14 +3,14 @@ afterEvaluate {
|
||||
|
||||
def launcher = [
|
||||
"fPadLenovo",
|
||||
"fOchSweeper",
|
||||
"ochFT",
|
||||
"fOchTaxi",
|
||||
"fOchBus",
|
||||
"fOchBusPassenger",
|
||||
"ochJL",
|
||||
"ochJL",
|
||||
"fOchBusPassengerM1",
|
||||
"fOchShuttlePassengerM2",
|
||||
"fOchShuttle",
|
||||
"fOchShuttlePassenger",
|
||||
"ochM2",
|
||||
"ochJL",
|
||||
"ochJL",
|
||||
"fOchTaxiPassenger",
|
||||
"MultiDisplayOchBus",
|
||||
"MultiDisplayOchTaxi"]
|
||||
|
||||
@@ -4,19 +4,19 @@
|
||||
"driver":["fPadLenovo"]
|
||||
},
|
||||
"sweeper" :{
|
||||
"driver": ["fOchSweeper"]
|
||||
"driver": ["ochFT"]
|
||||
},
|
||||
"shuttle" :{
|
||||
"driver": ["fOchShuttle"],
|
||||
"passenger": ["fOchShuttlePassenger"]
|
||||
"driver": ["ochJL"],
|
||||
"passenger": ["ochJL","ochM2"]
|
||||
},
|
||||
"taxi" :{
|
||||
"driver": ["ochDFHQ","fMultiDisplayOchTaxi"],
|
||||
"passenger": ["ochDFHQ"]
|
||||
},
|
||||
"bus" :{
|
||||
"driver": ["fOchBus","fMultiDisplayOchBus"],
|
||||
"passenger": ["fOchBusPassenger","fOchBusPassengerM2"]
|
||||
"driver": ["ochJL","fMultiDisplayOchBus"],
|
||||
"passenger": ["ochJL"]
|
||||
},
|
||||
"charter" :{
|
||||
"driver": ["ochM1"],
|
||||
@@ -27,13 +27,13 @@
|
||||
"noop" : null,
|
||||
"sweeper" :null,
|
||||
"shuttle" :{
|
||||
"driver": ["fOchShuttle"],
|
||||
"passenger": ["fOchShuttlePassenger"]
|
||||
"driver": ["ochJL"],
|
||||
"passenger": ["ochJL","ochM2"]
|
||||
},
|
||||
"taxi" :null,
|
||||
"bus" :{
|
||||
"driver": ["fOchBus","fMultiDisplayOchBus"],
|
||||
"passenger": ["fOchBusPassenger","fOchBusPassengerM2"]
|
||||
"driver": ["ochJL","fMultiDisplayOchBus"],
|
||||
"passenger": ["ochJL"]
|
||||
},
|
||||
"charter" :{
|
||||
"driver": ["ochM1"],
|
||||
@@ -43,11 +43,11 @@
|
||||
"yantai": {
|
||||
"noop" :null,
|
||||
"sweeper" :{
|
||||
"driver": ["fOchSweeper"]
|
||||
"driver": ["ochFT"]
|
||||
},
|
||||
"shuttle" :{
|
||||
"driver": ["fOchShuttle"],
|
||||
"passenger": ["fOchShuttlePassenger"]
|
||||
"driver": ["ochJL"],
|
||||
"passenger": ["ochJL","ochM2"]
|
||||
},
|
||||
"taxi" :null,
|
||||
"bus" :null,
|
||||
|
||||
@@ -10,7 +10,7 @@ project.dependencies {
|
||||
// Bus乘客端
|
||||
fOchBusPassengerImplementation(rootProject.ext.dependencies.mogoochbus)
|
||||
fOchBusPassengerM1Implementation(rootProject.ext.dependencies.mogoochbus)
|
||||
fOchShuttlePassengerM2Implementation(rootProject.ext.dependencies.mogoochbus)
|
||||
ochM2Implementation(rootProject.ext.dependencies.mogoochbus)
|
||||
|
||||
// taxi司机端
|
||||
fOchTaxiImplementation(rootProject.ext.dependencies.mogoochtaxi)
|
||||
@@ -23,8 +23,8 @@ project.dependencies {
|
||||
fMultiDisplayOchBusImplementation(rootProject.ext.dependencies.mogoochbus)
|
||||
|
||||
//接驳车司乘端
|
||||
fOchShuttleImplementation(rootProject.ext.dependencies.mogoochbus)
|
||||
fOchShuttlePassengerImplementation(rootProject.ext.dependencies.mogoochbus)
|
||||
ochJLImplementation(rootProject.ext.dependencies.mogoochbus)
|
||||
ochJLImplementation(rootProject.ext.dependencies.mogoochbus)
|
||||
|
||||
// taxi司机端
|
||||
fMultiDisplayOchTaxiImplementation(rootProject.ext.dependencies.mogoochtaxi)
|
||||
@@ -33,12 +33,12 @@ project.dependencies {
|
||||
} else {
|
||||
fPadLenovoImplementation (project(':OCH:mogo-och-noop'))
|
||||
// sweeper 清扫车
|
||||
fOchSweeperImplementation (project(':OCH:mogo-och-sweeper'))
|
||||
// fOchSweeperImplementation (project(':OCH:mogo-och-sweeper'))
|
||||
|
||||
// Bus司机端
|
||||
fOchBusImplementation (project(':OCH:mogo-och-bus'))
|
||||
//fOchBusImplementation (project(':OCH:mogo-och-bus'))
|
||||
// Bus乘客端
|
||||
fOchBusPassengerImplementation (project(':OCH:mogo-och-bus-passenger'))
|
||||
//fOchBusPassengerImplementation (project(':OCH:mogo-och-bus-passenger'))
|
||||
|
||||
|
||||
// 包车
|
||||
@@ -57,9 +57,9 @@ project.dependencies {
|
||||
|
||||
// 多屏幕-taxi司机端
|
||||
//接驳车司乘端
|
||||
fOchShuttleImplementation (project(':OCH:mogo-och-shuttle'))
|
||||
fOchShuttlePassengerImplementation (project(':OCH:mogo-och-shuttle-passenger'))
|
||||
fOchShuttlePassengerM2Implementation (project(':OCH:mogo-och-shuttle-passenger'))
|
||||
// ochJLImplementation (project(':OCH:mogo-och-shuttle'))
|
||||
// ochJLImplementation (project(':OCH:mogo-och-shuttle-passenger'))
|
||||
// ochM2Implementation (project(':OCH:mogo-och-shuttle-passenger'))
|
||||
|
||||
// taxi司机端
|
||||
fMultiDisplayOchTaxiImplementation (project(':OCH:mogo-och-taxi'))
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
apply from: "./script/utils.gradle"
|
||||
|
||||
project.android.productFlavors {
|
||||
bus {
|
||||
dimension "product"
|
||||
@@ -10,6 +12,21 @@ project.android.productFlavors {
|
||||
|
||||
// 连接的工控机IP地址
|
||||
buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.102\""
|
||||
|
||||
if(isDriver()){
|
||||
if(isCurrentFlavors("bus")){
|
||||
project.dependencies.add('implementation', project.project(':OCH:mogo-och-bus'))
|
||||
// 构建 是否支持多屏异显异交互
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
}
|
||||
}
|
||||
if(isPassenger()){
|
||||
if(isCurrentFlavors("bus")){
|
||||
project.dependencies.add('implementation', project.project(':OCH:mogo-och-bus-passenger'))
|
||||
// 构建 是否支持多屏异显异交互
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
apply from: "./script/utils.gradle"
|
||||
|
||||
project.android.productFlavors {
|
||||
// 接驳车业务
|
||||
shuttle{
|
||||
@@ -11,5 +13,20 @@ project.android.productFlavors {
|
||||
|
||||
// 连接的工控机IP地址
|
||||
buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.102\""
|
||||
|
||||
if(isDriver()){
|
||||
if(isCurrentFlavors("shuttle")){
|
||||
project.dependencies.add('implementation', project.project(':OCH:mogo-och-shuttle'))
|
||||
// 构建 是否支持多屏异显异交互
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
}
|
||||
}
|
||||
if(isPassenger()){
|
||||
if(isCurrentFlavors("shuttle")){
|
||||
project.dependencies.add('implementation', project.project(':OCH:mogo-och-shuttle-passenger'))
|
||||
// 构建 是否支持多屏异显异交互
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,5 +11,10 @@ project.android.productFlavors {
|
||||
|
||||
// 连接的工控机IP地址
|
||||
buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.102\""
|
||||
|
||||
|
||||
if(isCurrentFlavors("sweeper")){
|
||||
project.dependencies.add('implementation', project.project(':OCH:mogo-och-sweeper'))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,11 +22,15 @@ project.android.productFlavors {
|
||||
if(isDriver()){
|
||||
if(isCurrentFlavors("taxi")){
|
||||
project.dependencies.add('implementation', project.project(':OCH:mogo-och-taxi'))
|
||||
// 在启动的时候把Task给清空
|
||||
manifestPlaceholders.put("ACTIVITY_ROOT",true)
|
||||
}
|
||||
}
|
||||
if(isPassenger()){
|
||||
if(isCurrentFlavors("taxi")){
|
||||
project.dependencies.add('implementation', project.project(':OCH:mogo-och-taxi-passenger'))
|
||||
// 在启动的时候把Task给清空
|
||||
manifestPlaceholders.put("ACTIVITY_ROOT",false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
project.android.productFlavors {
|
||||
// 衡阳-联想Pad-网约车-小巴车-乘客端
|
||||
fOchBusPassenger {
|
||||
dimension "vehicle"
|
||||
// 和 och/mogo-och-bus-passenger 的flavors的jinlvvan对应
|
||||
matchingFallbacks = ['jinlvvan']
|
||||
|
||||
|
||||
//高德地图鉴权信息
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL : "JL",
|
||||
ACTIVITY_ROOT:true,
|
||||
SCREEN_ORIENTATION: "landscape"
|
||||
]
|
||||
|
||||
// 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"JL\""
|
||||
|
||||
// 构建的是否要动态更换模型
|
||||
buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'false'
|
||||
// 是否需要重写状态栏
|
||||
buildConfigField 'boolean', 'IS_REPLACE_STATUSVIEW', 'false'
|
||||
|
||||
|
||||
// 构建 是否支持多屏异显异交互
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true'
|
||||
|
||||
//Bus不能启动自驾的档位
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}'
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
project.android.productFlavors {
|
||||
// 衡阳-联想Pad-网约车-小巴车
|
||||
fOchShuttle {
|
||||
dimension "vehicle"
|
||||
// 和 och/mogo-och-bus-passenger 的flavors的shuttle对应
|
||||
matchingFallbacks = ['shuttle']
|
||||
|
||||
|
||||
//高德地图鉴权信息
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL : "JL",
|
||||
ACTIVITY_ROOT: true,
|
||||
SCREEN_ORIENTATION: "landscape"
|
||||
]
|
||||
|
||||
// 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"JL\""
|
||||
|
||||
// 构建的是否要动态更换模型
|
||||
buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'true'
|
||||
// 是否需要重写状态栏
|
||||
buildConfigField 'boolean', 'IS_REPLACE_STATUSVIEW', 'false'
|
||||
|
||||
|
||||
// 构建 是否支持多屏异显异交互
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
|
||||
//Bus不能启动自驾的档位
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}'
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
project.android.productFlavors {
|
||||
// 衡阳-联想Pad-网约车-小巴车-乘客端
|
||||
fOchShuttlePassenger {
|
||||
|
||||
dimension "vehicle"
|
||||
matchingFallbacks = ['jinlvvan']
|
||||
|
||||
|
||||
//高德地图鉴权信息
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL: "JL",
|
||||
ACTIVITY_ROOT : true,
|
||||
// Activity的朝向
|
||||
SCREEN_ORIENTATION: "landscape"
|
||||
]
|
||||
|
||||
// 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"JL\""
|
||||
|
||||
// 构建的是否要动态更换模型
|
||||
buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'true'
|
||||
// 是否需要重写状态栏
|
||||
buildConfigField 'boolean', 'IS_REPLACE_STATUSVIEW', 'false'
|
||||
|
||||
|
||||
// 构建 是否支持多屏异显异交互
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true'
|
||||
|
||||
//Bus不能启动自驾的档位
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}'
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ apply from: "./script/utils.gradle"
|
||||
|
||||
project.android.productFlavors {
|
||||
|
||||
// 衡阳-联想Pad-网约车-出租车
|
||||
// 东风红旗
|
||||
ochDFHQ {
|
||||
dimension "vehicle"
|
||||
|
||||
@@ -24,15 +24,6 @@ project.android.productFlavors {
|
||||
//Taxi不能启动自驾的档位
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}'
|
||||
|
||||
|
||||
if(isDriver()){
|
||||
// 在启动的时候把Task给清空
|
||||
manifestPlaceholders.put("ACTIVITY_ROOT",true)
|
||||
}
|
||||
if(isPassenger()){
|
||||
// 在启动的时候把Task给清空
|
||||
manifestPlaceholders.put("ACTIVITY_ROOT",false)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
project.android.productFlavors {
|
||||
// 衡阳-联想Pad-网约车-小巴车
|
||||
fOchSweeper {
|
||||
// 福田车
|
||||
ochFT {
|
||||
dimension "vehicle"
|
||||
|
||||
// 配置AndroidManifest.xml中用到的参数
|
||||
@@ -1,6 +1,6 @@
|
||||
project.android.productFlavors {
|
||||
// 衡阳-联想Pad-网约车-小巴车
|
||||
fOchBus {
|
||||
ochJL {
|
||||
dimension "vehicle"
|
||||
matchingFallbacks = ['jinlvvan']
|
||||
|
||||
@@ -22,9 +22,6 @@ project.android.productFlavors {
|
||||
// 是否需要重写状态栏
|
||||
buildConfigField 'boolean', 'IS_REPLACE_STATUSVIEW', 'false'
|
||||
|
||||
// 构建 是否支持多屏异显异交互
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
|
||||
//Bus不能启动自驾的档位
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}'
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
apply from: "./script/utils.gradle"
|
||||
|
||||
project.android.productFlavors {
|
||||
// 衡阳-联想Pad-网约车-小巴车
|
||||
// 金旅M1车
|
||||
ochM1 {
|
||||
dimension "vehicle"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
project.android.productFlavors {
|
||||
// 衡阳-联想Pad-网约车-小巴车-乘客端
|
||||
fOchShuttlePassengerM2 {
|
||||
ochM2 {
|
||||
dimension "vehicle"
|
||||
// 和 och/mogo-och-bus-passenger 的flavors的m2对应
|
||||
matchingFallbacks = ['m2']
|
||||
@@ -8,8 +8,8 @@ project.android.productFlavors {
|
||||
|
||||
//高德地图鉴权信息
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL : "M2",
|
||||
ACTIVITY_ROOT:true,
|
||||
CHANNEL_VALUE_TAIL: "M2",
|
||||
ACTIVITY_ROOT : true,
|
||||
SCREEN_ORIENTATION: "portrait"
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user