[6.10.0]
[fea] [删除车型维度]
This commit is contained in:
@@ -15,7 +15,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE
|
||||
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
|
||||
@@ -70,7 +70,7 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
|
||||
DriverM1Model.get().release()
|
||||
}
|
||||
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum?) {
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus?) {
|
||||
d(SceneConstant.M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin())
|
||||
if(LoginStatusManager.isLogin()){
|
||||
// 查询服务状态
|
||||
|
||||
@@ -39,7 +39,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg
|
||||
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation
|
||||
import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
|
||||
@@ -47,7 +47,6 @@ import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotManager
|
||||
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager
|
||||
import com.mogo.och.bridge.autopilot.location.OchLocationManager
|
||||
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
|
||||
import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.LedScreenManager
|
||||
@@ -169,7 +168,7 @@ object CharterPassengerModel {
|
||||
*/
|
||||
private fun listenerLoginStatus() {
|
||||
LoginStatusManager.addListener(TAG,object : ILoginCallback{
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum?) {
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus?) {
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
// 1、打开视频播放、
|
||||
// 2 、打开空调暖风机灯设置页面
|
||||
|
||||
@@ -1,57 +1,67 @@
|
||||
package com.mogo.och.biz.login
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HdMapBuildConfig
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.och.biz.login.bean.LoginInfo
|
||||
import com.mogo.och.biz.login.callback.ILoginViewCallback
|
||||
import com.mogo.och.biz.login.model.LoginModel
|
||||
import com.mogo.och.biz.login.ui.LoginFragment
|
||||
import com.mogo.och.biz.login.ui.LoginPassengerFragment
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.login.LoginInfo
|
||||
import com.mogo.och.common.module.biz.login.LoginService
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.RoleEnum
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.biz.login.EnumRole
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.LoginInfo2Client
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
import com.mogo.och.common.module.utils.FlavorUtils
|
||||
|
||||
/**
|
||||
* 网约车小巴业务实现入口
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
@Route(path = OchCommonConst.BIZ_LOGIN)
|
||||
class LoginProvider : LoginService {
|
||||
|
||||
private val tag = LoginProvider::class.java.simpleName
|
||||
private var loginFragment: Fragment?=null
|
||||
private var loginStatus: LoginStatusEnum = LoginStatusEnum.None
|
||||
private var businessEnum = Product.NONE
|
||||
private var openOrderStatusEnum: OpenOrderStatusEnum = OpenOrderStatusEnum.None
|
||||
private var carModel: Carmodel = Carmodel.T2
|
||||
private var loginInfo: LoginInfo? = null
|
||||
private val tag = M_OCHCOMMON +LoginProvider::class.java.simpleName
|
||||
// 登录页面
|
||||
private var loginFragment: Fragment? = null
|
||||
|
||||
// 环境监测+业务展示和跳转
|
||||
private val changeBusinessType = object : ILanMessageListener<LoginInfo2Client> {
|
||||
override fun targetLan(): Class<LoginInfo2Client> {
|
||||
return LoginInfo2Client::class.java
|
||||
}
|
||||
|
||||
override fun onLanMsgReceived(first: LoginInfo2Client?) {
|
||||
first?.let {
|
||||
if (LoginServiceManager.checkAllEnv(it.project,it.env)) {
|
||||
d(tag,"从司机屏获取账号信息:${it}")
|
||||
val driverLoginInfo = GsonUtils.fromJson(it.loginInfo, LoginInfo::class.java)
|
||||
LoginServiceManager.setLoginInfo(driverLoginInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private val loginInfoKey = "LOGININFOKEY"
|
||||
|
||||
override fun init(context: Context) {
|
||||
CallerLogger.d(tag, "LoginProvider init")
|
||||
d(tag, "登录模块 init")
|
||||
loginFragment = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginFragment()
|
||||
} else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
@@ -59,18 +69,24 @@ class LoginProvider : LoginService {
|
||||
} else {
|
||||
LoginFragment()
|
||||
}
|
||||
// 乘客屏监听司机端发送的业务修改通知(
|
||||
LanSocketManager.registerSocketMessageListener(
|
||||
DPMsgType.TYPE_LOGIN_INFO.type,
|
||||
changeBusinessType
|
||||
)
|
||||
}
|
||||
|
||||
override fun getFragment(): Fragment {
|
||||
CallerLogger.d(tag, "getFragment:${loginFragment}")
|
||||
if(loginFragment==null){
|
||||
loginFragment = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginFragment()
|
||||
} else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginPassengerFragment()
|
||||
} else {
|
||||
LoginFragment()
|
||||
}
|
||||
d(tag, "getFragment:${loginFragment}")
|
||||
if (loginFragment == null) {
|
||||
loginFragment =
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginFragment()
|
||||
} else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
LoginPassengerFragment()
|
||||
} else {
|
||||
LoginFragment()
|
||||
}
|
||||
}
|
||||
return loginFragment!!
|
||||
}
|
||||
@@ -84,175 +100,74 @@ class LoginProvider : LoginService {
|
||||
return View(context)
|
||||
}
|
||||
|
||||
override fun setLoginStatus(status: Int) {
|
||||
CallerLogger.d(tag, "setLoginStatus:${status}")
|
||||
when (status) {
|
||||
0 -> {
|
||||
setLoginStatus(LoginStatusEnum.Logout)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
setLoginStatus(LoginStatusEnum.Login)
|
||||
}
|
||||
|
||||
else -> {
|
||||
setLoginStatus(LoginStatusEnum.None)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun queryLoginStatusByNet(readCatche:Boolean) {
|
||||
CallerLogger.d(tag, "queryLoginStatusByNet")
|
||||
Log.d("登录","设置源:queryLoginStatusByNet")
|
||||
LoginModel.queryCarStatus(readCatche)
|
||||
override fun queryLoginStatusByNet(readCatche: Boolean) {
|
||||
LoginServiceManager.queryLoginStatusByNet(readCatche)
|
||||
}
|
||||
|
||||
override fun loginOut() {
|
||||
CallerLogger.d(tag, "loginOut ")
|
||||
LoginModel.logout()
|
||||
}
|
||||
|
||||
override fun checkBusiness(businessType: Int): Boolean {
|
||||
val businessInfo = FlavorUtils.getBusinessInfo(businessType)
|
||||
if(businessInfo.isEmpty()){
|
||||
return true
|
||||
}
|
||||
if (loginFragment is ILoginViewCallback) {
|
||||
UiThreadHandler.post({
|
||||
if (loginFragment?.isAdded==true) {
|
||||
(loginFragment as ILoginViewCallback).showErrorInfo(businessInfo)
|
||||
}
|
||||
},UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
override fun checkAllEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
): Boolean {
|
||||
|
||||
val checkAllEnv = FlavorUtils.checkAllEnv(projectType, envType, vehicleType, businessType)
|
||||
if(checkAllEnv.isEmpty()){
|
||||
|
||||
}else{
|
||||
if (loginFragment is ILoginViewCallback) {
|
||||
changeStatus(checkAllEnv)
|
||||
UiThreadHandler.post({
|
||||
changeStatus(checkAllEnv)
|
||||
if (loginFragment?.isAdded==true) {
|
||||
(loginFragment as ILoginViewCallback).checkAllEnv(checkAllEnv)
|
||||
}
|
||||
},UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
|
||||
return checkAllEnv.isEmpty()
|
||||
LoginServiceManager.loginOut()
|
||||
}
|
||||
|
||||
override fun changeStatus(currentStatus: String) {
|
||||
if (loginFragment?.isAdded==true) {
|
||||
if (loginFragment?.isAdded == true) {
|
||||
(loginFragment as ILoginViewCallback).updateStatus(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun setLoginInfo(loginInfo: LoginInfo) {
|
||||
CallerLogger.d(tag, "setLoginInfo:${loginInfo}")
|
||||
if(this.loginInfo!=loginInfo){
|
||||
this.loginInfo = loginInfo
|
||||
OchChainLogManager.writeChainLog("登录信息",loginInfo.toString())
|
||||
}
|
||||
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchLoginNo(loginInfo.phone)
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchCarModel(Carmodel.getCarModelFromServerName(loginInfo.carModel,loginInfo.tenantId))
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchPlateNumber(loginInfo.plateNumber)
|
||||
CallerEagleBaseFunctionCall4OchManager.updateTenantId(loginInfo.tenantId)
|
||||
|
||||
val carModel = Carmodel.getCarModelFromServerName(LoginStatusManager.getLoginInfo()?.carModel,loginInfo.tenantId)
|
||||
if(this.carModel!=carModel){
|
||||
this.carModel = carModel
|
||||
LoginStatusManager.invokeCarModelChange(this.carModel)
|
||||
}
|
||||
HdMapBuildConfig.currentCarVrIconRes = carModel.rawValue
|
||||
|
||||
override fun getOchBizInfo(): OchBizInfo? {
|
||||
d(tag, "getOchBizInfo")
|
||||
return LoginServiceManager.getOchBizInfo()
|
||||
}
|
||||
|
||||
override fun getLoginInfo(): LoginInfo? {
|
||||
CallerLogger.d(tag, "getLoginInfo")
|
||||
return loginInfo
|
||||
override fun getOchCarInfo(): OchCarInfo? {
|
||||
d(tag, "getOchCarInfo")
|
||||
return LoginServiceManager.getOchCarInfo()
|
||||
}
|
||||
|
||||
override fun getPurpose(): RoleEnum {
|
||||
CallerLogger.d(tag, "getPurpose")
|
||||
return RoleEnum.valueOf(loginInfo?.purpose)
|
||||
override fun getOchLoginInfo(): OchLoginInfo? {
|
||||
d(tag, "getOchLoginInfo")
|
||||
return LoginServiceManager.getOchLoginInfo()
|
||||
}
|
||||
|
||||
override fun getPurpose(): EnumRole {
|
||||
d(tag, "getPurpose")
|
||||
return LoginServiceManager.getPurpose()
|
||||
}
|
||||
|
||||
override fun isLogin(): Boolean {
|
||||
CallerLogger.d(tag, "isLogin:${loginStatus == LoginStatusEnum.Login}")
|
||||
return loginStatus == LoginStatusEnum.Login
|
||||
return LoginServiceManager.isLogin()
|
||||
}
|
||||
|
||||
override fun getLoginStatus(): LoginStatusEnum {
|
||||
CallerLogger.d(tag, "getLoginStatus:${loginStatus}")
|
||||
return loginStatus
|
||||
override fun getLoginStatus(): EnumLoginStatus {
|
||||
return LoginServiceManager.getLoginStatuType()
|
||||
}
|
||||
|
||||
override fun getCarModel(): Carmodel {
|
||||
CallerLogger.d(tag, "getCarModel:${carModel}")
|
||||
return carModel
|
||||
override fun getCarModelType(): Carmodel {
|
||||
return LoginServiceManager.getCarModelType()
|
||||
}
|
||||
|
||||
|
||||
override fun setLoginStatus(loginStatus: LoginStatusEnum) {
|
||||
CallerLogger.d(tag, "setLoginStatus:${loginStatus}----old${this.loginStatus}")
|
||||
if (loginStatus != this.loginStatus) {
|
||||
OchChainLogManager.writeChainLog("登录状态变化","${this.loginStatus}-->${loginStatus}");
|
||||
this.loginStatus = loginStatus
|
||||
Log.d("登录","设置源:invokeLoginStatusChange")
|
||||
LoginStatusManager.invokeLoginStatusChange(loginStatus)
|
||||
}
|
||||
override fun getProductType(): Product {
|
||||
return LoginServiceManager.getProductType()
|
||||
}
|
||||
|
||||
|
||||
override fun setBusinessType(type: Int) {
|
||||
CallerLogger.d(tag, "setBusinessType:${type}")
|
||||
if (businessEnum.code != type) {
|
||||
this.businessEnum = Product.valueOf(type)
|
||||
LoginStatusManager.invokeLBusinessTypeChange(this.businessEnum)
|
||||
}
|
||||
override fun getVehicleType(): Vehicle {
|
||||
return LoginServiceManager.getVehicleType()
|
||||
}
|
||||
|
||||
override fun getBusinessType(): Product {
|
||||
CallerLogger.d(tag, "getBusinessType")
|
||||
return businessEnum
|
||||
override fun sendLogin2Client() {
|
||||
LoginServiceManager.sendLogin2Client(1)
|
||||
}
|
||||
|
||||
override fun setOpenOrderStatusType(type: Int) {
|
||||
CallerLogger.d(tag, "setOpenOrderStatusType:${type}")
|
||||
if (openOrderStatusEnum.code != type) {
|
||||
OchChainLogManager.writeChainLog("接单状态变化","${this.openOrderStatusEnum}-->${OpenOrderStatusEnum.valueOf(type)}");
|
||||
this.openOrderStatusEnum = OpenOrderStatusEnum.valueOf(type)
|
||||
LoginStatusManager.invokeLOpenOrderStatusChange(this.openOrderStatusEnum)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getOpenOrderStatusType(): OpenOrderStatusEnum {
|
||||
CallerLogger.d(tag, "getOpenOrderStatusType:${openOrderStatusEnum}")
|
||||
return openOrderStatusEnum
|
||||
override fun getOpenOrderStatusType(): EnumOpenOrderStatus {
|
||||
return LoginServiceManager.getOpenOrderStatusType()
|
||||
}
|
||||
|
||||
override fun isOpenOrderType(): Boolean {
|
||||
CallerLogger.d(tag, "isOpenOrderType:${openOrderStatusEnum == OpenOrderStatusEnum.Ordering}")
|
||||
return openOrderStatusEnum == OpenOrderStatusEnum.Ordering
|
||||
return LoginServiceManager.isOpenOrderType()
|
||||
}
|
||||
|
||||
override fun removeLoginInfo() {
|
||||
this.loginInfo = null
|
||||
OchSPManager.remove(loginInfoKey)
|
||||
LoginServiceManager.removeLoginInfo()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,485 @@
|
||||
package com.mogo.och.biz.login
|
||||
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.env.Env
|
||||
import com.mogo.commons.env.EnvUtils
|
||||
import com.mogo.commons.env.Project
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.commons.screen.ScreenHelper
|
||||
import com.mogo.commons.utils.MogoAnalyticUtils
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HdMapBuildConfig
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.ActivityUtils
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.biz.login.callback.ILoginViewCallback
|
||||
import com.mogo.och.biz.login.model.LoginModel
|
||||
import com.mogo.och.biz.login.bean.LoginInfo
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.EnumRole
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.manager.loop.LoopInfo
|
||||
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.LoginInfo2Client
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.utils.FlavorUtils
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
/**
|
||||
* 网约车小巴业务实现入口
|
||||
*/
|
||||
object LoginServiceManager {
|
||||
|
||||
private val tag = M_OCHCOMMON + "LoginManager"
|
||||
private var TAGLoopStatus = "LoginStatusManagerLoop"
|
||||
|
||||
// 登录页面
|
||||
private var loginFragment: Fragment? = null
|
||||
|
||||
// 登录状态
|
||||
private var loginStatus: EnumLoginStatus by Delegates.observable(EnumLoginStatus.None) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("登录状态变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "登录状态变化:${oldValue}-->${newValue}")
|
||||
if (newValue == EnumLoginStatus.Login && AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
BizLoopManager.setLoopFunction(
|
||||
TAGLoopStatus,
|
||||
LoopInfo(60 * 2, ::queryLoginStatusByNet, immediately = false, scheduler = Schedulers.io())
|
||||
)
|
||||
} else {
|
||||
BizLoopManager.removeLoopFunction(TAGLoopStatus)
|
||||
}
|
||||
LoginStatusManager.invokeLoginStatusChange(loginStatus)
|
||||
}
|
||||
}
|
||||
|
||||
// 业务模式
|
||||
private var productEnum: Product by Delegates.observable(Product.NONE) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("业务模式发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "业务模式发生变化:${oldValue}-->${newValue}")
|
||||
onProductChange(newValue)
|
||||
LoginStatusManager.invokeLProductChange(newValue)
|
||||
CallerEagleBaseFunctionCall4OchManager.onOchProductChange()
|
||||
}
|
||||
}
|
||||
|
||||
// 车型
|
||||
private var vehicleEnum: Vehicle by Delegates.observable(Vehicle.NONE) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("车型发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "车型发生变化:${oldValue}-->${newValue}")
|
||||
onVehicleChange(newValue)
|
||||
LoginStatusManager.invokeLVehicleChange(newValue)
|
||||
CallerEagleBaseFunctionCall4OchManager.onOchVehicleChange()
|
||||
}
|
||||
}
|
||||
|
||||
// 接单状态
|
||||
private var openOrderStatusEnum: EnumOpenOrderStatus by Delegates.observable(EnumOpenOrderStatus.None) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("接单状态变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "接单状态变化:${oldValue}-->${newValue}")
|
||||
LoginStatusManager.invokeOpenOrderStatusChange(this.openOrderStatusEnum)
|
||||
}
|
||||
}
|
||||
|
||||
// 车模
|
||||
private var carModel: Carmodel by Delegates.observable(Carmodel.T2) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("车辆模型发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "车辆模型发生变化:${oldValue}-->${newValue}")
|
||||
HdMapBuildConfig.currentCarVrIconRes = newValue.rawValue
|
||||
LoginStatusManager.invokeCarModelChange(newValue)
|
||||
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchCarModel(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
private var phoneNum: String by Delegates.observable("") { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("手机号发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "手机号发生变化:${oldValue}-->${newValue}")
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchLoginNo(newValue)
|
||||
}
|
||||
}
|
||||
private var plateNumber: String by Delegates.observable("") { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("车牌号发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "车牌号发生变化:${oldValue}-->${newValue}")
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchPlateNumber(newValue)
|
||||
}
|
||||
}
|
||||
private var tenantId: Long by Delegates.observable(0L) { _, oldValue, newValue ->
|
||||
if (oldValue != newValue) {
|
||||
OchChainLogManager.writeChainLog("租户Id发生变化", "${oldValue}-->${newValue}")
|
||||
Log.d(tag, "租户Id发生变化:${oldValue}-->${newValue}")
|
||||
LoginStatusManager.invokeTenantIdChange(newValue)
|
||||
CallerEagleBaseFunctionCall4OchManager.updateTenantId(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 登录信息
|
||||
private var loginInfo: LoginInfo? = null
|
||||
|
||||
// 登录账号信息
|
||||
private var ochLoginInfo: OchLoginInfo? = null
|
||||
|
||||
// 车辆信息
|
||||
private var ochCarInfo: OchCarInfo? = null
|
||||
|
||||
// 业务信息
|
||||
private var ochBizInfo: OchBizInfo? = null
|
||||
|
||||
private val loginInfoKey = "LOGININFOKEY"
|
||||
|
||||
private const val OCHLOGININFOKEY = "OCHLOGININFOKEY"
|
||||
private const val OCHBIZINFOKEY = "OCHBIZINFOKEY"
|
||||
private const val OCHCARINFOKEY = "OCHCARINFOKEY"
|
||||
|
||||
private const val OCHPRODUCT = "OCHPRODUCT"
|
||||
private const val OCHVEHICLE = "OCHVEHICLE"
|
||||
|
||||
init {
|
||||
initProductAndVehicle()
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看是否提前设置上
|
||||
*/
|
||||
private fun initProductAndVehicle() {
|
||||
productEnum = AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode)
|
||||
vehicleEnum =AppIdentityModeUtils.getVehicle(FunctionBuildConfig.appIdentityMode)
|
||||
|
||||
}
|
||||
|
||||
fun queryLoginStatusByNet() {
|
||||
LoginModel.queryCarStatus(false)
|
||||
}
|
||||
|
||||
fun queryLoginStatusByNet(readCatche: Boolean) {
|
||||
d(tag, "queryLoginStatusByNet")
|
||||
LoginModel.queryCarStatus(readCatche)
|
||||
}
|
||||
|
||||
fun loginOut() {
|
||||
d(tag, "loginOut ")
|
||||
LoginModel.logout()
|
||||
}
|
||||
|
||||
fun checkAllEnv(
|
||||
projectType: Project,
|
||||
envType: Env,
|
||||
): Boolean {
|
||||
val checkAllEnv = FlavorUtils.checkAllEnv(projectType, envType)
|
||||
if (checkAllEnv.isNotEmpty()) {
|
||||
if (loginFragment is ILoginViewCallback) {
|
||||
changeStatus(checkAllEnv)
|
||||
UiThreadHandler.post({
|
||||
changeStatus(checkAllEnv)
|
||||
if (loginFragment?.isAdded == true) {
|
||||
(loginFragment as ILoginViewCallback).checkAllEnv(checkAllEnv)
|
||||
}
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
|
||||
return checkAllEnv.isEmpty()
|
||||
}
|
||||
|
||||
fun changeStatus(currentStatus: String) {
|
||||
if (loginFragment?.isAdded == true) {
|
||||
(loginFragment as ILoginViewCallback).updateStatus(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置登录信息
|
||||
* 1、乘客屏从司机端获取到登录信息
|
||||
* 2、支持老版本数据升级
|
||||
* 3、
|
||||
*/
|
||||
fun setLoginInfo(loginInfo: LoginInfo) {
|
||||
d(tag, "setLoginInfo:${loginInfo}")
|
||||
if (this.loginInfo != loginInfo) {
|
||||
this.loginInfo = loginInfo
|
||||
saveInfo2SP(loginInfoKey, loginInfo)
|
||||
sendLogin2Client(1)
|
||||
|
||||
val ochLoginInfo = loginInfo.toOchLoginInfo()
|
||||
if (ochLoginInfo != this.ochLoginInfo) {
|
||||
this.ochLoginInfo = ochLoginInfo
|
||||
saveInfo2SP(OCHLOGININFOKEY, ochLoginInfo)
|
||||
}
|
||||
val ochCarInfo = loginInfo.toOchCarInfo()
|
||||
if (this.ochCarInfo != ochCarInfo) {
|
||||
this.ochCarInfo = ochCarInfo
|
||||
saveInfo2SP(OCHCARINFOKEY, ochCarInfo)
|
||||
}
|
||||
val ochBizInfo = loginInfo.toOchBizInfo()
|
||||
if (this.ochBizInfo != ochBizInfo) {
|
||||
this.ochBizInfo = ochBizInfo
|
||||
saveInfo2SP(OCHBIZINFOKEY, ochBizInfo)
|
||||
}
|
||||
|
||||
OchChainLogManager.writeChainLog("登录信息", loginInfo.toString())
|
||||
}
|
||||
// 设置业务模式
|
||||
setProductType(Product.valueOf(loginInfo.businessType))
|
||||
// 设置登录状态
|
||||
setLoginStatusType(EnumLoginStatus.valueOf(loginInfo.driverStatus))
|
||||
// 设置接单状态
|
||||
setOpenOrderStatusType(EnumOpenOrderStatus.valueOf(loginInfo.servingStatus))
|
||||
|
||||
// 设置车型
|
||||
setVehicleType(Vehicle.getCarVehicleFromServerName(loginInfo.carModel))
|
||||
|
||||
// 设置车辆模型
|
||||
setCarModelType(Carmodel.getCarModelFromServerName(loginInfo.carModel, loginInfo.tenantId))
|
||||
|
||||
this.phoneNum = loginInfo.phone ?: ""
|
||||
this.plateNumber = loginInfo.plateNumber ?: ""
|
||||
this.tenantId = loginInfo.tenantId
|
||||
|
||||
}
|
||||
|
||||
fun getLoginInfo(): LoginInfo? {
|
||||
d(tag, "getLoginInfo")
|
||||
if (loginInfo == null) {
|
||||
this.loginInfo = getInfoFromSp<LoginInfo>(loginInfoKey)
|
||||
}
|
||||
return loginInfo
|
||||
}
|
||||
|
||||
fun getOchBizInfo(): OchBizInfo? {
|
||||
supply6100()
|
||||
d(tag, "getOchBizInfo")
|
||||
if (ochBizInfo == null) {
|
||||
this.ochBizInfo = getInfoFromSp<OchBizInfo>(OCHBIZINFOKEY)
|
||||
}
|
||||
return ochBizInfo
|
||||
}
|
||||
|
||||
fun getOchCarInfo(): OchCarInfo? {
|
||||
supply6100()
|
||||
d(tag, "getOchCarInfo")
|
||||
if (ochCarInfo == null) {
|
||||
this.ochCarInfo = getInfoFromSp<OchCarInfo>(OCHCARINFOKEY)
|
||||
}
|
||||
return ochCarInfo
|
||||
}
|
||||
|
||||
fun getOchLoginInfo(): OchLoginInfo? {
|
||||
supply6100()
|
||||
d(tag, "getOchLoginInfo")
|
||||
if (ochLoginInfo == null) {
|
||||
this.ochLoginInfo = getInfoFromSp<OchLoginInfo>(OCHLOGININFOKEY)
|
||||
}
|
||||
return ochLoginInfo
|
||||
}
|
||||
|
||||
fun getPurpose(): EnumRole {
|
||||
d(tag, "getPurpose")
|
||||
return EnumRole.valueOf(loginInfo?.purpose)
|
||||
}
|
||||
|
||||
fun isLogin(): Boolean {
|
||||
d(tag, "isLogin:${loginStatus == EnumLoginStatus.Login}")
|
||||
return loginStatus == EnumLoginStatus.Login
|
||||
}
|
||||
|
||||
fun getLoginStatuType(): EnumLoginStatus {
|
||||
d(tag, "getLoginStatus:${loginStatus}")
|
||||
return loginStatus
|
||||
}
|
||||
|
||||
fun setCarModelType(carModel: Carmodel) {
|
||||
d(tag, "setCarModel:${carModel}")
|
||||
this.carModel = carModel
|
||||
}
|
||||
|
||||
fun getCarModelType(): Carmodel {
|
||||
d(tag, "getCarModel:${carModel}")
|
||||
return this.carModel
|
||||
}
|
||||
|
||||
fun setLoginStatusType(loginStatus: EnumLoginStatus) {
|
||||
d(tag, "setLoginStatus:${this.loginStatus}---->${loginStatus}")
|
||||
this.loginStatus = loginStatus
|
||||
}
|
||||
|
||||
|
||||
fun setProductType(product: Product) {
|
||||
d(tag, "setProductType:${product}")
|
||||
this.productEnum = product
|
||||
}
|
||||
|
||||
fun getProductType(): Product {
|
||||
d(tag, "getBusinessType:${productEnum}")
|
||||
return productEnum
|
||||
}
|
||||
|
||||
fun setVehicleType(vehicle: Vehicle) {
|
||||
d(tag, "setVehicleType:${vehicle}")
|
||||
this.vehicleEnum = vehicle
|
||||
}
|
||||
|
||||
fun getVehicleType(): Vehicle {
|
||||
d(tag, "getVehicleType:${vehicleEnum}")
|
||||
return vehicleEnum
|
||||
}
|
||||
|
||||
fun setOpenOrderStatusType(type: EnumOpenOrderStatus) {
|
||||
d(tag, "setOpenOrderStatusType:${type}")
|
||||
this.openOrderStatusEnum = type
|
||||
}
|
||||
|
||||
fun getOpenOrderStatusType(): EnumOpenOrderStatus {
|
||||
d(tag, "getOpenOrderStatusType:${openOrderStatusEnum}")
|
||||
return openOrderStatusEnum
|
||||
}
|
||||
|
||||
fun isOpenOrderType(): Boolean {
|
||||
d(
|
||||
tag,
|
||||
"isOpenOrderType:${openOrderStatusEnum == EnumOpenOrderStatus.Ordering}"
|
||||
)
|
||||
return openOrderStatusEnum == EnumOpenOrderStatus.Ordering
|
||||
}
|
||||
|
||||
fun removeLoginInfo() {
|
||||
this.loginInfo = null
|
||||
OchSPManager.remove(loginInfoKey)
|
||||
}
|
||||
|
||||
|
||||
private fun saveInfo2SP(key: String, value: Any) {
|
||||
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
|
||||
val loginInfo4Json = GsonUtils.toJson(value)
|
||||
OchSPManager.putString(key, timeText + loginInfo4Json)
|
||||
}
|
||||
|
||||
inline fun <reified T> getInfoFromSp(key: String): T? {
|
||||
val logingInfoJson = OchSPManager.getString(key)
|
||||
logingInfoJson?.let { logininfo ->
|
||||
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
|
||||
if (logininfo.startsWith(timeText)) {
|
||||
val json = logingInfoJson.replace(timeText, "")
|
||||
val oldLoginInfo = GsonUtils.fromJson(json, T::class.java)
|
||||
return oldLoginInfo
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
private fun supply6100() {
|
||||
val loginInfo = getLoginInfo()
|
||||
if (ochCarInfo == null && loginInfo != null) {
|
||||
setLoginInfo(loginInfo)
|
||||
}
|
||||
}
|
||||
|
||||
private fun onProductChange(businessEnum: Product){
|
||||
val (_, identity, model) = AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode)
|
||||
when (businessEnum) {
|
||||
Product.NONE -> {}
|
||||
Product.TAXI -> {
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.TAXI}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.TAXI)
|
||||
}
|
||||
|
||||
Product.BUS ->{
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.BUS}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.BUS)
|
||||
}
|
||||
|
||||
Product.SHUTTLE -> {
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.SHUTTLE}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.SHUTTLE)
|
||||
}
|
||||
|
||||
Product.CHARTER -> {
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.CHARTER}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.CHARTER)
|
||||
}
|
||||
|
||||
Product.SCHEDULED -> {
|
||||
FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.SCHEDULED}_${identity}_${model}"
|
||||
OchSPManager.putString(OCHPRODUCT,AppIdentityModeUtils.SCHEDULED)
|
||||
}
|
||||
}
|
||||
ScreenHelper.setScreenConfig(AbsMogoApplication.getApp())
|
||||
CallerDevaToolsManager.updateAppChannel()
|
||||
// 加入启动统计
|
||||
val mStartParams: HashMap<String, Any> = HashMap()
|
||||
mStartParams["start_time"] = TimeUtils.getNowMills()
|
||||
mStartParams["app_version"] = AppUtils.getAppVersionName()
|
||||
mStartParams["app_identity_mode"] = FunctionBuildConfig.appIdentityMode
|
||||
MogoAnalyticUtils.track("app_start_time", mStartParams)
|
||||
}
|
||||
|
||||
private fun onVehicleChange(vehicle: Vehicle) {
|
||||
val tempInfo = FunctionBuildConfig.appIdentityMode
|
||||
val (product, identity, model) = AppIdentityModeUtils.getInfo(tempInfo)
|
||||
FunctionBuildConfig.appIdentityMode = "${product}_${identity}_${vehicle.code}"
|
||||
OchSPManager.putString(OCHVEHICLE,vehicle.code)
|
||||
ScreenHelper.setScreenConfig(AbsMogoApplication.getApp())
|
||||
|
||||
if (vehicle == Vehicle.B2 && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
BizLoopManager.runInMainThread{
|
||||
ActivityUtils.getTopActivity().requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT
|
||||
}
|
||||
}
|
||||
|
||||
CallerDevaToolsManager.updateAppChannel()
|
||||
OchChainLogManager.writeChainLogInit("车辆信息","修改车型${tempInfo}--->${FunctionBuildConfig.appIdentityMode}")
|
||||
}
|
||||
|
||||
/**
|
||||
* 向乘客端发送登录信息
|
||||
*/
|
||||
fun sendLogin2Client(count: Int) {
|
||||
if(count>3){
|
||||
return
|
||||
}
|
||||
if (loginInfo==null) {
|
||||
RxUtils.createSubscribeOnOwnThread {
|
||||
sendLogin2Client(count+1)
|
||||
}
|
||||
}else{
|
||||
val toJson = GsonUtils.toJson(loginInfo)
|
||||
val msg = LoginInfo2Client(toJson,ProjectUtils.getProjectType(),EnvUtils.getEnvType())
|
||||
LanSocketManager.sendMsgToClient(msg)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mogo.och.biz.login.bean;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.common.module.biz.login.LoginInfo;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
package com.mogo.och.biz.login.bean
|
||||
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import java.util.Objects
|
||||
|
||||
class LoginInfo {
|
||||
var driverStatus: Int = 0 //1登录,0登出
|
||||
var servingStatus: Int = 0 //1接单中,0暂停接单
|
||||
var businessType: Int = 0 //9: taxi. 10: bus公交 11:接驳 13:包车
|
||||
var orderNo: String? = null
|
||||
var purpose: Int = 0 // 1 运营, 2 测试, 3演示
|
||||
var sn: String? = null
|
||||
var plateNumber: String? = null //车牌号
|
||||
var phone: String? = null //手机号
|
||||
var lineId: Long? = null //线路id
|
||||
var taskId: Long? = null //任务id
|
||||
var siteId: Long? = null //站点id 包车使用
|
||||
var currentSite: Long? = null //当前站点 接驳、公交、班车使用
|
||||
var leaving: Boolean? = null // 当前站点是否出发
|
||||
var shiftsId: Long? = null //模板id
|
||||
var taskDate: Long? = null // 任务或模板的日期
|
||||
var vin: String? = null //车辆唯一识别码
|
||||
var cityCode: String? = null //城市编码
|
||||
var brand: String? = null //东风
|
||||
|
||||
//
|
||||
// E70 东风 H9 红旗
|
||||
// B2 B1 M1
|
||||
var carModel: String? = null
|
||||
var photos: String? = null //车身照片:
|
||||
var tenantId: Long = 0 //租户id:
|
||||
var driverId: Long = 0
|
||||
|
||||
var businessStatus: Long = 0 //?????
|
||||
|
||||
fun toOchBizInfo(): OchBizInfo {
|
||||
return OchBizInfo(
|
||||
businessType,
|
||||
orderNo?:"",
|
||||
servingStatus,
|
||||
lineId?:0,
|
||||
taskId?:0,
|
||||
currentSite?:0,
|
||||
leaving?:false,
|
||||
shiftsId?:0,
|
||||
taskDate?:0,
|
||||
siteId?:0,
|
||||
businessStatus
|
||||
)
|
||||
}
|
||||
|
||||
fun toOchCarInfo(): OchCarInfo {
|
||||
return OchCarInfo(plateNumber,vin,cityCode,brand,carModel,photos,tenantId)
|
||||
}
|
||||
|
||||
fun toOchLoginInfo(): OchLoginInfo {
|
||||
return OchLoginInfo(
|
||||
driverStatus,
|
||||
purpose,
|
||||
sn?:"",
|
||||
phone?:"",
|
||||
driverId
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
override fun toString(): String {
|
||||
return "LoginInfo{" +
|
||||
"driverStatus=" + driverStatus +
|
||||
", servingStatus=" + servingStatus +
|
||||
", businessType=" + businessType +
|
||||
", orderNo='" + orderNo + '\'' +
|
||||
", purpose=" + purpose +
|
||||
", sn='" + sn + '\'' +
|
||||
", plateNumber='" + plateNumber + '\'' +
|
||||
", phone='" + phone + '\'' +
|
||||
", lineId=" + lineId +
|
||||
", taskId=" + taskId +
|
||||
", siteId=" + siteId +
|
||||
", vin='" + vin + '\'' +
|
||||
", cityCode='" + cityCode + '\'' +
|
||||
", brand='" + brand + '\'' +
|
||||
", carModel='" + carModel + '\'' +
|
||||
", photos='" + photos + '\'' +
|
||||
", tenantId=" + tenantId +
|
||||
", driverId=" + driverId +
|
||||
", businessStatus=" + businessStatus +
|
||||
'}'
|
||||
}
|
||||
|
||||
override fun equals(o: Any?): Boolean {
|
||||
if (this === o) return true
|
||||
if (o == null || javaClass != o.javaClass) return false
|
||||
|
||||
val loginInfo = o as LoginInfo
|
||||
return driverStatus == loginInfo.driverStatus && servingStatus == loginInfo.servingStatus && businessType == loginInfo.businessType && purpose == loginInfo.purpose && tenantId == loginInfo.tenantId && driverId == loginInfo.driverId && businessStatus == loginInfo.businessStatus && orderNo == loginInfo.orderNo && sn == loginInfo.sn && plateNumber == loginInfo.plateNumber && phone == loginInfo.phone && lineId == loginInfo.lineId && taskId == loginInfo.taskId && siteId == loginInfo.siteId && vin == loginInfo.vin && cityCode == loginInfo.cityCode && brand == loginInfo.brand && carModel == loginInfo.carModel && photos == loginInfo.photos
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
var result = driverStatus
|
||||
result = 31 * result + servingStatus
|
||||
result = 31 * result + businessType
|
||||
result = 31 * result + Objects.hashCode(orderNo)
|
||||
result = 31 * result + purpose
|
||||
result = 31 * result + Objects.hashCode(sn)
|
||||
result = 31 * result + Objects.hashCode(plateNumber)
|
||||
result = 31 * result + Objects.hashCode(phone)
|
||||
result = 31 * result + Objects.hashCode(lineId)
|
||||
result = 31 * result + Objects.hashCode(taskId)
|
||||
result = 31 * result + Objects.hashCode(siteId)
|
||||
result = 31 * result + Objects.hashCode(vin)
|
||||
result = 31 * result + Objects.hashCode(cityCode)
|
||||
result = 31 * result + Objects.hashCode(brand)
|
||||
result = 31 * result + Objects.hashCode(carModel)
|
||||
result = 31 * result + Objects.hashCode(photos)
|
||||
result = 31 * result + java.lang.Long.hashCode(tenantId)
|
||||
result = 31 * result + java.lang.Long.hashCode(driverId)
|
||||
result = 31 * result + java.lang.Long.hashCode(businessStatus)
|
||||
return result
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
|
||||
interface ILoginViewCallback {
|
||||
fun showErrorInfo(errorInfo: String)
|
||||
fun showErrorInfo(errorInfo: String){}
|
||||
|
||||
fun checkAllEnv(
|
||||
reason:String
|
||||
|
||||
@@ -6,8 +6,7 @@ package com.mogo.och.biz.login.callback;
|
||||
* Model->Presenter回调:订单相关(进行中/待服务单变更,当前进行单状态变更,新到预约单,抢单,抢单结果状态等等)
|
||||
*/
|
||||
public interface ITaxiLoginCallback {
|
||||
void getPhoneCodeSuccess();
|
||||
default void searchStatusSuccess(){}
|
||||
default void getPhoneCodeSuccess(){}
|
||||
|
||||
void netErrorCallback();
|
||||
default void netErrorCallback(){}
|
||||
}
|
||||
|
||||
@@ -11,17 +11,12 @@ import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.commons.utils.MogoAnalyticUtils
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.login.LoginConst
|
||||
import com.mogo.och.biz.login.LoginServiceManager
|
||||
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginRespBean
|
||||
@@ -29,19 +24,14 @@ import com.mogo.och.biz.login.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.biz.login.callback.ITaxiLoginCallback
|
||||
import com.mogo.och.biz.login.net.OchCommonServiceManager
|
||||
import com.mogo.och.bridge.autopilot.location.OchLocationManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum.Companion.valueOf
|
||||
import com.mogo.och.biz.login.bean.LoginInfo
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.cache.ISpCallback
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.ToastUtilsOch
|
||||
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
|
||||
import com.mogo.och.data.manager.cache.CacheDataManager
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.disposables.Disposable
|
||||
import java.util.concurrent.TimeUnit
|
||||
@@ -66,17 +56,20 @@ object LoginModel {
|
||||
private val mNetWorkIntentListener = IMogoIntentListener { intentStr, _ ->
|
||||
d(TAG, "onIntentReceived = %s", intentStr)
|
||||
if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) {
|
||||
if (NetworkUtils.isConnected(mContext)) {
|
||||
if (NetworkUtils.isConnected(mContext)
|
||||
&& AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
// 网络链接成功可以先读取本地再获取服务器
|
||||
queryCarStatus()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val snChangeListener = object :ISpCallback{
|
||||
private val snChangeListener = object : ISpCallback {
|
||||
override fun snChange() {
|
||||
d(TAG, "sn 发生变化${OchSPManager.getSn()}")
|
||||
queryCarStatus(false)
|
||||
if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
queryCarStatus(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,26 +79,18 @@ object LoginModel {
|
||||
.registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener)
|
||||
}
|
||||
|
||||
fun init(context: Context) {
|
||||
|
||||
}
|
||||
|
||||
fun hasInit(): Boolean {
|
||||
return iTaxiLoginCallback != null
|
||||
}
|
||||
|
||||
fun getiTaxiLoginCallback(): ITaxiLoginCallback? {
|
||||
return iTaxiLoginCallback
|
||||
}
|
||||
|
||||
fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) {
|
||||
d(TAG,"setiTaxiLoginCallback")
|
||||
OchSPManager.addListener(TAG,snChangeListener)
|
||||
d(TAG, "setiTaxiLoginCallback")
|
||||
OchSPManager.addListener(TAG, snChangeListener)
|
||||
LoginModel.iTaxiLoginCallback = iTaxiLoginCallback
|
||||
}
|
||||
|
||||
fun release() {
|
||||
d(TAG,"release")
|
||||
d(TAG, "release")
|
||||
OchSPManager.remove(TAG)
|
||||
iTaxiLoginCallback = null
|
||||
}
|
||||
@@ -114,11 +99,11 @@ object LoginModel {
|
||||
* 获取手机验证码
|
||||
*/
|
||||
fun getPhoneCode(phone: String?) {
|
||||
if(mContext==null){
|
||||
OchChainLogManager.writeChainLog("登录页面","获取验证码 mContext${mContext}")
|
||||
}else {
|
||||
if (mContext == null) {
|
||||
OchChainLogManager.writeChainLog("登录页面", "获取验证码 mContext${mContext==null}")
|
||||
} else {
|
||||
mContext?.let {
|
||||
OchChainLogManager.writeChainLog("登录页面","网络请求去获取验证码")
|
||||
OchChainLogManager.writeChainLog("登录页面", "网络请求去获取验证码")
|
||||
OchCommonServiceManager.getPhoneCode(it, phone,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
@@ -188,48 +173,43 @@ object LoginModel {
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询
|
||||
* 1、初始化查询
|
||||
* 2、错误重试
|
||||
* 3、错误重试
|
||||
* 4、登出后重试
|
||||
* 5、变更出车状态查下
|
||||
* 6、变更出车状态查下
|
||||
* 7、网络状态变更后查询
|
||||
* 8、登录页面关闭后查下状态
|
||||
* 1、司机端登录成功后开启2分钟定时请求登录状态
|
||||
* 2、对外提供查询登录状态
|
||||
* 3、网络状态发生变化后查询
|
||||
* 4、sn 发生变化后查询
|
||||
* 5、登录成功后主动查询
|
||||
* 6、错误重试
|
||||
* 7、错误重试
|
||||
* 8、登出后重试
|
||||
*/
|
||||
fun queryCarStatus(readCatche:Boolean = true) {
|
||||
fun queryCarStatus(readCatche: Boolean = true) {
|
||||
mContext?.let {
|
||||
Log.d(TAG,"设置源:queryCarStatus")
|
||||
if(readCatche){
|
||||
val logingInfoJson = OchSPManager.getString(loginInfoKey)
|
||||
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
|
||||
logingInfoJson?.let {logininfo->
|
||||
if(logininfo.startsWith(timeText)){
|
||||
val json = logingInfoJson.replace(timeText,"" )
|
||||
val oldLoginInfo = GsonUtils.fromJson(json, DriverStatusQueryRespBean::class.java)
|
||||
go2LoginInfo(oldLoginInfo,"缓存获取")
|
||||
}
|
||||
}
|
||||
Log.d(TAG, "设置源:queryCarStatus")
|
||||
if (readCatche) {
|
||||
val loginInfo = LoginServiceManager.getLoginInfo()
|
||||
go2LoginInfo(loginInfo,"缓存获取")
|
||||
}
|
||||
OchCommonServiceManager.queryDriverServiceStatus(it, object : OchCommonServiceCallback<DriverStatusQueryRespBean> {
|
||||
override fun onSuccess(data: DriverStatusQueryRespBean?) {
|
||||
OchCommonServiceManager.queryDriverServiceStatus(
|
||||
it,
|
||||
object : OchCommonServiceCallback<DriverStatusQueryRespBean> {
|
||||
override fun onSuccess(data: DriverStatusQueryRespBean) {
|
||||
val map: MutableMap<String, Any> = HashMap()
|
||||
map["msg"] = data.toString()
|
||||
MogoAnalyticUtils.track("QueryCarStatus",map)
|
||||
go2LoginInfo(data,"接口获取")
|
||||
MogoAnalyticUtils.track("QueryCarStatus", map)
|
||||
go2LoginInfo(data.data, "接口获取")
|
||||
}
|
||||
|
||||
override fun onError() {
|
||||
val map: MutableMap<String, Any> = HashMap()
|
||||
map["msg"] = "网络错误"
|
||||
MogoAnalyticUtils.track("QueryCarStatus",map)
|
||||
MogoAnalyticUtils.track("QueryCarStatus", map)
|
||||
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
ToastCharterUtils.showToastShort(mContext!!.getString(R.string.network_error_tip))
|
||||
} else {
|
||||
ToastCharterUtils.showToastShort(mContext!!.getString(R.string.request_error_tip))
|
||||
}
|
||||
LoginStatusManager.setLoginError(-10012,"网络错误")
|
||||
LoginStatusManager.setLoginError(-10012, "网络错误")
|
||||
// 依赖参数
|
||||
subscribe = Observable.timer(5, TimeUnit.SECONDS)
|
||||
.subscribe { _: Long? -> queryCarStatus(readCatche) }
|
||||
@@ -239,9 +219,9 @@ object LoginModel {
|
||||
val map: MutableMap<String, Any> = HashMap()
|
||||
map["msg"] = msg
|
||||
map["code"] = code
|
||||
MogoAnalyticUtils.track("QueryCarStatus",map)
|
||||
MogoAnalyticUtils.track("QueryCarStatus", map)
|
||||
|
||||
LoginStatusManager.setLoginError(code,"msg:${msg}")
|
||||
LoginStatusManager.setLoginError(code, "msg:${msg}")
|
||||
ToastUtilsOch.showWithCodeMessage(code, msg)
|
||||
// 依赖参数
|
||||
subscribe = Observable.timer(3, TimeUnit.SECONDS)
|
||||
@@ -249,7 +229,6 @@ object LoginModel {
|
||||
// if (code == OchCommonConst.WAIT_TAKEN) {
|
||||
//
|
||||
// } else {
|
||||
loginFail(LoginStatusManager.isLogin())
|
||||
// }
|
||||
}
|
||||
})
|
||||
@@ -257,34 +236,10 @@ object LoginModel {
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
private fun go2LoginInfo(data: DriverStatusQueryRespBean?, source: String) {
|
||||
d(TAG,"设置源:${source}")
|
||||
private fun go2LoginInfo(data: LoginInfo?, source: String) {
|
||||
d(TAG, "设置源:${source}")
|
||||
data?.let {
|
||||
LoginStatusManager.setLoginInfo(data.data)
|
||||
}
|
||||
if (FunctionBuildConfig.ochdebug) {
|
||||
return
|
||||
}
|
||||
if (null != data && 0 == data.code) {
|
||||
// 不用登录也可以获得支持的业务模式
|
||||
LoginStatusManager.setBusinessType(data.data.businessType)
|
||||
iTaxiLoginCallback?.searchStatusSuccess()
|
||||
// 后台已登录
|
||||
if (!FunctionBuildConfig.isOffLine) {
|
||||
if (valueOf(data.data.driverStatus) == LoginStatusEnum.Login) {
|
||||
// 业务不支持 去退出登录
|
||||
if (!LoginStatusManager.checkBusiness(data.data.businessType)) {
|
||||
LoginStatusManager.loginOut()
|
||||
return
|
||||
}
|
||||
}
|
||||
LoginStatusManager.setLoginStatus(data.data.driverStatus)
|
||||
}
|
||||
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
|
||||
val loginInfo4Json = GsonUtils.toJson(data)
|
||||
OchSPManager.putString(loginInfoKey,timeText+loginInfo4Json)
|
||||
LoginStatusManager.setOpenOrderType(data.data.servingStatus)
|
||||
d(TAG, "登录信息:$data")
|
||||
LoginServiceManager.setLoginInfo(data)
|
||||
loginSuccess(data)
|
||||
}
|
||||
}
|
||||
@@ -292,18 +247,11 @@ object LoginModel {
|
||||
// 登出
|
||||
fun logout() {
|
||||
val location4Login = TaxiLogoutReqBean.Location4Login()
|
||||
if (FunctionBuildConfig.isOffLine) {
|
||||
d(TAG, "离线模式登录后退出 setLoginStatus:${LoginStatusEnum.Logout}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
|
||||
FunctionBuildConfig.isOffLine = false
|
||||
return
|
||||
}
|
||||
OchCommonServiceManager.logout(
|
||||
mContext!!, location4Login,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
if (null != data && 0 == data.code) {
|
||||
loginFail(false)
|
||||
OchSPManager.remove(loginInfoKey)
|
||||
// 退出登录成功需要查询新的
|
||||
queryCarStatus(false)
|
||||
@@ -320,44 +268,22 @@ object LoginModel {
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
ToastUtilsOch.showWithCodeMessage(code, msg)
|
||||
if(!LoginStatusManager.isLogin()){
|
||||
LoginStatusManager.invokeLBusinessTypeChangeDebug(Product.NONE)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun loginSuccess(data: DriverStatusQueryRespBean?) {
|
||||
d(TAG, "loginSuccess:${LoginStatusManager.isLogin()}")
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
SharedPrefsMgr.getInstance().putString("och_account", data?.data?.phone)
|
||||
fun loginSuccess(data: LoginInfo?) {
|
||||
d(TAG, "loginSuccess:${LoginServiceManager.isLogin()}")
|
||||
if (LoginServiceManager.isLogin()) {
|
||||
SharedPrefsMgr.getInstance().putString("och_account", data?.phone)
|
||||
} else {
|
||||
SharedPrefsMgr.getInstance().putString("och_account", "")
|
||||
}
|
||||
|
||||
data?.data?.driverStatus?.let { updateLoginLocalStatus(it) }
|
||||
}
|
||||
|
||||
private fun updateLoginLocalStatus(loginStatus: Int = 0) {
|
||||
val loginCacheStatus = LoginCacheStatus(loginStatus, DateTimeUtil.getCurrentTimeStamp())
|
||||
mContext?.let {
|
||||
CacheDataManager.instance.putCacheData(
|
||||
it, BusCacheKey.BUS_LOGIN_STATUS_CACHE,
|
||||
GsonUtils.toJson(loginCacheStatus))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun loginFail(isLogin: Boolean) {
|
||||
d(TAG, "loginFail:$isLogin")
|
||||
updateLoginLocalStatus(0)
|
||||
}
|
||||
|
||||
fun gotoOfflineMode() {
|
||||
FunctionBuildConfig.isOffLine = true
|
||||
d(TAG, "离线模式登录 setLoginStatus:${LoginStatusEnum.Login}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Login)
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchLoginNo(LoginConst.OFFLINEPHONE)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -77,7 +77,7 @@ object OchCommonServiceManager {
|
||||
location4Login: TaxiLoginReqBean.Location4Login,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
CallerLogger.d(TAG, "gotoLoginBycode:通过手机验证码登录:${phone}---${code}");
|
||||
CallerLogger.d(TAG, "gotoLoginBycode:通过手机验证码登录:${phone}---${code}")
|
||||
val sn = OchSPManager.getSn()
|
||||
if (ProjectUtils.isMogo()) {
|
||||
ochLoginServiceMogo.gotoLoginBycode(
|
||||
@@ -103,7 +103,7 @@ object OchCommonServiceManager {
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
CallerLogger.d(TAG, "logout:登出");
|
||||
CallerLogger.d(TAG, "logout:登出")
|
||||
if (ProjectUtils.isMogo()) {
|
||||
ochLoginServiceMogo.logout(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@@ -143,14 +143,14 @@ object OchCommonServiceManager {
|
||||
LoginLanPassengerSocket.driverSn
|
||||
}
|
||||
if(sn.isNullOrEmpty()){
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 没有有效的sn");
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 没有有效的sn")
|
||||
return
|
||||
}
|
||||
if(FunctionBuildConfig.ochdebug){
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 ochdebug模式");
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 ochdebug模式")
|
||||
return
|
||||
}
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态${sn}");
|
||||
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态${sn}")
|
||||
if (ProjectUtils.isMogo()) {
|
||||
ochLoginServiceMogo.queryDriverServiceStatusAndLoginStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
|
||||
@@ -26,7 +26,6 @@ class LoginPassengerPresenter(view: LoginPassengerFragment?) : Presenter<LoginPa
|
||||
}
|
||||
|
||||
private fun initListeners() {
|
||||
LoginModel.init(AbsMogoApplication.getApp())
|
||||
LoginModel.setiTaxiLoginCallback(this)
|
||||
BizLoopManager.setLoopFunction(TAG, LoopInfo(2,::showStatus))
|
||||
}
|
||||
@@ -45,12 +44,4 @@ class LoginPassengerPresenter(view: LoginPassengerFragment?) : Presenter<LoginPa
|
||||
BizLoopManager.removeLoopFunction(TAG)
|
||||
}
|
||||
|
||||
override fun getPhoneCodeSuccess() {
|
||||
|
||||
}
|
||||
|
||||
override fun netErrorCallback() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,15 +3,20 @@ package com.mogo.och.biz.login.presenter
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.mvp.Presenter
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
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.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.RegexUtils
|
||||
import com.mogo.eagle.core.utilcode.util.StringUtils
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.login.LoginConst
|
||||
import com.mogo.och.biz.login.LoginServiceManager
|
||||
import com.mogo.och.biz.login.callback.ITaxiLoginCallback
|
||||
import com.mogo.och.biz.login.ui.LoginFragment
|
||||
import com.mogo.och.biz.login.model.LoginModel
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
|
||||
@@ -27,26 +32,30 @@ import java.util.concurrent.TimeUnit
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), ITaxiLoginCallback {
|
||||
class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), ITaxiLoginCallback,
|
||||
ILoginCallback {
|
||||
|
||||
private var countDownDisposable: Disposable? = null
|
||||
|
||||
private val TAG = LoginPresenter::class.java.simpleName
|
||||
|
||||
private var phone:String?=null
|
||||
private var code:String?=null
|
||||
private val TAG = M_OCHCOMMON+LoginPresenter::class.java.simpleName
|
||||
|
||||
init {
|
||||
initListeners()
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "网约车-Init")
|
||||
CallerLogger.d(TAG, "网约车-Init")
|
||||
}
|
||||
|
||||
private fun initListeners() {
|
||||
LoginModel.init(AbsMogoApplication.getApp())
|
||||
LoginModel.setiTaxiLoginCallback(this)
|
||||
LoginStatusManager.addListener(TAG,this)
|
||||
}
|
||||
|
||||
override fun onProductChange(businessEnum: Product?) {
|
||||
mView?.setBg()
|
||||
}
|
||||
|
||||
override fun onVehicleChage(vehicle: Vehicle?) {
|
||||
mView?.setBg()
|
||||
}
|
||||
|
||||
fun getPhoneCode(phone:String){
|
||||
OchChainLogManager.writeChainLog("登录页面","获取验证码${phone}")
|
||||
@@ -65,7 +74,7 @@ class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), IT
|
||||
|
||||
override fun onCreate(owner: LifecycleOwner) {
|
||||
super.onCreate(owner)
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "网约车-出租车登陆")
|
||||
CallerLogger.d(TAG, "网约车-出租车登陆")
|
||||
}
|
||||
|
||||
|
||||
@@ -88,13 +97,13 @@ class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), IT
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe({
|
||||
mView?.setCountDownText("${it}s",false)
|
||||
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时:$it")
|
||||
CallerLogger.d(TAG, "倒计时:$it")
|
||||
}, {
|
||||
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onError:${it}")
|
||||
CallerLogger.d(TAG, "倒计时onError:${it}")
|
||||
it.printStackTrace()
|
||||
mView?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true)
|
||||
}, {
|
||||
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onComplete")
|
||||
CallerLogger.d(TAG, "倒计时onComplete")
|
||||
mView?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true)
|
||||
})
|
||||
}
|
||||
@@ -116,25 +125,8 @@ class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), IT
|
||||
gotoOfflineMode()
|
||||
return
|
||||
}
|
||||
// 需要实时查询新的
|
||||
LoginModel.queryCarStatus(false)
|
||||
LoginModel.gotoLogin(phone, code)
|
||||
mView?.closeSoftInput()
|
||||
this.phone = phone
|
||||
this.code = code
|
||||
}
|
||||
|
||||
override fun searchStatusSuccess() {
|
||||
if (StringUtils.isEmpty(phone) || StringUtils.isEmpty(code)) {
|
||||
return
|
||||
}
|
||||
if(!LoginStatusManager.checkBusiness(LoginStatusManager.getBusInessType().code)){
|
||||
return
|
||||
}
|
||||
if(!StringUtils.isEmpty(phone)&&!StringUtils.isEmpty(code)) {
|
||||
LoginModel.gotoLogin(phone!!, code!!)
|
||||
}
|
||||
this.phone = null
|
||||
this.code = null
|
||||
}
|
||||
|
||||
override fun netErrorCallback() {
|
||||
|
||||
@@ -257,11 +257,7 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
// 司机屏不用处理 只处理 后台返回的业务模型就行
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
biz_cl_driver_main?.viewTreeObserver?.addOnGlobalLayoutListener(onlayoutListener)
|
||||
super.onResume()
|
||||
CallerIpcConnectStateToastManager.loginFragment(true)
|
||||
CallerLogger.d(TAG, "onResume")
|
||||
fun setBg(){
|
||||
context?.let {
|
||||
val videoUrl:String
|
||||
if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
|
||||
@@ -347,6 +343,14 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
biz_cl_driver_main?.viewTreeObserver?.addOnGlobalLayoutListener(onlayoutListener)
|
||||
super.onResume()
|
||||
CallerIpcConnectStateToastManager.loginFragment(true)
|
||||
CallerLogger.d(TAG, "onResume")
|
||||
setBg()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
biz_cl_driver_main?.viewTreeObserver?.removeOnGlobalLayoutListener(onlayoutListener)
|
||||
super.onPause()
|
||||
|
||||
@@ -1,26 +1,29 @@
|
||||
package com.mogo.och.biz.login.ui
|
||||
|
||||
import android.content.res.Configuration
|
||||
import android.util.TypedValue
|
||||
import android.view.View
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.commons.mvp.MvpFragment
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.DeviceUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ScreenUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.biz.BuildConfig
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.login.callback.ILoginViewCallback
|
||||
import com.mogo.och.biz.login.presenter.LoginPassengerPresenter
|
||||
import com.mogo.och.biz.login.ui.debugview.BusinessView
|
||||
import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket
|
||||
import com.mogo.och.common.module.utils.FlavorUtils
|
||||
import kotlinx.android.synthetic.main.biz_login_passenger_view.actv_app_version
|
||||
import kotlinx.android.synthetic.main.biz_login_passenger_view.actv_connect_status
|
||||
import kotlinx.android.synthetic.main.biz_login_passenger_view.biz_cl_passenger_main
|
||||
import kotlinx.android.synthetic.main.biz_login_view.bv_switch_business
|
||||
import kotlinx.android.synthetic.main.biz_login_view.eiv_Info
|
||||
import me.jessyan.autosize.AutoSizeCompat
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
import kotlin.math.abs
|
||||
|
||||
|
||||
/**
|
||||
@@ -29,36 +32,53 @@ import kotlinx.android.synthetic.main.biz_login_view.eiv_Info
|
||||
*/
|
||||
class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPassengerPresenter?>(),
|
||||
ILoginViewCallback {
|
||||
|
||||
private var biz_cl_passenger_main: ConstraintLayout?=null
|
||||
private var biz_actv_login_show_sn: AppCompatTextView?=null
|
||||
private var bv_switch_business: BusinessView?=null
|
||||
private var actv_app_version: AppCompatTextView?=null
|
||||
private var actv_connect_status: AppCompatTextView?=null
|
||||
|
||||
|
||||
private val statusList = mutableListOf<String>()
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.biz_login_passenger_view
|
||||
}
|
||||
|
||||
if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) &&
|
||||
AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode))) {
|
||||
return R.layout.biz_login_passenger_view_1920x1080
|
||||
} else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) &&
|
||||
AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode))) {
|
||||
return R.layout.biz_login_passenger_view_1080x1920
|
||||
private val width2560 = 2560
|
||||
private val width1920 = 1920
|
||||
|
||||
private fun changeUi(){
|
||||
val screenWidth = ScreenUtils.getScreenWidth()
|
||||
val screenHeight = ScreenUtils.getScreenHeight()
|
||||
|
||||
val textSize: Float
|
||||
val marginBottom: Int
|
||||
|
||||
if(screenWidth>screenHeight){//横屏
|
||||
if(abs(screenWidth - width2560)<abs(screenWidth-width1920)){
|
||||
// 使用2560的横屏配置
|
||||
biz_cl_passenger_main?.setBackgroundResource(R.drawable.biz_login_passenger_2560x1600)
|
||||
textSize = AutoSizeUtils.dp2px(context, 30f).toFloat()
|
||||
marginBottom = AutoSizeUtils.dp2px(context, 70f)
|
||||
CallerLogger.d(TAG,"width:${screenWidth}----height:${screenHeight}----001")
|
||||
}else{
|
||||
// 使用1920的横屏效果
|
||||
biz_cl_passenger_main?.setBackgroundResource(R.drawable.biz_login_passenger_1920x1080)
|
||||
textSize = AutoSizeUtils.dp2px(context, 28f).toFloat()
|
||||
marginBottom = AutoSizeUtils.dp2px(context, 41f)
|
||||
CallerLogger.d(TAG,"width:${screenWidth}----height:${screenHeight}----002")
|
||||
}
|
||||
}else{// 竖屏 使用1080 的横屏效果
|
||||
biz_cl_passenger_main?.setBackgroundResource(R.drawable.biz_login_passenger_1080x1920)
|
||||
textSize = AutoSizeUtils.dp2px(context, 28f).toFloat()
|
||||
marginBottom = AutoSizeUtils.dp2px(context, 41f)
|
||||
CallerLogger.d(TAG,"width:${screenWidth}----height:${screenHeight}----003")
|
||||
}
|
||||
|
||||
return R.layout.biz_login_passenger_view_2560x1600
|
||||
actv_connect_status?.setTextSize(TypedValue.COMPLEX_UNIT_PX,textSize)
|
||||
actv_app_version?.setTextSize(TypedValue.COMPLEX_UNIT_PX,textSize)
|
||||
val layoutParams = actv_app_version.layoutParams as ConstraintLayout.LayoutParams
|
||||
layoutParams.bottomMargin = marginBottom
|
||||
actv_app_version.layoutParams = layoutParams
|
||||
}
|
||||
|
||||
override fun initViews() {
|
||||
|
||||
biz_cl_passenger_main = findViewById(R.id.biz_cl_passenger_main)
|
||||
biz_actv_login_show_sn= findViewById(R.id.biz_actv_login_show_sn)
|
||||
bv_switch_business= findViewById(R.id.bv_switch_business)
|
||||
actv_app_version= findViewById(R.id.actv_app_version)
|
||||
actv_connect_status= findViewById(R.id.actv_connect_status)
|
||||
|
||||
CallerLogger.d(TAG, "init")
|
||||
actv_app_version?.text = FlavorUtils.getInfo()
|
||||
|
||||
if(BuildConfig.DEBUG) {
|
||||
@@ -74,8 +94,7 @@ class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPasseng
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
CallerLogger.d(TAG, "init")
|
||||
changeUi()
|
||||
}
|
||||
|
||||
override fun createPresenter(): LoginPassengerPresenter {
|
||||
@@ -87,14 +106,9 @@ class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPasseng
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
val TAG = LoginPassengerFragment::class.java.simpleName
|
||||
}
|
||||
|
||||
override fun showErrorInfo(errorInfo: String) {
|
||||
|
||||
}
|
||||
|
||||
override fun checkAllEnv(
|
||||
reason:String
|
||||
) {
|
||||
@@ -103,7 +117,7 @@ class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPasseng
|
||||
}
|
||||
|
||||
override fun updateStatus(status: String) {
|
||||
statusList?.add(status)
|
||||
statusList.add(status)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
@@ -134,5 +148,7 @@ class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPasseng
|
||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||
super.onConfigurationChanged(newConfig)
|
||||
CallerLogger.d(TAG, newConfig)
|
||||
AutoSizeCompat.autoConvertDensityOfGlobal(resources)
|
||||
changeUi()
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,10 @@ import android.view.LayoutInflater
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_bus
|
||||
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_charter
|
||||
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_shuttle
|
||||
@@ -63,8 +61,7 @@ class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback
|
||||
}
|
||||
|
||||
private fun swtichBusiness(businessEnum: Product) {
|
||||
LoginStatusManager.invokeLBusinessTypeChangeDebug(businessEnum)
|
||||
visibility = GONE
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -78,31 +75,10 @@ class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback
|
||||
}
|
||||
|
||||
fun selectBusniess() {
|
||||
visibility = VISIBLE
|
||||
actv_business_shuttle.visibility = GONE
|
||||
actv_business_bus.visibility = GONE
|
||||
actv_business_taxi.visibility = GONE
|
||||
actv_business_charter.visibility = GONE
|
||||
FunctionBuildConfig.supportBusiness.forEach {
|
||||
when (it) {
|
||||
"shuttle" -> {
|
||||
actv_business_shuttle.visibility = VISIBLE
|
||||
}
|
||||
|
||||
"bus" -> {
|
||||
actv_business_bus.visibility = VISIBLE
|
||||
}
|
||||
|
||||
"taxi" -> {
|
||||
actv_business_taxi.visibility = VISIBLE
|
||||
}
|
||||
|
||||
"charter" -> {
|
||||
actv_business_charter.visibility = VISIBLE
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
if(visibility== VISIBLE){
|
||||
visibility = GONE
|
||||
}else {
|
||||
visibility = VISIBLE
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,9 +4,12 @@ import android.content.Context
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.skin.bean.SkinRespBean
|
||||
import com.mogo.och.biz.skin.net.OchSkinServiceManager
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.skin.SkinService
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
@@ -17,11 +20,21 @@ import com.mogo.skin.SkinManager
|
||||
import com.mogo.skin.utils.FileUtils
|
||||
|
||||
@Route(path = OchCommonConst.BIZ_SKIN)
|
||||
class SkinProvider : SkinService {
|
||||
class SkinProvider : SkinService, ILoginCallback {
|
||||
|
||||
private var context: Context?= null
|
||||
|
||||
private val TAG = "SkinProvider"
|
||||
private val TAG = M_OCHCOMMON+"SkinProvider"
|
||||
|
||||
init {
|
||||
d(TAG,"皮肤信息_监听租户")
|
||||
LoginStatusManager.addListener(TAG,this)
|
||||
}
|
||||
|
||||
override fun onTenantIdChange(tenantId: Long?) {
|
||||
d(TAG,"皮肤信息_租户变化重新请求皮肤包")
|
||||
loadNewSkin()
|
||||
}
|
||||
|
||||
override fun loadNewSkin() {
|
||||
OchChainLogManager.writeChainLogSkin("皮肤信息","请求皮肤信息")
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mogo.och.biz.skin.bean
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.login.LoginInfo
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
|
||||
@@ -126,7 +126,7 @@ class TimeProvider : TimeService {
|
||||
}
|
||||
|
||||
fun tryload(){
|
||||
if (netTime > 3_000 || FunctionBuildConfig.isOffLine) {
|
||||
if (netTime > 3_000) {
|
||||
// 网络延迟大 10s 同步一次
|
||||
RxUtils.disposeSubscribe(nextGetTime)
|
||||
nextGetTime = RxUtils.createSubscribeOnOwnThread(30_000) {
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
android:id="@+id/biz_cl_passenger_main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/biz_login_passenger_2560x1600"
|
||||
app:isUseSkin="true">
|
||||
|
||||
|
||||
@@ -13,12 +12,12 @@
|
||||
android:id="@+id/actv_connect_status"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="当前状态:连接司机屏中"
|
||||
android:textColor="@color/white"
|
||||
android:gravity="center"
|
||||
android:textSize="@dimen/dp_30"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:gravity="center"
|
||||
android:text="当前状态:连接司机屏中"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toTopOf="@+id/actv_app_version"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
@@ -28,10 +27,10 @@
|
||||
android:id="@+id/actv_app_version"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:layout_marginBottom="@dimen/dp_70"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:layout_marginBottom="@dimen/dp_70"
|
||||
android:gravity="center"
|
||||
android:text="版本号:6.4.0"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
@@ -1,73 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/biz_cl_passenger_main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/biz_login_passenger_1080x1920"
|
||||
app:isUseSkin="true">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_connect_status"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="当前状态:连接司机屏中"
|
||||
android:textColor="@color/white"
|
||||
android:gravity="center"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toTopOf="@+id/actv_app_version"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_app_version"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/dp_41"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:gravity="center"
|
||||
android:text="版本号:6.4.0"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<com.mogo.och.biz.login.ui.errorview.ErrorInfoView
|
||||
android:id="@+id/eiv_Info"
|
||||
android:layout_width="@dimen/dp_751"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
|
||||
<com.mogo.och.biz.login.ui.debugview.BusinessView
|
||||
android:id="@+id/bv_switch_business"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/biz_actv_login_show_sn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_50"
|
||||
android:layout_marginBottom="@dimen/dp_40"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,76 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/biz_cl_passenger_main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/biz_login_passenger_1920x1080"
|
||||
app:isUseSkin="true">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_connect_status"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@+id/actv_app_version"
|
||||
android:text="当前状态:连接司机屏中"
|
||||
android:textColor="@color/white"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:gravity="center"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_app_version"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/dp_41"
|
||||
android:layout_marginStart="@dimen/dp_160"
|
||||
android:layout_marginEnd="@dimen/dp_160"
|
||||
android:text="版本号:6.4.0"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_28"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
/>
|
||||
|
||||
<com.mogo.och.biz.login.ui.errorview.ErrorInfoView
|
||||
android:id="@+id/eiv_Info"
|
||||
android:layout_width="@dimen/dp_939"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
|
||||
<com.mogo.och.biz.login.ui.debugview.BusinessView
|
||||
android:id="@+id/bv_switch_business"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/biz_actv_login_show_sn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_50"
|
||||
android:layout_marginBottom="@dimen/dp_40"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -29,38 +29,37 @@ object CheckVinManager : IMoGoAutopilotCarConfigListener {
|
||||
fun getVin(): String {
|
||||
var delineVin = CallerAutoPilotControlManager.getVIN()
|
||||
if(delineVin.isEmpty()){
|
||||
delineVin = LoginStatusManager.getLoginInfo()?.vin?:""
|
||||
delineVin = LoginStatusManager.getOchCarInfo()?.vin?:""
|
||||
}
|
||||
return delineVin
|
||||
}
|
||||
|
||||
private fun checkVin() {
|
||||
LoginStatusManager.getLoginInfo()?.let {loginInfo ->
|
||||
val serverVin = loginInfo.vin
|
||||
LoginStatusManager.getOchCarInfo()?.vin?.let { serverVin ->
|
||||
val delineVin = CallerAutoPilotControlManager.getVIN()
|
||||
OchChainLogManager.writeChainLog(
|
||||
"checkVin",
|
||||
"5分钟检测VIN:服务器Vin:${serverVin}-----底盘Vin:${delineVin}", true,
|
||||
CheckVinErrorDialog.EVENT_KEY_INFO_CHECK_VIN
|
||||
)
|
||||
if(serverVin.isNullOrBlank()){
|
||||
if (serverVin.isNullOrBlank()) {
|
||||
return
|
||||
}
|
||||
|
||||
if(delineVin.isNullOrBlank()){
|
||||
if (delineVin.isNullOrBlank()) {
|
||||
return
|
||||
}
|
||||
|
||||
if(serverVin!=delineVin){
|
||||
if (serverVin != delineVin) {
|
||||
val topActivity = ActivityUtils.getTopActivity()
|
||||
topActivity?.let {
|
||||
UiThreadHandler.post({
|
||||
if(checkVinErrorDialog !=null&& checkVinErrorDialog!!.isShowing){
|
||||
if (checkVinErrorDialog != null && checkVinErrorDialog!!.isShowing) {
|
||||
return@post
|
||||
}
|
||||
checkVinErrorDialog = CheckVinErrorDialog(it)
|
||||
checkVinErrorDialog?.showDialog()
|
||||
},UiThreadHandler.MODE.QUEUE)
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package com.mogo.och.common.module.biz.lansocket
|
||||
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import android.util.Log
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.och.common.module.BuildConfig
|
||||
import com.mogo.och.common.module.biz.lansocket.bean.DevicesInfo
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
@@ -15,10 +18,14 @@ import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ScreenType
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.FlavorUtils
|
||||
|
||||
object LoginLanDriverSocket : ILoginCallback {
|
||||
private const val TAG = "LoginLanSocket"
|
||||
private const val TAG = M_OCHCOMMON+"LoginLanSocket"
|
||||
|
||||
private val thridDevices = mutableListOf<DevicesInfo>()
|
||||
|
||||
// 接受到客户端注册信息后立即返回业务模式
|
||||
private val registerListener = object : ILanMessageListener<BaseDPMsg> {
|
||||
@@ -28,6 +35,15 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
|
||||
override fun onLanMsgReceived(obj: BaseDPMsg?) {
|
||||
println("-------${obj}")
|
||||
obj?.let {msg->
|
||||
var currentDevices = thridDevices.find { it.sn == msg.sourceSn && it.msgVersion == msg.msgVersion }
|
||||
if(currentDevices==null){
|
||||
currentDevices = DevicesInfo(msg.sourceScreenType, msg.sourceSn,msg.msgVersion)
|
||||
thridDevices.add(currentDevices)
|
||||
}else{
|
||||
currentDevices.registerTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
}
|
||||
}
|
||||
if(LoginStatusManager.isLogin()) {
|
||||
FlavorUtils.getEnvCheck()
|
||||
val msg = ChangeBusinessType(FlavorUtils.vehicleType!!, FlavorUtils.businessType!!, FlavorUtils.projectType!!, FlavorUtils.envType!!)
|
||||
@@ -37,9 +53,10 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
val msg = ChangeBusinessType(FlavorUtils.vehicleType!!, BusinessType.none, FlavorUtils.projectType!!, FlavorUtils.envType!!)
|
||||
LanSocketManager.sendMsgToClient(msg)
|
||||
}
|
||||
LoginStatusManager.sendLogin2Client()
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
fun load() {
|
||||
OchChainLogManager.writeChainLogInit("初始化信息","初始司机屏局域网内通知监听")
|
||||
@@ -47,6 +64,7 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
|
||||
init {
|
||||
// 登录状态变化的监听
|
||||
CallerLogger.d(TAG,"初始化局域网通信")
|
||||
LoginStatusManager.addListener(TAG, this)
|
||||
// 注册监听乘客屏和报站屏注册信息
|
||||
LanSocketManager.registerSocketMessageListener(
|
||||
@@ -56,11 +74,11 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
}
|
||||
|
||||
// 司机端发送业务模式更改和环境校验
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum?) {
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus?) {
|
||||
FlavorUtils.getEnvCheck()
|
||||
if (FlavorUtils.vehicleType != null && FlavorUtils.projectType != null && FlavorUtils.envType != null) {
|
||||
when (currentStatus) {
|
||||
LoginStatusEnum.Login -> {
|
||||
EnumLoginStatus.Login -> {
|
||||
val msg =
|
||||
ChangeBusinessType(
|
||||
FlavorUtils.vehicleType!!,
|
||||
|
||||
@@ -3,11 +3,8 @@ package com.mogo.och.common.module.biz.lansocket
|
||||
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
@@ -15,16 +12,11 @@ import com.mogo.och.common.module.manager.loop.LoopInfo
|
||||
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ScreenType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
import com.mogo.och.common.module.utils.CallerBase
|
||||
import java.lang.StringBuilder
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
object LoginLanPassengerSocket : IReceivedMsgListener, CallerBase<IOchLanPassengerStatusListener>() {
|
||||
@@ -83,73 +75,12 @@ object LoginLanPassengerSocket : IReceivedMsgListener, CallerBase<IOchLanPasseng
|
||||
|
||||
override fun onLanMsgReceived(first: EnvCheck?) {
|
||||
first?.let {
|
||||
val checkEnv = checkEnv(first.projectType, first.envType, first.vehicleType, first.businessType)
|
||||
if (first.sourceScreenType== ScreenType.Driver) {
|
||||
driverSn = first.sourceSn
|
||||
}
|
||||
if(checkEnv){
|
||||
|
||||
}else{
|
||||
CallerLogger.d(TAG, "乘客屏 收到消息 检测环境不支持:${LoginStatusEnum.Logout}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun checkEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
): Boolean {
|
||||
return LoginStatusManager.checkAllEnv(projectType, envType, vehicleType, businessType)
|
||||
}
|
||||
|
||||
// 环境监测+业务展示和跳转
|
||||
private val changeBusinessType = object : ILanMessageListener<ChangeBusinessType> {
|
||||
override fun targetLan(): Class<ChangeBusinessType> {
|
||||
return ChangeBusinessType::class.java
|
||||
}
|
||||
|
||||
override fun onLanMsgReceived(first: ChangeBusinessType?) {
|
||||
first?.let {
|
||||
val checkEnv = checkEnv(
|
||||
first.projectType,
|
||||
first.envType,
|
||||
first.vehicleType,
|
||||
first.businessType
|
||||
)
|
||||
if(checkEnv){
|
||||
val status = StringBuilder()
|
||||
status.append("切换业务模式<当前:${LoginStatusManager.getBusInessType().name}")
|
||||
when (first.businessType) {
|
||||
BusinessType.none -> {
|
||||
LoginStatusManager.setBusinessType(Product.NONE.code)
|
||||
CallerLogger.d(TAG, "乘客屏 收到消息 司机屏没有登录:${LoginStatusEnum.Logout}")
|
||||
return LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
|
||||
}
|
||||
BusinessType.bus -> LoginStatusManager.setBusinessType(Product.BUS.code)
|
||||
BusinessType.shuttle -> LoginStatusManager.setBusinessType(Product.SHUTTLE.code)
|
||||
BusinessType.charter -> LoginStatusManager.setBusinessType(Product.CHARTER.code)
|
||||
BusinessType.taxi -> LoginStatusManager.setBusinessType(Product.TAXI.code)
|
||||
BusinessType.taxiunmanned ->LoginStatusManager.setBusinessType(Product.TAXI.code)
|
||||
BusinessType.scheduled ->LoginStatusManager.setBusinessType(Product.SCHEDULED.code)
|
||||
}
|
||||
status.append(", 切换后:${LoginStatusManager.getBusInessType().name}>")
|
||||
LoginStatusManager.changeStatus(status.toString())
|
||||
UiThreadHandler.postDelayed({
|
||||
CallerLogger.d(TAG, "乘客屏 收到消息 司机屏业务模式相同:${LoginStatusEnum.Login}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Login)
|
||||
},2000)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
fun load() {
|
||||
OchChainLogManager.writeChainLogInit("初始化信息","初始局乘客屏局域网内部分信息")
|
||||
}
|
||||
@@ -164,11 +95,7 @@ object LoginLanPassengerSocket : IReceivedMsgListener, CallerBase<IOchLanPasseng
|
||||
DPMsgType.TYPE_ENV_CHECK.type,
|
||||
checkListener
|
||||
)
|
||||
// 乘客屏监听司机端发送的业务修改通知(
|
||||
LanSocketManager.registerSocketMessageListener(
|
||||
DPMsgType.TYPE_CHANGE_BUSINESS_TYPE.type,
|
||||
changeBusinessType
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.mogo.och.common.module.biz.lansocket.bean
|
||||
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ScreenType
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
|
||||
data class DevicesInfo(
|
||||
val screenType: ScreenType,// 屏幕类型
|
||||
val sn: String,// 屏幕sn
|
||||
val msgVersion:Int,
|
||||
var registerTime: Long = DateTimeUtil.getCurrentTimeStamp(),//注册时间
|
||||
){
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (javaClass != other?.javaClass) return false
|
||||
|
||||
other as DevicesInfo
|
||||
|
||||
if (sn != other.sn) return false
|
||||
if (msgVersion != other.msgVersion) return false
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
var result = sn.hashCode()
|
||||
result = 31 * result + msgVersion
|
||||
return result
|
||||
}
|
||||
}
|
||||
@@ -8,14 +8,14 @@ package com.mogo.och.common.module.biz.login
|
||||
* 10 已登录,
|
||||
* 20 已登出,
|
||||
*/
|
||||
enum class LoginStatusEnum(val code: Int) {
|
||||
enum class EnumLoginStatus(val code: Int) {
|
||||
None( -1 ),
|
||||
Login( 1),
|
||||
Logout( 0),;
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun valueOf(code: Int): LoginStatusEnum? {
|
||||
fun valueOf(code: Int): EnumLoginStatus {
|
||||
for (value in values()) {
|
||||
if (value.code == code) {
|
||||
return value
|
||||
@@ -8,14 +8,14 @@ package com.mogo.och.common.module.biz.login
|
||||
* 10 接单状态 可接单,
|
||||
* 20 暂停接到哪 不可接单,
|
||||
*/
|
||||
enum class OpenOrderStatusEnum(val code: Int) {
|
||||
enum class EnumOpenOrderStatus(val code: Int) {
|
||||
UnOrdering( 0 ),
|
||||
Ordering( 1),
|
||||
None( -1),;
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun valueOf(code: Int): OpenOrderStatusEnum {
|
||||
fun valueOf(code: Int): EnumOpenOrderStatus {
|
||||
for (value in values()) {
|
||||
if (value.code == code) {
|
||||
return value
|
||||
@@ -4,7 +4,7 @@ package com.mogo.och.common.module.biz.login
|
||||
* Created on 2021/12/7
|
||||
* 1 运营, 2 测试, 3演示
|
||||
*/
|
||||
enum class RoleEnum(val code: Int) {
|
||||
enum class EnumRole(val code: Int) {
|
||||
None( 0),
|
||||
OPERATION( 1),
|
||||
TEST( 2),
|
||||
@@ -13,13 +13,13 @@ enum class RoleEnum(val code: Int) {
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun valueOf(code: Int?): RoleEnum {
|
||||
for (value in RoleEnum.values()) {
|
||||
fun valueOf(code: Int?): EnumRole {
|
||||
for (value in EnumRole.values()) {
|
||||
if (value.code == code) {
|
||||
return value
|
||||
}
|
||||
}
|
||||
return RoleEnum.None
|
||||
return EnumRole.None
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,18 +2,21 @@ package com.mogo.och.common.module.biz.login;
|
||||
|
||||
import com.mogo.eagle.core.data.enums.Carmodel;
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product;
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle;
|
||||
|
||||
public interface ILoginCallback {
|
||||
|
||||
default void onStatusChange(LoginStatusEnum currentStatus){}
|
||||
default void onLoginStatusChange(EnumLoginStatus currentStatus){}
|
||||
|
||||
default void onCarModelChange(Carmodel currentStatus){}
|
||||
|
||||
default void onBusinessChange(Product businessEnum){}
|
||||
default void onProductChange(Product businessEnum){}
|
||||
|
||||
default void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum){}
|
||||
default void onVehicleChage(Vehicle vehicle){}
|
||||
|
||||
default void onBusinessChangeDebug(Product businessEnum){}
|
||||
default void onOpenOrderStatusEnumChange(EnumOpenOrderStatus businessEnum){}
|
||||
|
||||
default void onTenantIdChange(Long tenantId){}
|
||||
|
||||
default void onLoginErrorInfo(int code,String msg){}
|
||||
|
||||
|
||||
@@ -1,278 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.login;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class LoginInfo {
|
||||
private int driverStatus; //1登录,0登出
|
||||
private int servingStatus;//1接单中,0暂停接单
|
||||
private int businessType; //9: taxi. 10: bus公交 11:接驳 13:包车
|
||||
private String orderNo;
|
||||
private int purpose; // 1 运营, 2 测试, 3演示
|
||||
private String sn;
|
||||
private String plateNumber;//车牌号
|
||||
private String phone;//手机号
|
||||
private Long lineId;//线路id
|
||||
private Long taskId;//任务id
|
||||
private Long siteId;//站点id 包车使用
|
||||
private Long currentSite;//当前站点 接驳、公交、班车使用
|
||||
private Boolean leaving;// 当前站点是否出发
|
||||
private Long shiftsId;//模板id
|
||||
private Long taskDate;// 任务或模板的日期
|
||||
private String vin;//车辆唯一识别码
|
||||
private String cityCode;//城市编码
|
||||
private String brand;//东风
|
||||
//
|
||||
// E70 东风 H9 红旗
|
||||
// B2 B1 M1
|
||||
private String carModel;
|
||||
private String photos;//车身照片:
|
||||
private long tenantId;//租户id:
|
||||
private long driverId;
|
||||
|
||||
private long businessStatus;//?????
|
||||
|
||||
public int getDriverStatus() {
|
||||
return driverStatus;
|
||||
}
|
||||
|
||||
public void setDriverStatus(int driverStatus) {
|
||||
this.driverStatus = driverStatus;
|
||||
}
|
||||
|
||||
public String getOrderNo() {
|
||||
return orderNo;
|
||||
}
|
||||
|
||||
public void setOrderNo(String orderNo) {
|
||||
this.orderNo = orderNo;
|
||||
}
|
||||
|
||||
public int getPurpose() {
|
||||
return purpose;
|
||||
}
|
||||
|
||||
public void setPurpose(int purpose) {
|
||||
this.purpose = purpose;
|
||||
}
|
||||
|
||||
public String getSn() {
|
||||
return sn;
|
||||
}
|
||||
|
||||
public void setSn(String sn) {
|
||||
this.sn = sn;
|
||||
}
|
||||
|
||||
public String getPlateNumber() {
|
||||
return plateNumber;
|
||||
}
|
||||
|
||||
public void setPlateNumber(String plateNumber) {
|
||||
this.plateNumber = plateNumber;
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
|
||||
public int getServingStatus() {
|
||||
return servingStatus;
|
||||
}
|
||||
|
||||
public void setServingStatus(int servingStatus) {
|
||||
this.servingStatus = servingStatus;
|
||||
}
|
||||
|
||||
public int getBusinessType() {
|
||||
return businessType;
|
||||
}
|
||||
|
||||
public void setBusinessType(int businessType) {
|
||||
this.businessType = businessType;
|
||||
}
|
||||
|
||||
public String getVin() {
|
||||
return vin;
|
||||
}
|
||||
|
||||
public void setVin(String vin) {
|
||||
this.vin = vin;
|
||||
}
|
||||
|
||||
public String getCityCode() {
|
||||
return cityCode;
|
||||
}
|
||||
|
||||
public void setCityCode(String cityCode) {
|
||||
this.cityCode = cityCode;
|
||||
}
|
||||
|
||||
public String getBrand() {
|
||||
return brand;
|
||||
}
|
||||
|
||||
public void setBrand(String brand) {
|
||||
this.brand = brand;
|
||||
}
|
||||
|
||||
public String getCarModel() {
|
||||
return carModel;
|
||||
}
|
||||
|
||||
public void setCarModel(String carModel) {
|
||||
this.carModel = carModel;
|
||||
}
|
||||
|
||||
public String getPhotos() {
|
||||
return photos;
|
||||
}
|
||||
|
||||
public void setPhotos(String photos) {
|
||||
this.photos = photos;
|
||||
}
|
||||
|
||||
public long getTenantId() {
|
||||
return tenantId;
|
||||
}
|
||||
|
||||
public void setTenantId(long tenantId) {
|
||||
this.tenantId = tenantId;
|
||||
}
|
||||
|
||||
public long getDriverId() {
|
||||
return driverId;
|
||||
}
|
||||
|
||||
public void setDriverId(long driverId) {
|
||||
this.driverId = driverId;
|
||||
}
|
||||
|
||||
|
||||
public long getBusinessStatus() {
|
||||
return businessStatus;
|
||||
}
|
||||
|
||||
public void setBusinessStatus(long businessStatus) {
|
||||
this.businessStatus = businessStatus;
|
||||
}
|
||||
|
||||
public Long getCurrentSite() {
|
||||
return currentSite;
|
||||
}
|
||||
|
||||
public void setCurrentSite(Long currentSite) {
|
||||
this.currentSite = currentSite;
|
||||
}
|
||||
|
||||
public Boolean getLeaving() {
|
||||
return leaving;
|
||||
}
|
||||
|
||||
public void setLeaving(Boolean leaving) {
|
||||
this.leaving = leaving;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Long getTaskDate() {
|
||||
return taskDate;
|
||||
}
|
||||
|
||||
public void setTaskDate(Long taskDate) {
|
||||
this.taskDate = taskDate;
|
||||
}
|
||||
|
||||
public Long getLineId() {
|
||||
return lineId;
|
||||
}
|
||||
|
||||
public void setLineId(Long lineId) {
|
||||
this.lineId = lineId;
|
||||
}
|
||||
|
||||
public Long getTaskId() {
|
||||
return taskId;
|
||||
}
|
||||
|
||||
public void setTaskId(Long taskId) {
|
||||
this.taskId = taskId;
|
||||
}
|
||||
|
||||
public Long getSiteId() {
|
||||
return siteId;
|
||||
}
|
||||
|
||||
public void setSiteId(Long siteId) {
|
||||
this.siteId = siteId;
|
||||
}
|
||||
|
||||
public Long getShiftsId() {
|
||||
return shiftsId;
|
||||
}
|
||||
|
||||
public void setShiftsId(Long shiftsId) {
|
||||
this.shiftsId = shiftsId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LoginInfo{" +
|
||||
"driverStatus=" + driverStatus +
|
||||
", servingStatus=" + servingStatus +
|
||||
", businessType=" + businessType +
|
||||
", orderNo='" + orderNo + '\'' +
|
||||
", purpose=" + purpose +
|
||||
", sn='" + sn + '\'' +
|
||||
", plateNumber='" + plateNumber + '\'' +
|
||||
", phone='" + phone + '\'' +
|
||||
", lineId=" + lineId +
|
||||
", taskId=" + taskId +
|
||||
", siteId=" + siteId +
|
||||
", vin='" + vin + '\'' +
|
||||
", cityCode='" + cityCode + '\'' +
|
||||
", brand='" + brand + '\'' +
|
||||
", carModel='" + carModel + '\'' +
|
||||
", photos='" + photos + '\'' +
|
||||
", tenantId=" + tenantId +
|
||||
", driverId=" + driverId +
|
||||
", businessStatus=" + businessStatus +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
LoginInfo loginInfo = (LoginInfo) o;
|
||||
return driverStatus == loginInfo.driverStatus && servingStatus == loginInfo.servingStatus && businessType == loginInfo.businessType && purpose == loginInfo.purpose && tenantId == loginInfo.tenantId && driverId == loginInfo.driverId && businessStatus == loginInfo.businessStatus && Objects.equals(orderNo, loginInfo.orderNo) && Objects.equals(sn, loginInfo.sn) && Objects.equals(plateNumber, loginInfo.plateNumber) && Objects.equals(phone, loginInfo.phone) && Objects.equals(lineId, loginInfo.lineId) && Objects.equals(taskId, loginInfo.taskId) && Objects.equals(siteId, loginInfo.siteId) && Objects.equals(vin, loginInfo.vin) && Objects.equals(cityCode, loginInfo.cityCode) && Objects.equals(brand, loginInfo.brand) && Objects.equals(carModel, loginInfo.carModel) && Objects.equals(photos, loginInfo.photos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = driverStatus;
|
||||
result = 31 * result + servingStatus;
|
||||
result = 31 * result + businessType;
|
||||
result = 31 * result + Objects.hashCode(orderNo);
|
||||
result = 31 * result + purpose;
|
||||
result = 31 * result + Objects.hashCode(sn);
|
||||
result = 31 * result + Objects.hashCode(plateNumber);
|
||||
result = 31 * result + Objects.hashCode(phone);
|
||||
result = 31 * result + Objects.hashCode(lineId);
|
||||
result = 31 * result + Objects.hashCode(taskId);
|
||||
result = 31 * result + Objects.hashCode(siteId);
|
||||
result = 31 * result + Objects.hashCode(vin);
|
||||
result = 31 * result + Objects.hashCode(cityCode);
|
||||
result = 31 * result + Objects.hashCode(brand);
|
||||
result = 31 * result + Objects.hashCode(carModel);
|
||||
result = 31 * result + Objects.hashCode(photos);
|
||||
result = 31 * result + Long.hashCode(tenantId);
|
||||
result = 31 * result + Long.hashCode(driverId);
|
||||
result = 31 * result + Long.hashCode(businessStatus);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -2,49 +2,76 @@ package com.mogo.och.common.module.biz.login
|
||||
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import com.mogo.och.common.module.biz.provider.CommonService
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
|
||||
interface LoginService :CommonService {
|
||||
fun setLoginInfo(loginInfo: LoginInfo)
|
||||
fun getLoginInfo():LoginInfo?
|
||||
|
||||
fun getPurpose():RoleEnum
|
||||
/**
|
||||
* 获取登录新形象
|
||||
*/
|
||||
fun getOchLoginInfo():OchLoginInfo?
|
||||
|
||||
/**
|
||||
* 获取业务信息
|
||||
*/
|
||||
fun getOchBizInfo():OchBizInfo?
|
||||
|
||||
/**
|
||||
* 获取车辆信息
|
||||
*/
|
||||
fun getOchCarInfo():OchCarInfo?
|
||||
|
||||
/**
|
||||
* 设置角色
|
||||
*/
|
||||
fun getPurpose():EnumRole
|
||||
|
||||
/**
|
||||
* 判断是否登录
|
||||
*/
|
||||
fun isLogin():Boolean
|
||||
fun getLoginStatus(): LoginStatusEnum
|
||||
fun getCarModel(): Carmodel
|
||||
fun setLoginStatus(loginStatus: LoginStatusEnum)
|
||||
fun setLoginStatus(status: Int)
|
||||
fun setBusinessType(type: Int)
|
||||
|
||||
fun getBusinessType(): Product
|
||||
/**
|
||||
* 获取登录状态
|
||||
*/
|
||||
fun getLoginStatus(): EnumLoginStatus
|
||||
|
||||
/**
|
||||
* 获取车辆模型
|
||||
*/
|
||||
fun getCarModelType(): Carmodel
|
||||
|
||||
/**
|
||||
* 获取业务模式
|
||||
*/
|
||||
fun getProductType(): Product
|
||||
|
||||
/**
|
||||
* 通过网络获取登录状态
|
||||
* @param readCatche true:先使用缓存同时网络请求也存在 false:只是用缓存
|
||||
*/
|
||||
fun queryLoginStatusByNet(readCatche:Boolean=false)
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
fun loginOut()
|
||||
fun checkBusiness(businessType: Int): Boolean
|
||||
fun checkAllEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
): Boolean
|
||||
|
||||
fun changeStatus(currentStatus: String)
|
||||
|
||||
fun setOpenOrderStatusType(type: Int)
|
||||
|
||||
fun getOpenOrderStatusType(): OpenOrderStatusEnum
|
||||
fun getOpenOrderStatusType(): EnumOpenOrderStatus
|
||||
|
||||
fun isOpenOrderType(): Boolean
|
||||
|
||||
fun removeLoginInfo()
|
||||
|
||||
fun getVehicleType(): Vehicle
|
||||
|
||||
fun sendLogin2Client()
|
||||
}
|
||||
@@ -1,22 +1,18 @@
|
||||
package com.mogo.och.common.module.biz.login
|
||||
|
||||
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.och.common.module.biz.login.bean.OchBizInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchCarInfo
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.manager.loop.LoopInfo
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
|
||||
import com.mogo.och.common.module.utils.CallerBase
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
|
||||
object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
|
||||
@@ -24,7 +20,6 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
ARouter.getInstance().build(OchCommonConst.BIZ_LOGIN).navigation() as LoginService
|
||||
|
||||
private var TAG = "LoginStatusManager"
|
||||
private var TAGLoopStatus = "LoginStatusManagerLoop"
|
||||
|
||||
@JvmStatic
|
||||
fun getFragment():Fragment {
|
||||
@@ -33,6 +28,7 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
}
|
||||
throw ClassNotFoundException("没有找到登录Fragment");
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun resetFragment(){
|
||||
loginService?.let {
|
||||
@@ -49,51 +45,57 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
fun queryLoginStatusByNet(readCatche:Boolean=false) {
|
||||
loginService?.queryLoginStatusByNet(readCatche)
|
||||
}
|
||||
@JvmStatic
|
||||
fun getPurpose(): RoleEnum {
|
||||
|
||||
fun getOchCarInfo(): OchCarInfo? {
|
||||
return loginService?.getOchCarInfo()
|
||||
}
|
||||
|
||||
fun getOchBizInfo(): OchBizInfo? {
|
||||
return loginService?.getOchBizInfo()
|
||||
}
|
||||
|
||||
fun getOchLoginInfo(): OchLoginInfo? {
|
||||
return loginService?.getOchLoginInfo()
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除登录信息
|
||||
*/
|
||||
fun removeLoginInfo() {
|
||||
loginService?.removeLoginInfo()
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取业务模式
|
||||
*/
|
||||
fun getProductType():Product{
|
||||
loginService?.let {
|
||||
return it.getPurpose()
|
||||
}
|
||||
return RoleEnum.None
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setLoginInfo(loginInfo: LoginInfo) {
|
||||
loginService?.setLoginInfo(loginInfo)
|
||||
}
|
||||
|
||||
fun getLoginInfo(): LoginInfo? {
|
||||
return loginService?.getLoginInfo()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setLoginStatus(status: Int) {
|
||||
loginService?.setLoginStatus(status)
|
||||
}
|
||||
@JvmStatic
|
||||
fun setBusinessType(type: Int) {
|
||||
loginService?.setBusinessType(type)
|
||||
}
|
||||
|
||||
fun getBusInessType():Product{
|
||||
loginService?.let {
|
||||
return it.getBusinessType()
|
||||
return it.getProductType()
|
||||
}
|
||||
return Product.NONE
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setOpenOrderType(type: Int) {
|
||||
loginService?.setOpenOrderStatusType(type)
|
||||
fun getVehicleType():Vehicle{
|
||||
loginService?.let {
|
||||
return it.getVehicleType()
|
||||
}
|
||||
return Vehicle.NONE
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取接单状态
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getOpenOrderType():OpenOrderStatusEnum{
|
||||
fun getOpenOrderType():EnumOpenOrderStatus{
|
||||
loginService?.let {
|
||||
return it.getOpenOrderStatusType()
|
||||
}
|
||||
return OpenOrderStatusEnum.None
|
||||
return EnumOpenOrderStatus.None
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否在接单中
|
||||
*/
|
||||
@JvmStatic
|
||||
fun isOpenOrderType():Boolean{
|
||||
loginService?.let {
|
||||
@@ -102,34 +104,20 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取登录状态
|
||||
*/
|
||||
@JvmStatic
|
||||
fun setLoginStatus(loginStatus: LoginStatusEnum) {
|
||||
CallerLogger.d(TAG, "setLoginStatus:${loginStatus}")
|
||||
loginService?.setLoginStatus(loginStatus)
|
||||
}
|
||||
|
||||
|
||||
fun removeLoginInfo() {
|
||||
loginService?.removeLoginInfo()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getLoginStatus(): LoginStatusEnum {
|
||||
fun getLoginStatus(): EnumLoginStatus {
|
||||
loginService?.let {
|
||||
return it.getLoginStatus()
|
||||
}
|
||||
return LoginStatusEnum.None
|
||||
return EnumLoginStatus.None
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getCarModel(): Carmodel {
|
||||
loginService?.let {
|
||||
return it.getCarModel()
|
||||
}
|
||||
return Carmodel.T2
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 是否登录中
|
||||
*/
|
||||
@JvmStatic
|
||||
fun isLogin(): Boolean {
|
||||
loginService?.let {
|
||||
@@ -138,72 +126,73 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
return false
|
||||
}
|
||||
|
||||
fun invokeLoginStatusChange(currentStatus: LoginStatusEnum) {
|
||||
Log.d("登录","设置源:invokeLoginStatusChange")
|
||||
if(!FunctionBuildConfig.isOffLine){
|
||||
if(currentStatus==LoginStatusEnum.Login){
|
||||
Log.d("登录","设置源:queryLoginStatusByNet")
|
||||
BizLoopManager.setLoopFunction(TAGLoopStatus, LoopInfo(60*2, ::queryLoginStatusByNet,immediately = true, scheduler = Schedulers.io()))
|
||||
}else{
|
||||
BizLoopManager.removeLoopFunction(TAGLoopStatus)
|
||||
}
|
||||
/**
|
||||
* 获取车辆模型
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getCarModel(): Carmodel {
|
||||
loginService?.let {
|
||||
return it.getCarModelType()
|
||||
}
|
||||
return Carmodel.T2
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送登录信息到乘客屏
|
||||
*/
|
||||
fun sendLogin2Client() {
|
||||
loginService?.sendLogin2Client()
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录状态变更通知
|
||||
*/
|
||||
fun invokeLoginStatusChange(currentStatus: EnumLoginStatus) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onStatusChange(currentStatus)
|
||||
listener.onLoginStatusChange(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
fun invokeLBusinessTypeChange(currentStatus: Product) {
|
||||
/**
|
||||
* 业务模式发生变化通知
|
||||
*/
|
||||
fun invokeLProductChange(currentStatus: Product) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onBusinessChange(currentStatus)
|
||||
}
|
||||
}
|
||||
fun invokeLBusinessTypeChangeDebug(currentStatus: Product) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onBusinessChangeDebug(currentStatus)
|
||||
listener.onProductChange(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
fun invokeLOpenOrderStatusChange(currentStatus: OpenOrderStatusEnum) {
|
||||
/**
|
||||
* 车型发生变化通知
|
||||
*/
|
||||
fun invokeLVehicleChange(currentStatus: Vehicle) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onVehicleChage(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单状态变化发送通知
|
||||
*/
|
||||
fun invokeOpenOrderStatusChange(currentStatus: EnumOpenOrderStatus) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onOpenOrderStatusEnumChange(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun checkBusiness(businessType: Int):Boolean {
|
||||
loginService?.let {
|
||||
return it.checkBusiness(businessType)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun checkAllEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
):Boolean {
|
||||
loginService?.let {
|
||||
return it.checkAllEnv(projectType,envType,vehicleType,businessType)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun changeStatus(status: String) {
|
||||
loginService?.let {
|
||||
it.changeStatus(status)
|
||||
}
|
||||
loginService?.changeStatus(status)
|
||||
}
|
||||
|
||||
override fun doSomeAfterAddListener(tag: String, listener: ILoginCallback) {
|
||||
super.doSomeAfterAddListener(tag, listener)
|
||||
listener.onStatusChange(getLoginStatus())
|
||||
listener.onBusinessChange(getBusInessType())
|
||||
listener.onLoginStatusChange(getLoginStatus())
|
||||
listener.onProductChange(getProductType())
|
||||
listener.onVehicleChage(getVehicleType())
|
||||
listener.onOpenOrderStatusEnumChange(getOpenOrderType())
|
||||
listener.onCarModelChange(getCarModel())
|
||||
}
|
||||
@@ -215,6 +204,9 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 车辆模型变化通知
|
||||
*/
|
||||
fun invokeCarModelChange(carModel: Carmodel) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
@@ -222,5 +214,12 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
}
|
||||
}
|
||||
|
||||
fun invokeTenantIdChange(tenantId: Long) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onTenantIdChange(tenantId)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.mogo.och.common.module.biz.login.bean
|
||||
|
||||
data class OchBizInfo(
|
||||
|
||||
//9: taxi. 10: bus公交 11:接驳 13:包车 14:班车
|
||||
val businessType: Int = -1,
|
||||
|
||||
// taxi使用
|
||||
// 订单号
|
||||
val orderNo: String = "",
|
||||
//1接单中,0暂停接单
|
||||
val servingStatus: Int = 0,
|
||||
|
||||
//接驳、公交、班车使用
|
||||
// 正在执行的线路id
|
||||
val lineId: Long,
|
||||
// 正在执行的班次id
|
||||
val taskId: Long,
|
||||
// 当前站点
|
||||
val currentSite: Long,
|
||||
// 是否滑动出发
|
||||
val leaving: Boolean,
|
||||
// 当前班次的模板id
|
||||
val shiftsId: Long,
|
||||
// 当前班次的具体时间
|
||||
val taskDate: Long,
|
||||
|
||||
// 包车使用
|
||||
// 当前站点id 包车使用
|
||||
val siteId: Long,
|
||||
// 包车车辆状态 1:闲置中 2:使用中
|
||||
val businessStatus: Long,
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.mogo.och.common.module.biz.login.bean
|
||||
|
||||
data class OchCarInfo(
|
||||
val plateNumber:String?,
|
||||
val vin:String?,
|
||||
val cityCode:String?,// 车辆所在城市
|
||||
val brand:String?,// 车辆生产产商 品牌
|
||||
val carModel:String?,// 车辆类型 型号
|
||||
val photos:String?,// 车身照片
|
||||
// 租户id
|
||||
val tenantId: Long?,
|
||||
)
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.mogo.och.common.module.biz.login.bean
|
||||
|
||||
data class OchLoginInfo(
|
||||
//1登录,0登出
|
||||
val driverStatus: Int = 0,
|
||||
// 1 运营, 2 测试, 3演示
|
||||
val purpose: Int = 0,
|
||||
// 后台车辆配置的sn
|
||||
val sn: String = "",
|
||||
// 司机手机号
|
||||
val phone: String = "",
|
||||
// 司机id
|
||||
val driverId: Long?,
|
||||
)
|
||||
@@ -4,8 +4,9 @@ import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OFFLINE
|
||||
import com.mogo.och.common.module.biz.lansocket.LoginLanDriverSocket
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
@@ -17,18 +18,20 @@ object OfflineManager : ILoginCallback {
|
||||
private var offlineService: OfflineService? = ARouter.getInstance().build(OchCommonConst.BIZ_OFFLINE).navigation() as OfflineService
|
||||
|
||||
init {
|
||||
CallerLogger.d(TAG,"初始化离线系统")
|
||||
LoginStatusManager.addListener(TAG,this)
|
||||
}
|
||||
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum?) {
|
||||
if(!FunctionBuildConfig.isOffLine){
|
||||
if(currentStatus==LoginStatusEnum.Login) {
|
||||
// 同步数据
|
||||
synergyBaseData()
|
||||
// 删除正在运行的数据
|
||||
deleteObsoleteData()
|
||||
}
|
||||
}
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus?) {
|
||||
// TODO: 6.10.0 删除离线数据
|
||||
// if(!FunctionBuildConfig.isOffLine){
|
||||
// if(currentStatus==EnumLoginStatus.Login) {
|
||||
// // 同步数据
|
||||
// synergyBaseData()
|
||||
// // 删除正在运行的数据
|
||||
// deleteObsoleteData()
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -109,7 +109,7 @@ object ScannerManager : IOchLanPassengerStatusListener {
|
||||
|
||||
override fun onReceive(data: VerificationData?) {
|
||||
OchChainLogManager.writeChainLogScanner(
|
||||
TAG + "onActiveDataReceive",
|
||||
TAG + "ScannerManageronActiveDataReceive",
|
||||
"扫码结果:data:${data}"
|
||||
)
|
||||
data?.let {
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
|
||||
open class BaseDPMsg(
|
||||
open var type: Int = DPMsgType.TYPE_CLIENT_REGISTER.type,
|
||||
open var msgVersion: Int = 1,
|
||||
open var msgVersion: Int = 2,
|
||||
open var targetScreenTypes: MutableList<ScreenType> =
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
mutableListOf(ScreenType.Passenger, ScreenType.Guide)
|
||||
|
||||
@@ -22,5 +22,6 @@ enum class DPMsgType(val type: Int) {
|
||||
TYPE_WRITEOFF_INFO_DETAIL(13), //核销信息
|
||||
TYPE_WRITEOFF_INFO_RESULT(14), //核销结果
|
||||
TYPE_OUTOF_VOICE(15), //转发给乘客屏播放
|
||||
TYPE_LOGIN_INFO(16), //转发给乘客屏播放
|
||||
TYPE_CLIENT_REGISTER(12); //客户端注册 服务端需要
|
||||
}
|
||||
@@ -1,5 +1,9 @@
|
||||
package com.mogo.och.common.module.manager.socket.lan.bean
|
||||
|
||||
import com.mogo.commons.env.Env
|
||||
import com.mogo.commons.env.Project
|
||||
import com.mogo.och.common.module.biz.login.bean.OchLoginInfo
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2023/3/27
|
||||
@@ -130,6 +134,11 @@ data class OutofVoice(
|
||||
val notice: String,
|
||||
) : BaseDPMsg(DPMsgType.TYPE_OUTOF_VOICE.type, targetScreenTypes = mutableListOf(ScreenType.Passenger))
|
||||
|
||||
data class LoginInfo2Client(
|
||||
val loginInfo: String,
|
||||
val project: Project,
|
||||
val env: Env,
|
||||
) : BaseDPMsg(DPMsgType.TYPE_LOGIN_INFO.type,targetScreenTypes = mutableListOf(ScreenType.Passenger))
|
||||
|
||||
// 车辆类型
|
||||
enum class VehicleType {
|
||||
|
||||
@@ -2,11 +2,9 @@ package com.mogo.och.common.module.network.interceptor
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.ObservableSource
|
||||
import io.reactivex.functions.Function
|
||||
@@ -19,12 +17,8 @@ class FRetryWithTime<T : BaseData> : Function<T, ObservableSource<T>> {
|
||||
MoGoAiCloudClient.getInstance().refreshToken()
|
||||
return Observable.error(OchCommonRetryException())
|
||||
}else if(it.code == 1003){
|
||||
if(!FunctionBuildConfig.isOffLine&&!FunctionBuildConfig.ochdebug){
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
CallerLogger.d("FRetryWithTime", "接口失败报错 1003:${LoginStatusEnum.Logout}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
|
||||
}
|
||||
}
|
||||
CallerLogger.d("FRetryWithTime", "接口失败报错 1003:${EnumLoginStatus.Logout}")
|
||||
LoginStatusManager.queryLoginStatusByNet(false)
|
||||
}
|
||||
}
|
||||
return Observable.just(baseData)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.mogo.och.common.module.utils
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.env.Env
|
||||
import com.mogo.commons.env.EnvUtils
|
||||
import com.mogo.commons.env.Project
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
@@ -8,6 +10,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
|
||||
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
|
||||
@@ -41,7 +44,7 @@ object FlavorUtils {
|
||||
} else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
|
||||
info.append(" B2")
|
||||
} else {
|
||||
info.append(" C1")
|
||||
info.append(" none")
|
||||
}
|
||||
|
||||
when (DebugConfig.getNetMode()) {
|
||||
@@ -68,61 +71,14 @@ object FlavorUtils {
|
||||
}
|
||||
|
||||
info.append(" ${AppUtils.getAppVersionName()}")
|
||||
info.append(" AppSN:${SharedPrefsMgr.getInstance().sn}")
|
||||
info.append(" AppSN:${OchSPManager.getSn()}")
|
||||
return info.toString()
|
||||
}
|
||||
|
||||
fun getBusinessInfo(businessType: Int): String {
|
||||
val businessEnum = Product.valueOf(businessType)
|
||||
FunctionBuildConfig.supportBusiness.forEach {
|
||||
when (it) {
|
||||
"shuttle" -> {
|
||||
val isSupply = businessEnum == Product.SHUTTLE
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
"bus" -> {
|
||||
val isSupply = businessEnum == Product.BUS
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
"taxi" -> {
|
||||
val isSupply = businessEnum == Product.TAXI
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
"charter" -> {
|
||||
val isSupply = businessEnum == Product.CHARTER
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
"scheduled" -> {
|
||||
val isSupply = businessEnum == Product.SCHEDULED
|
||||
if (isSupply) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
val reason = StringBuilder()
|
||||
reason.append("业务异常<当前支持:")
|
||||
FunctionBuildConfig.supportBusiness.forEachIndexed { index, s ->
|
||||
if (index == FunctionBuildConfig.supportBusiness.size - 1) {
|
||||
reason.append(s)
|
||||
} else {
|
||||
reason.append("${s},")
|
||||
}
|
||||
}
|
||||
when (businessEnum) {
|
||||
Product.TAXI -> reason.append(" 后台配置:taxi>")
|
||||
Product.BUS -> reason.append(" 后台配置:bus>")
|
||||
@@ -212,100 +168,25 @@ object FlavorUtils {
|
||||
}
|
||||
|
||||
fun checkAllEnv(
|
||||
projectType: ProjectType,
|
||||
envType: EnvType,
|
||||
vehicleType: VehicleType,
|
||||
businessType: BusinessType
|
||||
projectType: Project,
|
||||
envType: Env,
|
||||
): String {
|
||||
|
||||
val reason = StringBuilder()
|
||||
|
||||
val isProjectSupply = when (ProjectUtils.getProjectType()) {
|
||||
Project.SAAS -> projectType == ProjectType.saas
|
||||
Project.DALI -> projectType == ProjectType.dali
|
||||
Project.MOGO -> projectType == ProjectType.mogo
|
||||
Project.YANTAI -> projectType == ProjectType.yantai
|
||||
}
|
||||
val isProjectSupply = ProjectUtils.getProjectType()==projectType
|
||||
|
||||
if (!isProjectSupply) {
|
||||
reason.append("项目异常<当前:${ProjectUtils.getProjectType().name}, 后台配置:${projectType.name}> ")
|
||||
reason.append("项目异常<当前:${ProjectUtils.getProjectType().value}, 后台配置:${projectType.value}> ")
|
||||
}
|
||||
|
||||
val currentVehicle: String
|
||||
val vehicleTypeSupply =
|
||||
if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
|
||||
currentVehicle = VehicleType.T1T2.name
|
||||
vehicleType == VehicleType.T1T2
|
||||
} else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) {
|
||||
currentVehicle = VehicleType.M1.name
|
||||
vehicleType == VehicleType.M1
|
||||
} else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
|
||||
currentVehicle = VehicleType.B1.name
|
||||
vehicleType == VehicleType.B1
|
||||
} else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
|
||||
currentVehicle = VehicleType.B2.name
|
||||
vehicleType == VehicleType.B2
|
||||
} else {
|
||||
currentVehicle = VehicleType.C1.name
|
||||
vehicleType == VehicleType.C1
|
||||
}
|
||||
if (!vehicleTypeSupply) {
|
||||
reason.append("车型异常<当前:${currentVehicle}, 后台配置:${vehicleType.name}> ")
|
||||
}
|
||||
val envTypeSupply = EnvUtils.getEnvType()==envType
|
||||
|
||||
val currentenvType: String
|
||||
val envTypeSupply = when (DebugConfig.getNetMode()) {
|
||||
2 -> {
|
||||
currentenvType = EnvType.qa.name
|
||||
envType == EnvType.qa
|
||||
}
|
||||
|
||||
3 -> {
|
||||
currentenvType = EnvType.online.name
|
||||
envType == EnvType.online
|
||||
}
|
||||
|
||||
4 -> {
|
||||
currentenvType = EnvType.demo.name
|
||||
envType == EnvType.demo
|
||||
}
|
||||
|
||||
else -> {
|
||||
currentenvType = EnvType.qa.name
|
||||
envType == EnvType.qa
|
||||
}
|
||||
}
|
||||
if (!envTypeSupply) {
|
||||
reason.append("环境异常<当前:${currentenvType} 后台配置:${envType.name}> ")
|
||||
}
|
||||
|
||||
|
||||
val businessTypeSupply = checkBusinessMine(businessType)
|
||||
|
||||
if (!businessTypeSupply) {
|
||||
reason.append("业务异常<当前支持:")
|
||||
FunctionBuildConfig.supportBusiness.forEachIndexed { index, s ->
|
||||
if (index == FunctionBuildConfig.supportBusiness.size - 1) {
|
||||
reason.append(s)
|
||||
} else {
|
||||
reason.append("${s},")
|
||||
}
|
||||
}
|
||||
reason.append(" 后台配置:${businessType.name}> ")
|
||||
reason.append("环境异常<当前:${EnvUtils.getEnvType().value} 后台配置:${envType.value}> ")
|
||||
}
|
||||
|
||||
return reason.toString()
|
||||
}
|
||||
|
||||
fun checkBusinessMine(businessType: BusinessType): Boolean {
|
||||
if (businessType == BusinessType.none) {
|
||||
return true
|
||||
}
|
||||
FunctionBuildConfig.supportBusiness.forEach {
|
||||
if (businessType.name == it) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
||||
@@ -42,7 +42,7 @@ class LoadingMapStatusView @JvmOverloads constructor(
|
||||
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
CallerLogger.d(TAG,"onAttachedToWindow")
|
||||
CallerLogger.d(TAG,"地图loading_onAttachedToWindow")
|
||||
LoginStatusManager.addListener(TAG,this)
|
||||
visibility = VISIBLE
|
||||
MogoMapListenerHandler.mogoMapListenerHandler.registerHostMapListener(TAG,this)
|
||||
|
||||
@@ -3,15 +3,16 @@ package com.mogo.och.common.module.wigets.map.orderstatus
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
|
||||
class OrderStatusViewModel : ViewModel(), ILoginCallback {
|
||||
|
||||
private val TAG = OrderStatusViewModel::class.java.simpleName
|
||||
private val TAG = M_OCHCOMMON+OrderStatusViewModel::class.java.simpleName
|
||||
|
||||
private var viewCallback: IVisualCallback? = null
|
||||
|
||||
@@ -26,11 +27,12 @@ class OrderStatusViewModel : ViewModel(), ILoginCallback {
|
||||
}
|
||||
|
||||
fun setDistanceCallback(viewCallback: IVisualCallback) {
|
||||
CallerLogger.d(TAG,"监听接单状态")
|
||||
LoginStatusManager.addListener(TAG, this)
|
||||
this.viewCallback = viewCallback
|
||||
}
|
||||
|
||||
override fun onOpenOrderStatusEnumChange(businessEnum: OpenOrderStatusEnum?) {
|
||||
override fun onOpenOrderStatusEnumChange(businessEnum: EnumOpenOrderStatus?) {
|
||||
CallerLogger.d(TAG,"新的接单状态${businessEnum}")
|
||||
UiThreadHandler.post({
|
||||
if (LoginStatusManager.isOpenOrderType()) {
|
||||
|
||||
@@ -35,20 +35,6 @@ android {
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
|
||||
flavorDimensions "vehicle"
|
||||
productFlavors {
|
||||
// 车型:金旅星辰、开沃 小巴业务
|
||||
jinlvvan {
|
||||
dimension "vehicle"
|
||||
buildConfigField 'int', 'NEW_TEST', '0'
|
||||
}
|
||||
// 车型:金旅m2 小巴业务
|
||||
m2 {
|
||||
dimension "vehicle"
|
||||
buildConfigField 'int', 'NEW_TEST', '1'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
@@ -6,49 +6,32 @@ project.dependencies {
|
||||
} else {
|
||||
if(isDriver()){
|
||||
implementation project.project(':OCH:offline:driver')
|
||||
}
|
||||
if (isCurrentDriver("C1")) {
|
||||
implementation project.project(':OCH:sweeper:driver')
|
||||
} else if (isCurrentDriver("B1")) {
|
||||
implementation project.project(':OCH:shuttle:driver_weaknet')
|
||||
} else if (isCurrentPassenger("B1")) {
|
||||
implementation project.project(':OCH:shuttle:passenger_weaknet')
|
||||
} else if (isCurrentBaiLing("B1")) {
|
||||
implementation project.project(':OCH:shuttle:driver_weaknet')
|
||||
implementation project.project(':OCH:shuttle:passenger_weaknet')
|
||||
} else if (isCurrentDriver("M1")) {
|
||||
implementation project.project(':OCH:charter:driver')
|
||||
implementation project.project(':OCH:shuttle:driver_weaknet')
|
||||
} else if (isCurrentPassenger("M1")) {
|
||||
implementation project.project(':OCH:shuttle:passenger_weaknet')
|
||||
} else if (isCurrentDriver("B2")) {
|
||||
implementation project.project(':OCH:shuttle:driver_weaknet')
|
||||
} else if (isCurrentPassenger("B2")) {
|
||||
implementation project.project(':OCH:shuttle:passenger_weaknet')
|
||||
} else if (isCurrentDriver("T1T2")) {
|
||||
implementation project.project(':OCH:taxi:unmanned-driver')
|
||||
} else if (isCurrentPassenger("T1T2")) {
|
||||
implementation project.project(':OCH:taxi:unmanned-passenger')
|
||||
} else if (isCurrentDriver("ALL")) {
|
||||
implementation project.project(':OCH:taxi:unmanned-driver')
|
||||
implementation project.project(':OCH:charter:driver')
|
||||
implementation project.project(':OCH:sweeper:driver')
|
||||
implementation project.project(':OCH:shuttle:driver_weaknet')
|
||||
} else if (isCurrentPassenger("ALL")) {
|
||||
implementation project.project(':OCH:charter:driver')
|
||||
implementation project.project(':OCH:taxi:unmanned-driver')
|
||||
}else if(isPassenger()){
|
||||
implementation project.project(':OCH:shuttle:passenger_weaknet')
|
||||
implementation project.project(':OCH:taxi:unmanned-passenger')
|
||||
implementation project.project(':OCH:charter:passenger')
|
||||
}else if(isBaiLing()){
|
||||
implementation project.project(':OCH:offline:driver')
|
||||
implementation project.project(':OCH:shuttle:driver_weaknet')
|
||||
implementation project.project(':OCH:shuttle:passenger_weaknet')
|
||||
|
||||
} else {
|
||||
implementation project.project(':OCH:charter:driver')
|
||||
implementation project.project(':OCH:charter:passenger')
|
||||
implementation project.project(':OCH:sweeper:driver')
|
||||
// implementation project.project(':OCH:taxi:driver')
|
||||
// implementation project.project(':OCH:taxi:passenger')
|
||||
implementation project.project(':OCH:taxi:unmanned-driver')
|
||||
implementation project.project(':OCH:taxi:unmanned-passenger')
|
||||
implementation project.project(':OCH:shuttle:passenger_weaknet')
|
||||
}else {
|
||||
implementation project.project(':OCH:offline:driver')
|
||||
implementation project.project(':OCH:shuttle:driver_weaknet')
|
||||
implementation project.project(':OCH:shuttle:passenger_weaknet')
|
||||
implementation project.project(':OCH:charter:driver')
|
||||
implementation project.project(':OCH:charter:passenger')
|
||||
implementation project.project(':OCH:sweeper:driver')
|
||||
implementation project.project(':OCH:taxi:unmanned-driver')
|
||||
implementation project.project(':OCH:taxi:unmanned-passenger')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.och.bridge.device.checkvin.CheckVinManager
|
||||
import com.mogo.och.bridge.ota.OTAManager
|
||||
import com.mogo.och.common.module.biz.lansocket.LoginLanDriverSocket
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.offline.OfflineManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
@@ -58,7 +58,7 @@ class FacadeDriverProvider : FacadeProvider() {
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum) {
|
||||
super.onStatusChange(currentStatus)
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus) {
|
||||
super.onLoginStatusChange(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.eagle.core.utilcode.util.DeviceUtils
|
||||
@@ -31,7 +30,7 @@ import com.mogo.eagle.core.utilcode.util.TimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.eagle.core.utilcode.util.VolumeUtils
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.provider.CommonService
|
||||
import com.mogo.och.common.module.biz.skin.SkinManager
|
||||
@@ -97,13 +96,6 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
|
||||
}
|
||||
|
||||
private fun getFragment(): Fragment {
|
||||
if (FunctionBuildConfig.isOffLine) {
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
return getFragmentByServeName(OchCommonConst.OFFLINE_DRIVER)
|
||||
} else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
return getFragmentByServeName(OchCommonConst.OFFLINE_PASSENGER)
|
||||
}
|
||||
}
|
||||
if(DeviceUtils.isEB5Model() && !AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)){
|
||||
val maxVolume = VolumeUtils.getMaxVolume(AudioManager.STREAM_MUSIC)
|
||||
val volume = VolumeUtils.getVolume(AudioManager.STREAM_MUSIC)
|
||||
@@ -165,10 +157,10 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
|
||||
activity!!.finish()
|
||||
}
|
||||
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum) {
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus) {
|
||||
d(TAG, "登录状态发生改变 $currentStatus")
|
||||
when (currentStatus) {
|
||||
LoginStatusEnum.Login -> {
|
||||
EnumLoginStatus.Login -> {
|
||||
CallerEagleBaseFunctionCall4OchManager.updateLoginStatus(true)
|
||||
}
|
||||
else -> {
|
||||
@@ -180,69 +172,6 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onBusinessChange(businessEnum: Product) {
|
||||
super.onBusinessChange(businessEnum)
|
||||
val (_, identity, model) = AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode)
|
||||
when (businessEnum) {
|
||||
Product.NONE -> {}
|
||||
Product.TAXI -> FunctionBuildConfig.appIdentityMode =
|
||||
"${AppIdentityModeUtils.TAXI}_${identity}_${model}"
|
||||
|
||||
Product.BUS -> FunctionBuildConfig.appIdentityMode =
|
||||
"${AppIdentityModeUtils.BUS}_${identity}_${model}"
|
||||
|
||||
Product.SHUTTLE -> FunctionBuildConfig.appIdentityMode =
|
||||
"${AppIdentityModeUtils.SHUTTLE}_${identity}_${model}"
|
||||
|
||||
Product.CHARTER -> FunctionBuildConfig.appIdentityMode =
|
||||
"${AppIdentityModeUtils.CHARTER}_${identity}_${model}"
|
||||
|
||||
Product.SCHEDULED -> FunctionBuildConfig.appIdentityMode =
|
||||
"${AppIdentityModeUtils.SCHEDULED}_${identity}_${model}"
|
||||
}
|
||||
CallerDevaToolsManager.updateAppChannel()
|
||||
// 加入启动统计
|
||||
val mStartParams: HashMap<String, Any> = HashMap()
|
||||
mStartParams["start_time"] = TimeUtils.getNowMills()
|
||||
mStartParams["app_version"] = AppUtils.getAppVersionName()
|
||||
mStartParams["app_identity_mode"] = FunctionBuildConfig.appIdentityMode
|
||||
MogoAnalyticUtils.track("app_start_time", mStartParams)
|
||||
}
|
||||
|
||||
override fun onBusinessChangeDebug(businessEnum: Product) {
|
||||
if (businessEnum == Product.NONE) {
|
||||
CallerHmiManager.hideToolsView()
|
||||
ToggleDebugView.toggleDebugView.dismiss()
|
||||
SopView.sopView.dismiss()
|
||||
CallerHmiManager.dismissFSMExceptionStatusWindow()
|
||||
CallerHmiManager.hideStatusSummaryDialog()
|
||||
_commonService?.resetFragment()
|
||||
val fragment = LoginStatusManager.getFragment()
|
||||
val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager
|
||||
if (supportFragmentManager != null) {
|
||||
val back = supportFragmentManager.beginTransaction()
|
||||
back.replace(containerId, fragment, fragment.tag)
|
||||
back.commitAllowingStateLoss()
|
||||
}
|
||||
removeStatusBar()
|
||||
} else {
|
||||
onBusinessChange(businessEnum)
|
||||
FunctionBuildConfig.ochdebug = true
|
||||
d(TAG, "denbug模式进入${LoginStatusEnum.Login}")
|
||||
LoginStatusManager.setLoginStatus(LoginStatusEnum.Login)
|
||||
val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager
|
||||
val fragment = getFragment()
|
||||
d(TAG, "切换 fragment:${fragment}_activity:$activity _ ${containerId}_$this")
|
||||
LoginStatusManager.resetFragment()
|
||||
if (supportFragmentManager != null) {
|
||||
val back = supportFragmentManager.beginTransaction()
|
||||
back.replace(containerId, fragment, fragment.tag)
|
||||
back.commitAllowingStateLoss()
|
||||
}
|
||||
injectStatusBar()
|
||||
}
|
||||
}
|
||||
|
||||
private fun injectStatusBar() {
|
||||
activity?.let {
|
||||
val decorView = it.window.decorView as? FrameLayout ?: return
|
||||
|
||||
@@ -10,7 +10,7 @@ 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.Companion.M_OCHCOMMON
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.provider.CommonService
|
||||
import com.mogo.och.facade.constant.FacadeConst
|
||||
@@ -19,18 +19,17 @@ import com.mogo.och.facade.route.FacadeProvider
|
||||
@Route(path = FacadeConst.OCH_VIEW_PATH)
|
||||
class OchCustomViewProvider : IOchCustomViewProvider, ILoginCallback {
|
||||
|
||||
companion object {
|
||||
const val TAG = M_OCHCOMMON+"OchCustomViewProvider"
|
||||
}
|
||||
private val TAG = M_OCHCOMMON+"OchViewProvider"
|
||||
|
||||
init {
|
||||
CallerLogger.d(TAG,"初始化_提供View")
|
||||
LoginStatusManager.addListener(TAG,this)
|
||||
}
|
||||
|
||||
private var commonService: CommonService?=null
|
||||
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum?) {
|
||||
if(currentStatus!=LoginStatusEnum.Login){
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus?) {
|
||||
if(currentStatus!=EnumLoginStatus.Login){
|
||||
commonService = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -447,7 +447,6 @@ object OrderModel {
|
||||
LineManager.setLineInfo(null)
|
||||
LineManager.setContraiInfo(null)
|
||||
LineManager.setStartAndEndStation(null,null)
|
||||
FunctionBuildConfig.isOffLine = false
|
||||
LoginStatusManager.loginOut()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ object LineDb: IDbRepository {
|
||||
* 读取可用线路
|
||||
*/
|
||||
fun queryCanUseLineRx(): Observable<List<LineDataBean>?>? {
|
||||
return lineDao?.loadDataRx(tenantId = LoginStatusManager.getLoginInfo()?.tenantId?:0L, projectName = ProjectUtils.getProjectType().value)
|
||||
return lineDao?.loadDataRx(tenantId = LoginStatusManager.getOchCarInfo()?.tenantId?:0L, projectName = ProjectUtils.getProjectType().value)
|
||||
}
|
||||
|
||||
fun checkAndUpdate(serverDatalist:List<LineDataBean>){
|
||||
@@ -40,7 +40,7 @@ object LineDb: IDbRepository {
|
||||
override fun run() {
|
||||
// 校验数据个数
|
||||
lineDao?.let { lineDao->
|
||||
val loadData = lineDao.loadData(tenantId = LoginStatusManager.getLoginInfo()?.tenantId?:0L, projectName = ProjectUtils.getProjectType().value)
|
||||
val loadData = lineDao.loadData(tenantId = LoginStatusManager.getOchCarInfo()?.tenantId?:0L, projectName = ProjectUtils.getProjectType().value)
|
||||
if(loadData.isNullOrEmpty()){
|
||||
// 插入新的值
|
||||
lineDao.insert(*serverDatalist.toTypedArray())
|
||||
|
||||
@@ -36,7 +36,7 @@ data class BindLineListResponse(val data: List<Result>?) : BaseData(){
|
||||
tempLineInfo.lineId = lineInfo.lineId
|
||||
tempLineInfo.lineName = lineInfo.lineName
|
||||
tempLineInfo.endStationName = dataInfo.siteList?.last()?.name?:""
|
||||
tempLineInfo.tenantId = LoginStatusManager.getLoginInfo()?.tenantId?:0
|
||||
tempLineInfo.tenantId = LoginStatusManager.getOchCarInfo()?.tenantId?:0
|
||||
tempLineInfo.projectName = ProjectUtils.getProjectType().value
|
||||
lineList.add(tempLineInfo)
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.mogo.commons.mvp.Presenter
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OFFLINE
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin
|
||||
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
|
||||
@@ -43,7 +43,7 @@ class OfflinePresenter(view: OfflineFragment?) : Presenter<OfflineFragment?>(vie
|
||||
OrderModel.release()
|
||||
}
|
||||
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum) {
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus) {
|
||||
d(TAG, " loginStatus =" + isLogin())
|
||||
if (!isLogin()) {
|
||||
OffLineTrajectoryManager.stopTrajReqLoop()
|
||||
|
||||
@@ -78,21 +78,21 @@ class GoLoginModel : ViewModel(), IBusLinesCallback {
|
||||
|
||||
fun createTimelater(){
|
||||
d(TAG,"开始检查是否展示登录页面")
|
||||
if(FunctionBuildConfig.isOffLine){
|
||||
// 2分钟内有网络成功过
|
||||
if(System.currentTimeMillis()- OchCommonNet.getLastNetSuccessTime()<60*1000){
|
||||
if (NetworkUtils.isConnected()) {
|
||||
BizLoopManager.runInMainThread{
|
||||
this.viewCallback?.showView()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
RxUtils.disposeSubscribe(time60_000)
|
||||
time60_000 = RxUtils.createSubscribeOnOwnThread(60_000) {
|
||||
// 检测是否需要展示
|
||||
createTimelater()
|
||||
}
|
||||
// if(FunctionBuildConfig.isOffLine){
|
||||
// // 2分钟内有网络成功过
|
||||
// if(System.currentTimeMillis()- OchCommonNet.getLastNetSuccessTime()<60*1000){
|
||||
// if (NetworkUtils.isConnected()) {
|
||||
// BizLoopManager.runInMainThread{
|
||||
// this.viewCallback?.showView()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// RxUtils.disposeSubscribe(time60_000)
|
||||
// time60_000 = RxUtils.createSubscribeOnOwnThread(60_000) {
|
||||
// // 检测是否需要展示
|
||||
// createTimelater()
|
||||
// }
|
||||
}
|
||||
|
||||
override fun onRunningTask() {
|
||||
|
||||
@@ -21,7 +21,7 @@ class TaskUsedAction() :
|
||||
override fun onMsgReceived(obj: TaskUsedMsg?) {
|
||||
i(tag, "onMsgReceived = $obj")
|
||||
obj?.apply {
|
||||
if (LoginStatusManager.getLoginInfo()?.businessType==businessType
|
||||
if (LoginStatusManager.getOchBizInfo()?.businessType==businessType
|
||||
&&RepositoryManager.supportDb()) {
|
||||
LineModel.endTaskByOther(taskId,plateNumber)
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ data class ShuttleEventRequest(val requestId: String, val sn: String,val vin:Str
|
||||
waitUpdateEvent: List<EventDataBean>?,
|
||||
waitUpdateWriteOffEvent: List<WriteOffDataBean>?
|
||||
): ShuttleEventRequest {
|
||||
val businessTypeShuttle = LoginStatusManager.getLoginInfo()?.businessType?:11
|
||||
val businessTypeShuttle = LoginStatusManager.getOchBizInfo()?.businessType?:11
|
||||
val eventList4Request = mutableListOf<Event>()
|
||||
var tempEvent: Event?=null
|
||||
waitUpdateEvent?.forEach {
|
||||
|
||||
@@ -470,7 +470,7 @@ object LineModel {
|
||||
}
|
||||
|
||||
fun endTaskByOther(taskId: Long,plateNumber:String) {
|
||||
if(LoginStatusManager.getLoginInfo()?.plateNumber==plateNumber){
|
||||
if(LoginStatusManager.getOchCarInfo()?.plateNumber==plateNumber){
|
||||
d(TAG,"当前车辆消耗任务")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ object EventDb: IDbRepository {
|
||||
event.taskStartTime = taskStartTime
|
||||
event.businessTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1
|
||||
event.driverId = LoginStatusManager.getOchLoginInfo()?.driverId?:-1
|
||||
event.siteId = 0L
|
||||
event.seq = 0
|
||||
event.msgId = "${OchSPManager.getSn()}_${DateTimeUtil.getCurrentTimeStamp()}"
|
||||
@@ -72,7 +72,7 @@ object EventDb: IDbRepository {
|
||||
event.businessTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.siteId = siteId
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1
|
||||
event.driverId = LoginStatusManager.getOchLoginInfo()?.driverId?:-1
|
||||
event.seq = seq
|
||||
event.msgId = "${OchSPManager.getSn()}_${DateTimeUtil.getCurrentTimeStamp()}"
|
||||
BizLoopManager.runInIoThread {
|
||||
@@ -101,7 +101,7 @@ object EventDb: IDbRepository {
|
||||
event.lineName = lineName
|
||||
event.businessTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L
|
||||
event.driverId = LoginStatusManager.getOchLoginInfo()?.driverId?:-1L
|
||||
event.siteId = siteId
|
||||
event.seq = seq
|
||||
event.msgId = "${OchSPManager.getSn()}_${DateTimeUtil.getCurrentTimeStamp()}"
|
||||
@@ -129,7 +129,7 @@ object EventDb: IDbRepository {
|
||||
event.taskStartTime = taskStartTime
|
||||
event.businessTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L
|
||||
event.driverId = LoginStatusManager.getOchLoginInfo()?.driverId?:-1L
|
||||
event.siteId = 0L
|
||||
event.seq = 0
|
||||
event.msgId = "${OchSPManager.getSn()}_${DateTimeUtil.getCurrentTimeStamp()}"
|
||||
|
||||
@@ -174,7 +174,7 @@ class WeaknetRepository : ILineRepository {
|
||||
// 2、check 数据库数据
|
||||
// 3、数据库没有数据 做延迟等待同步接口同步基础数据 ?? 等待基础数据同步完在进行
|
||||
// 4、恢复本地正在运行的数据
|
||||
val loginInfo = LoginStatusManager.getLoginInfo()
|
||||
val loginInfo = LoginStatusManager.getOchBizInfo()
|
||||
return Observable.just(loginInfo).flatMap {
|
||||
// check数据 是否正在之心
|
||||
val taskId = if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)||
|
||||
|
||||
@@ -107,7 +107,7 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
|
||||
// 1、校验租户id
|
||||
it.tenantId?.let { tenantId->
|
||||
if(LoginStatusManager.getLoginInfo()?.tenantId==tenantId){
|
||||
if(LoginStatusManager.getOchCarInfo()?.tenantId==tenantId){
|
||||
|
||||
}else{
|
||||
throw DataException(1012,"当前用户下单路线非当前的车辆所属公司")
|
||||
@@ -124,7 +124,7 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
}
|
||||
}
|
||||
// 3、校验 bus和shuttle
|
||||
if (LoginStatusManager.getBusInessType()!=Product.valueOf(it.typeBiz)) {
|
||||
if (LoginStatusManager.getProductType()!=Product.valueOf(it.typeBiz)) {
|
||||
throw DataException(1005,"车辆未登录、或没有任务")
|
||||
}
|
||||
// 4 二维码1分钟失效
|
||||
@@ -201,7 +201,7 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
addWrite.ticketSize = it.ticketSize
|
||||
addWrite.ticketName = it.ticketName
|
||||
addWrite.msgId = OchSPManager.getSn()+System.currentTimeMillis()
|
||||
addWrite.driverId = LoginStatusManager.getLoginInfo()?.driverId?:0
|
||||
addWrite.driverId = LoginStatusManager.getOchLoginInfo()?.driverId?:0
|
||||
addWrite.businessTime = System.currentTimeMillis()
|
||||
WriteOffDb.addOrUpdate(addWrite)
|
||||
val reslut = PassengerWriteOffResponse.Result(it.phone,it.ticketSize,it.ticketName,it.availableTimes?.toLong(),addWrite.businessTime)
|
||||
@@ -259,7 +259,7 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
addWrite.ticketSize = passenger.passengerSize
|
||||
addWrite.ticketName = passenger.ticketName
|
||||
//addWrite.msgId = OchSPManager.getSn()+System.currentTimeMillis()
|
||||
addWrite.driverId = LoginStatusManager.getLoginInfo()?.driverId?:0
|
||||
addWrite.driverId = LoginStatusManager.getOchLoginInfo()?.driverId?:0
|
||||
//addWrite.businessTime = System.currentTimeMillis()
|
||||
addWrite.updateStatus = WriteOffDataBean.updated
|
||||
WriteOffDb.addOrUpdate(addWrite)
|
||||
|
||||
@@ -4,10 +4,9 @@ import androidx.lifecycle.LifecycleOwner
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.mvp.Presenter
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin
|
||||
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
|
||||
@@ -44,7 +43,7 @@ class BusPresenter(view: ShuttleFragment?) : Presenter<ShuttleFragment?>(view),
|
||||
OrderModel.release()
|
||||
}
|
||||
|
||||
override fun onStatusChange(currentStatus: LoginStatusEnum) {
|
||||
override fun onLoginStatusChange(currentStatus: EnumLoginStatus) {
|
||||
d(TAG, " loginStatus =" + isLogin())
|
||||
if (!isLogin()) {
|
||||
BusTrajectoryManager.stopTrajReqLoop()
|
||||
|
||||
@@ -13,7 +13,6 @@ import com.mogo.eagle.core.function.view.SiteMarkerBean
|
||||
import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider
|
||||
import com.mogo.och.shuttle.weaknet.passenger.R
|
||||
import com.mogo.och.shuttle.weaknet.passenger.presenter.PM2DrivingPresenter
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil.*
|
||||
import com.mogo.och.common.module.utils.NumberFormatUtil
|
||||
import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
import com.mogo.och.data.bean.BusStationBean
|
||||
|
||||
@@ -18,7 +18,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.map.listener.IMogoMapListener
|
||||
import com.mogo.map.uicontroller.VisualAngleMode
|
||||
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
import com.mogo.och.data.taxi.TaxiOrderStatusEnum
|
||||
import com.mogo.och.common.module.utils.FlowBus
|
||||
import com.mogo.och.common.module.wigets.StartAutopilotAnimationView
|
||||
@@ -307,14 +307,14 @@ class TaxiFragment :MvpFragment<TaxiFragment?, TaxiPresenter?>(),
|
||||
* @param inOperation true 可以接单 false 暂停接单
|
||||
* @param role 测试车辆:测试 演示车辆:V 运营车辆: ""空
|
||||
*/
|
||||
fun updateOperationStatus(inOperation: OpenOrderStatusEnum) {
|
||||
fun updateOperationStatus(inOperation: Boolean) {
|
||||
e(
|
||||
SceneConstant.M_TAXI + TAG,
|
||||
"onOperationChanged:$inOperation"
|
||||
)
|
||||
updateOperationBtnStatusOnModeChange(MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingVerifyMode)
|
||||
MogoStatusManager.getInstance()
|
||||
.setTaxiUnmanedDriverTakingOrders(TAG, inOperation == OpenOrderStatusEnum.Ordering)
|
||||
.setTaxiUnmanedDriverTakingOrders(TAG, inOperation)
|
||||
}
|
||||
fun onNaviToEnd(isAmap: Boolean, isShow: Boolean) {
|
||||
if (isAmap) {
|
||||
|
||||
@@ -11,9 +11,9 @@ import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum;
|
||||
import com.mogo.och.common.module.biz.login.EnumLoginStatus;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum;
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus;
|
||||
import com.mogo.och.unmanned.taxi.utils.order.OrderListener;
|
||||
import com.mogo.och.unmanned.taxi.utils.order.OrderModel;
|
||||
import com.mogo.och.data.taxi.TaxiOrderStatusEnum;
|
||||
@@ -164,12 +164,12 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChange(LoginStatusEnum currentStatus) {
|
||||
public void onLoginStatusChange(EnumLoginStatus currentStatus) {
|
||||
UiThreadHandler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(mView!=null) {
|
||||
mView.updateOperationStatus(LoginStatusManager.getOpenOrderType());
|
||||
mView.updateOperationStatus(LoginStatusManager.isOpenOrderType());
|
||||
}
|
||||
}
|
||||
}, UiThreadHandler.MODE.QUEUE);
|
||||
@@ -179,12 +179,12 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum) {
|
||||
public void onOpenOrderStatusEnumChange(EnumOpenOrderStatus businessEnum) {
|
||||
UiThreadHandler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(mView!=null) {
|
||||
mView.updateOperationStatus(LoginStatusManager.getOpenOrderType());
|
||||
mView.updateOperationStatus(LoginStatusManager.isOpenOrderType());
|
||||
}
|
||||
}
|
||||
}, UiThreadHandler.MODE.QUEUE);
|
||||
|
||||
@@ -19,7 +19,7 @@ import com.mogo.och.data.taxi.TaxiOrderStatusEnum
|
||||
import com.mogo.och.bridge.autopilot.line.LineManager
|
||||
import com.mogo.och.bridge.autopilot.location.OchLocationManager
|
||||
import com.mogo.och.common.module.biz.birdge.BridgeManager
|
||||
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.utils.ToastUtilsOch
|
||||
@@ -514,14 +514,14 @@ class ItineraryCurrentModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
|
||||
fun cancleTask() {
|
||||
DebugView.printInfoMsg("[车辆复位] 准备发送请求")
|
||||
val openOrderType = LoginStatusManager.getOpenOrderType()
|
||||
val openOrderType = LoginStatusManager.isOpenOrderType()
|
||||
TaxiTaskWithOrderServiceManager.resetInit(
|
||||
AbsMogoApplication.getApp().applicationContext,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
DebugView.printInfoMsg("[车辆复位] 请求success")
|
||||
LoginStatusManager.queryLoginStatusByNet()
|
||||
if(openOrderType== OpenOrderStatusEnum.Ordering) {
|
||||
if(openOrderType) {
|
||||
VoiceNotice.showNotice("暂停接单啦!");
|
||||
}
|
||||
TaxiTaskModel.cancelAutopilot()
|
||||
|
||||
@@ -140,7 +140,7 @@ android {
|
||||
// 项目 business
|
||||
// 业务线 product
|
||||
// 车型 vehicle
|
||||
flavorDimensions "project","vehicle" ,"role", "env"
|
||||
flavorDimensions "project","role", "env"
|
||||
productFlavors {
|
||||
|
||||
}
|
||||
@@ -150,15 +150,7 @@ android {
|
||||
apply from: "./script/roleFlavors/passenger.gradle"
|
||||
apply from: "./script/roleFlavors/driverpassenger.gradle"
|
||||
|
||||
// 配置不同渠道参数,直接影响功能完整度
|
||||
apply from: "./script/vehicleFlavors/B1.gradle"
|
||||
apply from: "./script/vehicleFlavors/B2.gradle"
|
||||
apply from: "./script/vehicleFlavors/T1T2.gradle"
|
||||
apply from: "./script/vehicleFlavors/ALL.gradle"
|
||||
apply from: "./script/vehicleFlavors/C1.gradle"
|
||||
//包车
|
||||
apply from: "./script/vehicleFlavors/M1.gradle"
|
||||
apply from: "./script/flavorfilter/flavorsFilterConfig.gradle"
|
||||
// apply from: "./script/flavorfilter/flavorsFilterConfig.gradle"
|
||||
|
||||
packagingOptions {
|
||||
exclude 'META-INF/io.netty.versions.properties'
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"mogo": {
|
||||
"B1":["shuttle","bus"],
|
||||
"B2":["shuttle","bus"],
|
||||
"T1T2":["taxi"],
|
||||
"ALL":["charter","shuttle","bus","taxi"]
|
||||
},
|
||||
"dali": {
|
||||
"B1":["shuttle"],
|
||||
"B2":["shuttle"],
|
||||
"M1":["charter"]
|
||||
},
|
||||
"yantai": {
|
||||
"B1":["shuttle"],
|
||||
"B2":["shuttle"],
|
||||
"M1":["charter"]
|
||||
},
|
||||
"saas": {
|
||||
"T1T2":["taxi"],
|
||||
"B1":["shuttle","bus","scheduled"],
|
||||
"B2":["shuttle","bus","scheduled"],
|
||||
"M1":["charter","shuttle"],
|
||||
"ALL":["charter","shuttle","bus","taxi","scheduled"]
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,6 @@ project.android.productFlavors {
|
||||
buildConfigField 'String', 'URLs', "\"${readFileToJson("mogo").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'mediaUrlConfig', "\"${readMediaUrlConfigFromJsonFile("mogo").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'musicUrlConfig', "\"${readMusicUrlConfigFromJsonFile("mogo").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'supportBusiness', "\"${readProductWithVehicleConfigFromJsonFile("mogo").replace("\"", "\\\"")}\""
|
||||
}
|
||||
yantai {
|
||||
dimension "project"
|
||||
@@ -18,7 +17,6 @@ project.android.productFlavors {
|
||||
buildConfigField 'String', 'URLs', "\"${readFileToJson("yantai").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'mediaUrlConfig', "\"${readMediaUrlConfigFromJsonFile("yantai").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'musicUrlConfig', "\"${readMusicUrlConfigFromJsonFile("yantai").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'supportBusiness', "\"${readProductWithVehicleConfigFromJsonFile("yantai").replace("\"", "\\\"")}\""
|
||||
}
|
||||
|
||||
dali {
|
||||
@@ -28,7 +26,6 @@ project.android.productFlavors {
|
||||
buildConfigField 'String', 'URLs', "\"${readFileToJson("dali").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'mediaUrlConfig', "\"${readMediaUrlConfigFromJsonFile("dali").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'musicUrlConfig', "\"${readMusicUrlConfigFromJsonFile("dali").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'supportBusiness', "\"${readProductWithVehicleConfigFromJsonFile("dali").replace("\"", "\\\"")}\""
|
||||
}
|
||||
saas {
|
||||
dimension "project"
|
||||
@@ -37,7 +34,6 @@ project.android.productFlavors {
|
||||
buildConfigField 'String', 'URLs', "\"${readFileToJson("saas").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'mediaUrlConfig', "\"${readMediaUrlConfigFromJsonFile("saas").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'musicUrlConfig', "\"${readMusicUrlConfigFromJsonFile("saas").replace("\"", "\\\"")}\""
|
||||
buildConfigField 'String', 'supportBusiness', "\"${readProductWithVehicleConfigFromJsonFile("saas").replace("\"", "\\\"")}\""
|
||||
}
|
||||
|
||||
// 配置网络环境,QA、线上、演示
|
||||
|
||||
@@ -8,10 +8,6 @@ project.android.productFlavors {
|
||||
}
|
||||
}
|
||||
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_BODY : "Driver",
|
||||
]
|
||||
|
||||
// ①标识
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_BODY', "\"Driver\""
|
||||
|
||||
|
||||
@@ -9,10 +9,6 @@ project.android.productFlavors {
|
||||
}
|
||||
}
|
||||
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_BODY : "Passenger",
|
||||
]
|
||||
|
||||
// ①标识
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_BODY', "\"Passenger\""
|
||||
|
||||
|
||||
@@ -8,10 +8,6 @@ project.android.productFlavors {
|
||||
}
|
||||
}
|
||||
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_BODY : "Passenger",
|
||||
]
|
||||
|
||||
// ①标识
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_BODY', "\"Passenger\""
|
||||
|
||||
|
||||
@@ -30,38 +30,6 @@ Object readMediaUrlConfigFromJsonFile(env){
|
||||
return null
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取各车型宣传视频本地配置
|
||||
* @param env
|
||||
* @return
|
||||
*/
|
||||
Object readProductWithVehicleConfigFromJsonFile(env){
|
||||
try {
|
||||
// 加载config.json 文件
|
||||
File file = new File("${rootDir}/app/config/productWithVehicle.json")
|
||||
def jsonSlurper = new JsonSlurper()
|
||||
// 解析json
|
||||
def config = jsonSlurper.parse(file)
|
||||
def flavorNames = variantVehicleName()
|
||||
def jsonOutput = new JsonOutput()
|
||||
def getKey = flavorNames
|
||||
config.get(env).each {key, value ->
|
||||
// 匹配flavor对应的 json
|
||||
println "${env}____ 对比${flavorNames.toLowerCase()}---------${key}---${value}"
|
||||
if(flavorNames.toLowerCase().contains("${env}${key.toLowerCase()}")){
|
||||
getKey = key
|
||||
println "对比结果${flavorNames.toLowerCase()}---------${key}"
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return jsonOutput.toJson(config.get(env).get(getKey))
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -139,5 +107,4 @@ ext {
|
||||
isBaiLing = this.&isBaiLing
|
||||
readMediaUrlConfigFromJsonFile = this.&readMediaUrlConfigFromJsonFile
|
||||
readMusicUrlConfigFromJsonFile = this.&readMusicUrlConfigFromJsonFile
|
||||
readProductWithVehicleConfigFromJsonFile = this.&readProductWithVehicleConfigFromJsonFile
|
||||
}
|
||||
@@ -4,24 +4,6 @@ project.android.productFlavors {
|
||||
dimension "vehicle"
|
||||
missingDimensionStrategy "vehicle","dfhq","jinlvvan"
|
||||
|
||||
|
||||
// 配置AndroidManifest.xml中用到的参数
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL: "ALL",
|
||||
]
|
||||
|
||||
|
||||
// ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"ALL\""
|
||||
|
||||
// ②构建的是否要动态更换模型
|
||||
buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'true'
|
||||
|
||||
// ③能启动自驾的档位 MAP<360代码中会移除P档
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);}}'
|
||||
|
||||
// ④是否支持多屏显示
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,21 +5,5 @@ project.android.productFlavors {
|
||||
matchingFallbacks = ['jinlvvan']
|
||||
missingDimensionStrategy "vehicle", "jinlvvan"
|
||||
|
||||
// 配置AndroidManifest.xml中用到的参数
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL : "B1",
|
||||
]
|
||||
|
||||
// ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"B1\""
|
||||
|
||||
// ②构建的是否要动态更换模型
|
||||
buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'true'
|
||||
|
||||
// ③能启动自驾的档位
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);}}'
|
||||
|
||||
// ④是否支持多屏显示
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
}
|
||||
}
|
||||
@@ -12,21 +12,6 @@ project.android.productFlavors {
|
||||
matchingFallbacks = ['jinlvvan']
|
||||
missingDimensionStrategy "vehicle", "m21", "jinlvvan"
|
||||
}
|
||||
//高德地图鉴权信息
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL: "B2",
|
||||
]
|
||||
|
||||
// ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"B2\""
|
||||
|
||||
// ②构建的是否要动态更换模型
|
||||
buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'false'
|
||||
|
||||
// ③M2能启动自驾的档位
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);}}'
|
||||
|
||||
// ④是否支持多屏显示
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
}
|
||||
}
|
||||
@@ -5,26 +5,11 @@ project.android.productFlavors {
|
||||
missingDimensionStrategy "vehicle","ft","jinlvvan"
|
||||
|
||||
|
||||
// 配置AndroidManifest.xml中用到的参数
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL: "C1",
|
||||
]
|
||||
|
||||
// ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"C1\""
|
||||
|
||||
// ②构建的是否要动态更换模型
|
||||
buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'true'
|
||||
|
||||
// ③能启动自驾的档位
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR', 'null'
|
||||
// ⑤清扫车 默认模式(运营/云控)
|
||||
buildConfigField 'String', 'SWEEPER_DEFAULT_MODE', '\"Cloud\"'
|
||||
|
||||
// ⑥清扫车 是否能切换模式
|
||||
buildConfigField 'boolean', 'SWEEPER_CAN_SWITCH_MODE', 'true'
|
||||
|
||||
// ④是否支持多屏显示
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
}
|
||||
}
|
||||
@@ -3,21 +3,5 @@ project.android.productFlavors {
|
||||
M1 {
|
||||
dimension "vehicle"
|
||||
missingDimensionStrategy "vehicle", "jinlvvan"
|
||||
|
||||
// 配置AndroidManifest.xml中用到的参数
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL: "M1",
|
||||
]
|
||||
|
||||
// ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"M1\""
|
||||
// ②M1能启动自驾的档位
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);}}'
|
||||
// ③不能启动自驾的档位
|
||||
buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'false'
|
||||
|
||||
// ④是否支持多屏显示
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
|
||||
}
|
||||
}
|
||||
@@ -4,24 +4,9 @@ project.android.productFlavors {
|
||||
dimension "vehicle"
|
||||
missingDimensionStrategy "vehicle","dfhq","jinlvvan"
|
||||
|
||||
|
||||
// 配置AndroidManifest.xml中用到的参数
|
||||
manifestPlaceholders = [
|
||||
CHANNEL_VALUE_TAIL: "T1T2",
|
||||
]
|
||||
|
||||
|
||||
// ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
|
||||
buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"T1T2\""
|
||||
|
||||
// ②构建的是否要动态更换模型
|
||||
buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'true'
|
||||
|
||||
// ③能启动自驾的档位 MAP<360代码中会移除P档
|
||||
buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);}}'
|
||||
|
||||
// ④是否支持多屏显示
|
||||
buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false'
|
||||
}
|
||||
|
||||
}
|
||||
@@ -51,10 +51,6 @@ object ConfigStartUp {
|
||||
// 演示模式,上一次勾选的数据
|
||||
FunctionBuildConfig.isDemoMode = BuildConfig.IS_DEMO_MODE
|
||||
FunctionBuildConfig.ttsLanguage = BuildConfig.ttsLanguage
|
||||
// 支持的业务类型
|
||||
if(!StringUtils.isEmpty(BuildConfig.supportBusiness)&&BuildConfig.supportBusiness!="null"){
|
||||
FunctionBuildConfig.supportBusiness = GsonUtils.fromJson(BuildConfig.supportBusiness, object : TypeToken<MutableList<String>>() {}.type)
|
||||
}
|
||||
// 各个module需要的url
|
||||
FunctionBuildConfig.urlJson = GsonUtils.fromJson(BuildConfig.URLs, UrlConfig::class.java)
|
||||
|
||||
@@ -68,15 +64,7 @@ object ConfigStartUp {
|
||||
// app安装的身份信息
|
||||
// 这里影响当前Activity的身份信息,多进程,主进程为司机端,:passenger 进程为乘客端
|
||||
// TODO emArrow isMultiDisplay暂时不启用,仅测试3588,在B2 2024车预研
|
||||
if (DebugConfig.isMultiDisplay()) {
|
||||
if(ProcessUtils.getCurrentProcessName().contains("passenger")){
|
||||
FunctionBuildConfig.appIdentityMode = "Product_Passenger_${BuildConfig.APP_IDENTITY_MODE_TAIL}"
|
||||
}else{
|
||||
FunctionBuildConfig.appIdentityMode = "Product_Driver_${BuildConfig.APP_IDENTITY_MODE_TAIL}"
|
||||
}
|
||||
}else{
|
||||
FunctionBuildConfig.appIdentityMode = "Product_${BuildConfig.APP_IDENTITY_MODE_BODY}_${BuildConfig.APP_IDENTITY_MODE_TAIL}"
|
||||
}
|
||||
FunctionBuildConfig.appIdentityMode = "Product_${BuildConfig.APP_IDENTITY_MODE_BODY}_Vehicle"
|
||||
// 不同身份对应不同的IP地址
|
||||
FunctionBuildConfig.adasConnectIP = BuildConfig.ADAS_CONNECT_IP
|
||||
// 是否开启secure校验
|
||||
@@ -102,11 +90,10 @@ object ConfigStartUp {
|
||||
DebugConfig.setCarMachineType(BuildConfig.CAR_MACHINE_TYPE)
|
||||
// todo DebugConfig.setProductFlavor(BuildConfig.FLAVOR_product)
|
||||
DebugConfig.setProjectFlavor(BuildConfig.FLAVOR_project)
|
||||
DebugConfig.setEnvFlavor(BuildConfig.FLAVOR_env)
|
||||
DebugConfig.setSocketAppId(BuildConfig.SOCKET_APP_ID)
|
||||
DebugConfig.setMapVersion(BuildConfig.MAP_SDK_VERSION)
|
||||
DebugConfig.setMapOptVersion(BuildConfig.MAP_SDK_OPT_VERSION)
|
||||
DebugConfig.setMultiDisplay(BuildConfig.IS_MULTI_DISPLAY)
|
||||
DebugConfig.setCarModelChange(BuildConfig.IS_CAR_MODEL_CHANGE)
|
||||
}
|
||||
|
||||
private fun initOtherConfig(context: Context) {
|
||||
|
||||
@@ -165,21 +165,6 @@ class BindingCarNetWorkManager private constructor() {
|
||||
})
|
||||
}
|
||||
|
||||
private fun updateCarVrIconRes(brandId: String?) {
|
||||
d(SceneConstant.M_DEVA + TAG, "CarModelChange : ${DebugConfig.isCarModelChange()}")
|
||||
if (!DebugConfig.isCarModelChange()) {
|
||||
return
|
||||
}
|
||||
if (brandId == null || brandId.isEmpty()) {
|
||||
return
|
||||
}
|
||||
d(SceneConstant.M_DEVA + TAG, "getDefaultId() : ${getDefaultId()} ---- brandId = $brandId")
|
||||
if (getDefaultId() == brandId) {
|
||||
return
|
||||
}
|
||||
d(SceneConstant.M_DEVA + TAG, "updateCarVrIconRes : $brandId")
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_INIT,
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
android:hardwareAccelerated="true"
|
||||
android:launchMode="singleTask"
|
||||
android:resizeableActivity="false"
|
||||
android:screenOrientation="landscape"
|
||||
android:screenOrientation="locked"
|
||||
android:resumeWhilePausing="true"
|
||||
android:stateNotNeeded="true"
|
||||
android:theme="@style/Main"
|
||||
@@ -89,7 +89,7 @@
|
||||
android:process=":passenger"
|
||||
android:resizeableActivity="false"
|
||||
android:resumeWhilePausing="true"
|
||||
android:screenOrientation="landscape"
|
||||
android:screenOrientation="locked"
|
||||
android:stateNotNeeded="true"
|
||||
android:theme="@style/Main"
|
||||
android:windowSoftInputMode="adjustPan|stateHidden">
|
||||
|
||||
@@ -2093,13 +2093,13 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
AppIdentityModeUtils.getProduct(
|
||||
FunctionBuildConfig.appIdentityMode
|
||||
)
|
||||
}"
|
||||
}_${AppIdentityModeUtils.getVehicle(FunctionBuildConfig.appIdentityMode)}"
|
||||
tvAppVersionNameKey.text =
|
||||
"鹰眼版本:${AppUtils.getAppVersionName()} Git Hash:${AppConfigInfo.workingBranchHash}\n渠道信息:${AppConfigInfo.flavor}_${
|
||||
AppIdentityModeUtils.getProduct(
|
||||
FunctionBuildConfig.appIdentityMode
|
||||
)
|
||||
}"
|
||||
}_${AppIdentityModeUtils.getVehicle(FunctionBuildConfig.appIdentityMode)}"
|
||||
|
||||
tvAutopilotProtocolVersionInfo.text =
|
||||
"Autopilot协议版本:${CallerAutoPilotControlManager.getProtocolVersion()}"
|
||||
|
||||
@@ -45,17 +45,6 @@ public class MainLauncherActivity extends MainActivity {
|
||||
EventBus.getDefault().register(this);
|
||||
CallerLogger.i(M_HMI + TAG, "onCreate");
|
||||
|
||||
if(DebugConfig.isMultiDisplay()){
|
||||
try {
|
||||
// 在第二个屏幕启动乘客端app
|
||||
// 多进程方案
|
||||
CallerLogger.i(M_HMI + TAG, "MultiDisplayUtils startActWithSecond");
|
||||
// MultiDisplayUtils.INSTANCE.startActWithSecond(this, "com.mogo.launcher.passenger");
|
||||
// MultiDisplayUtils.INSTANCE.startActWithSecond(this, PassengerLauncherActivity.class);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -89,24 +78,17 @@ public class MainLauncherActivity extends MainActivity {
|
||||
private void loadOCHModule() {
|
||||
IMoGoFunctionProvider ochProvider;
|
||||
// 兼容处理之前联想PAD及小巴车多个设备部署不同APP方案
|
||||
if (!DebugConfig.isMultiDisplay()) {
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
Log.i("emArrow","Driver start");
|
||||
ochProvider = (IMoGoFunctionProvider) ARouter.getInstance()
|
||||
.build("/driver/api")
|
||||
.navigation(getContext());
|
||||
} else if(AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){
|
||||
Log.i("emArrow","Passenger start");
|
||||
ochProvider = (IMoGoFunctionProvider) ARouter.getInstance()
|
||||
.build("/passenger/api")
|
||||
.navigation(getContext());
|
||||
} else {
|
||||
ochProvider = (IMoGoFunctionProvider) ARouter.getInstance()
|
||||
.build("/driver/api")
|
||||
.navigation(getContext());
|
||||
}
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
Log.i("emArrow","Driver start");
|
||||
ochProvider = (IMoGoFunctionProvider) ARouter.getInstance()
|
||||
.build("/driver/api")
|
||||
.navigation(getContext());
|
||||
} else if(AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){
|
||||
Log.i("emArrow","Passenger start");
|
||||
ochProvider = (IMoGoFunctionProvider) ARouter.getInstance()
|
||||
.build("/passenger/api")
|
||||
.navigation(getContext());
|
||||
} else {
|
||||
// 目前只有金旅星辰乘客屏是连接的双屏
|
||||
ochProvider = (IMoGoFunctionProvider) ARouter.getInstance()
|
||||
.build("/driver/api")
|
||||
.navigation(getContext());
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.commons.module.MogoModule;
|
||||
import com.mogo.commons.module.MogoModulePaths;
|
||||
import com.mogo.commons.storage.SharedPrefsMgr;
|
||||
import com.mogo.commons.utils.MogoAnalyticUtils;
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths;
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.function.api.startup.IStartUpProvider
|
||||
import com.mogo.eagle.core.function.startup.stageone.APMStartup
|
||||
import com.mogo.eagle.core.function.startup.stageone.CarBizInfoStartup
|
||||
import com.mogo.eagle.core.function.startup.stageone.HttpDnsStartUp
|
||||
import com.mogo.eagle.core.function.startup.stagetwo.*
|
||||
import com.rousetime.android_startup.StartupListener
|
||||
@@ -53,6 +54,7 @@ class MogoStartUpProvider : IStartUpProvider {
|
||||
StartupManager.Builder()
|
||||
.addStartup(HttpDnsStartUp())
|
||||
.addStartup(APMStartup())
|
||||
.addStartup(CarBizInfoStartup())
|
||||
.setConfig(config)
|
||||
.build(it)
|
||||
.start()
|
||||
@@ -70,6 +72,7 @@ class MogoStartUpProvider : IStartUpProvider {
|
||||
}
|
||||
context?.let {
|
||||
StartupManager.Builder()
|
||||
.addStartup(ScreenStartUp())
|
||||
.addStartup(DataCenterStartUp())
|
||||
.addStartup(AutopilotStartUp())
|
||||
.addStartup(ObuStartUp())
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.mogo.eagle.core.function.startup.stageone
|
||||
|
||||
import android.content.Context
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.screen.ScreenHelper
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.Product
|
||||
import com.mogo.eagle.core.utilcode.mogo.Vehicle
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.rousetime.android_startup.AndroidStartup
|
||||
|
||||
class CarBizInfoStartup : AndroidStartup<Boolean?>() {
|
||||
|
||||
private val OCHPRODUCT = "OCHPRODUCT"
|
||||
private val OCHVEHICLE = "OCHVEHICLE"
|
||||
private val loginInfoKey = "LOGININFOKEY"
|
||||
|
||||
private val tag = "CarBizInfoStartup"
|
||||
|
||||
|
||||
override fun create(context: Context): Boolean? {
|
||||
CallerLogger.d(tag,"开始设置:${FunctionBuildConfig.appIdentityMode}")
|
||||
// apm
|
||||
val ochProduct = SharedPrefsMgr.getInstance().getString(OCHPRODUCT)
|
||||
val ochVehicle = SharedPrefsMgr.getInstance().getString(OCHVEHICLE)
|
||||
if(!ochProduct.isNullOrEmpty()&&!ochVehicle.isNullOrEmpty()){
|
||||
val (_, identity, _) = AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode)
|
||||
FunctionBuildConfig.appIdentityMode = "${ochProduct}_${identity}_${ochVehicle}"
|
||||
CallerLogger.d(tag,"设置成功1:${FunctionBuildConfig.appIdentityMode}")
|
||||
ScreenHelper.setScreenConfig(context)
|
||||
}else{
|
||||
SharedPrefsMgr.getInstance().getString(loginInfoKey)?.let {
|
||||
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
|
||||
if (it.startsWith(timeText)) {
|
||||
val loginjson = it.replace(timeText, "")
|
||||
val type = object : TypeToken<HashMap<String, Any>>() {}.type
|
||||
val hashMap:HashMap<String,Any> = GsonUtils.fromJson(loginjson,type)
|
||||
val businessType = hashMap["businessType"]
|
||||
val carModel = hashMap["carModel"]
|
||||
if(businessType is Int && carModel is String && carModel.isNotEmpty()){
|
||||
val product = Product.getName(businessType)
|
||||
val vehicle = Vehicle.getCarVehicleFromServerName(carModel)
|
||||
if(product.isNotEmpty()&&vehicle!=Vehicle.NONE){
|
||||
val (_, identity, _) = AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode)
|
||||
FunctionBuildConfig.appIdentityMode = "${ochProduct}_${identity}_${ochVehicle}"
|
||||
ScreenHelper.setScreenConfig(context)
|
||||
CallerLogger.d(tag,"设置成功2:${FunctionBuildConfig.appIdentityMode}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
CallerLogger.d(tag,"结束设置:${FunctionBuildConfig.appIdentityMode}")
|
||||
return true
|
||||
}
|
||||
|
||||
override fun callCreateOnMainThread(): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun waitOnMainThread(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun dependenciesByName(): List<String> {
|
||||
return emptyList()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.mogo.eagle.core.function.startup.stagetwo
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.ActivityInfo
|
||||
import com.mogo.commons.screen.ScreenHelper
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ActivityUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ScreenUtils
|
||||
import com.rousetime.android_startup.AndroidStartup
|
||||
|
||||
class ScreenStartUp: AndroidStartup<Boolean>() {
|
||||
|
||||
override fun create(context: Context): Boolean? {
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
ActivityUtils.getTopActivity().requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
|
||||
}else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
|
||||
ActivityUtils.getTopActivity().requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
||||
}else{
|
||||
ActivityUtils.getTopActivity().requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
|
||||
}
|
||||
}else{
|
||||
ActivityUtils.getTopActivity().requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun callCreateOnMainThread(): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun waitOnMainThread(): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun dependenciesByName(): List<String>? {
|
||||
return emptyList()
|
||||
}
|
||||
}
|
||||
@@ -146,12 +146,6 @@ object FunctionBuildConfig {
|
||||
@JvmField
|
||||
var ttsLanguage = 1
|
||||
|
||||
|
||||
@Volatile
|
||||
@JvmField
|
||||
var supportBusiness = mutableListOf<String>()
|
||||
|
||||
|
||||
/**
|
||||
* 各车型宣传视频本地配置
|
||||
* 广告json
|
||||
|
||||
@@ -115,4 +115,7 @@ interface IEagleBaseFunctionCall4Och {
|
||||
*/
|
||||
fun setOchAutopilotOrderId(orderId:String){}
|
||||
|
||||
fun onOchProductChange(){}
|
||||
|
||||
fun onOchVehicleChange(){}
|
||||
}
|
||||
@@ -11,11 +11,6 @@ import com.alibaba.android.arouter.facade.template.IProvider
|
||||
*/
|
||||
interface IOchCustomViewProvider : IProvider {
|
||||
|
||||
/**
|
||||
* Interface Tag
|
||||
*/
|
||||
val TAG: String
|
||||
get() = "IOchCustomViewProvider"
|
||||
|
||||
/**
|
||||
* 创建 Och业务层 自定义View
|
||||
|
||||
@@ -130,4 +130,12 @@ object CallerEagleBaseFunctionCall4OchManager : IEagleBaseFunctionCall4Och {
|
||||
override fun onOrderRemoval() {
|
||||
CallerDataCenterBizManager.notifyOrderRemoval()
|
||||
}
|
||||
|
||||
override fun onOchProductChange() {
|
||||
|
||||
}
|
||||
|
||||
override fun onOchVehicleChange() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ object CallerOchCustomViewManager {
|
||||
.navigation() as? IOchCustomViewProvider
|
||||
|
||||
fun init(context: Context) {
|
||||
ochCustomViewProviderApi?.init(context)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -330,6 +330,12 @@ object AppIdentityModeUtils {
|
||||
else -> Role.NONE
|
||||
}
|
||||
}
|
||||
|
||||
fun getVehicle(appIdentityMode: String):Vehicle{
|
||||
val (_, _, carType) = getInfo(appIdentityMode)
|
||||
return Vehicle.getVehicleByName(carType)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getCarType(appIdentityMode: String): CarType {
|
||||
val (_, _, carType) = getInfo(appIdentityMode)
|
||||
@@ -371,6 +377,75 @@ enum class Product(val code: Int) {
|
||||
}
|
||||
return NONE
|
||||
}
|
||||
fun getName(code: Int?):String{
|
||||
val product = valueOf(code)
|
||||
return when (product) {
|
||||
NONE -> ""
|
||||
BUS -> AppIdentityModeUtils.BUS
|
||||
TAXI -> AppIdentityModeUtils.TAXI
|
||||
SWEEPER -> AppIdentityModeUtils.SWEEPER
|
||||
SHUTTLE -> AppIdentityModeUtils.SHUTTLE
|
||||
CHARTER -> AppIdentityModeUtils.CHARTER
|
||||
SCHEDULED -> AppIdentityModeUtils.SCHEDULED
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum class Vehicle(val code:String){
|
||||
NONE("Vehicle"),
|
||||
T1T2("T1T2"),
|
||||
B1("B1"),
|
||||
B2("B2"),
|
||||
C1("C1"),
|
||||
M1("M1");
|
||||
companion object{
|
||||
fun getVehicleByName(name:String):Vehicle{
|
||||
return when (name) {
|
||||
NONE.code -> {NONE}
|
||||
T1T2.code -> {T1T2}
|
||||
B1.code -> {B1}
|
||||
B2.code -> {B2}
|
||||
C1.code -> {C1}
|
||||
M1.code -> {M1}
|
||||
else -> {
|
||||
NONE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getCarVehicleFromServerName(serverName:String?): Vehicle {
|
||||
return when (serverName) {
|
||||
"E70" -> {
|
||||
T1T2
|
||||
}
|
||||
"H9" -> {
|
||||
T1T2
|
||||
}
|
||||
"B1" -> {
|
||||
B1
|
||||
}
|
||||
"金旅牌XML6606JEVY0" -> {
|
||||
B1
|
||||
}
|
||||
"NJL6450ICEV" -> {
|
||||
B1
|
||||
}
|
||||
"B2","M2" -> {
|
||||
B2
|
||||
}
|
||||
"M1" -> {
|
||||
M1
|
||||
}
|
||||
"BJ5122TXSEV-H1" -> {
|
||||
C1
|
||||
}
|
||||
else -> {
|
||||
T1T2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ class SceneConstant {
|
||||
const val M_OTHER = "M_OTHER-"
|
||||
|
||||
// Och common
|
||||
const val M_OCHCOMMON = "M_OCHCOMMON-"
|
||||
const val M_OCHCOMMON = "M_OCH-"
|
||||
|
||||
// Och offline
|
||||
const val M_OFFLINE = "M_OFFLINE-"
|
||||
|
||||
@@ -126,6 +126,8 @@ public class DebugConfig {
|
||||
private static String sProductFlavor;
|
||||
private static String sProjectFlavor = "";
|
||||
|
||||
private static String sEnvFlavor = "";
|
||||
|
||||
public static String getProductFlavor() {
|
||||
return sProductFlavor;
|
||||
}
|
||||
@@ -151,6 +153,18 @@ public class DebugConfig {
|
||||
return sProjectFlavor;
|
||||
}
|
||||
|
||||
/**
|
||||
* project flavor
|
||||
* @param projectFlavor
|
||||
*/
|
||||
public static void setEnvFlavor(String projectFlavor) {
|
||||
DebugConfig.sEnvFlavor = projectFlavor;
|
||||
}
|
||||
|
||||
public static String getEnvFlavor() {
|
||||
return sEnvFlavor;
|
||||
}
|
||||
|
||||
private static String sSocketAppId;
|
||||
|
||||
public static void setSocketAppId(String sSocketAppId) {
|
||||
@@ -181,25 +195,4 @@ public class DebugConfig {
|
||||
return mapOptVersion;
|
||||
}
|
||||
|
||||
// 兼容是否支持多屏幕方案
|
||||
private static boolean isMultiDisplay = false;
|
||||
|
||||
public static void setMultiDisplay(boolean status) {
|
||||
isMultiDisplay = status;
|
||||
}
|
||||
|
||||
public static boolean isMultiDisplay() {
|
||||
return isMultiDisplay;
|
||||
}
|
||||
|
||||
// 兼容是否支持多屏幕方案
|
||||
private static boolean isCarModelChange = true;
|
||||
|
||||
public static void setCarModelChange(boolean status) {
|
||||
isCarModelChange = status;
|
||||
}
|
||||
|
||||
public static boolean isCarModelChange() {
|
||||
return isCarModelChange;
|
||||
}
|
||||
}
|
||||
|
||||
32
foudations/mogo-commons/src/main/java/com/mogo/commons/env/EnvUtils.kt
vendored
Normal file
32
foudations/mogo-commons/src/main/java/com/mogo/commons/env/EnvUtils.kt
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
package com.mogo.commons.env
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
|
||||
object EnvUtils {
|
||||
fun isQA(): Boolean {
|
||||
return DebugConfig.getEnvFlavor() == Env.QA.value
|
||||
}
|
||||
|
||||
fun isOnLine(): Boolean {
|
||||
return DebugConfig.getEnvFlavor() == Env.ONLINE.value
|
||||
}
|
||||
|
||||
fun getEnvType(): Env {
|
||||
when (DebugConfig.getEnvFlavor()) {
|
||||
Env.QA.value -> {
|
||||
return Env.QA
|
||||
}
|
||||
|
||||
Env.ONLINE.value -> {
|
||||
return Env.ONLINE
|
||||
}
|
||||
}
|
||||
return Env.ONLINE
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
enum class Env(val value: String) {
|
||||
QA("qa"),
|
||||
ONLINE("online"),
|
||||
}
|
||||
@@ -1,10 +1,14 @@
|
||||
package com.mogo.commons.mvp;
|
||||
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.ActivityUtils;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2019-12-23
|
||||
|
||||
@@ -160,7 +160,6 @@ object MogoAnalyticUtils {
|
||||
AppConfigInfo.netMode
|
||||
}
|
||||
}
|
||||
map["app_support_business"] = FunctionBuildConfig.supportBusiness
|
||||
|
||||
map["product_type"] =
|
||||
AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode).name
|
||||
|
||||
Reference in New Issue
Block a user