Merge branch 'dev_robotaxi-d_240523_6.4.4' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_240523_6.4.4
This commit is contained in:
@@ -9,6 +9,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
|
||||
import com.mogo.eagle.core.utilcode.util.ActivityUtils
|
||||
import com.mogo.eagle.core.utilcode.util.DeviceUtils
|
||||
import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils
|
||||
import com.mogo.och.bus.passenger.passenger.ui.PM2BaseFragment
|
||||
import com.mogo.och.bus.passenger.passenger.ui.widget.M2StatusBarView
|
||||
@@ -31,7 +32,7 @@ class BusPassengerProvider : CommonServiceImpl() {
|
||||
private var mPM2Fragment: Fragment?=null
|
||||
|
||||
override fun getFragment(): Fragment {
|
||||
if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
|
||||
if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode) && DeviceUtils.isEB5Model()) {
|
||||
MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java)
|
||||
}
|
||||
if(mPM2Fragment==null){
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.mogo.och.common.module.BuildConfig
|
||||
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.LoginStatusManager
|
||||
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
|
||||
@@ -21,7 +22,7 @@ import com.mogo.och.common.module.utils.FlavorUtils
|
||||
object LoginLanDriverSocket : ILoginCallback {
|
||||
private const val TAG = "LoginLanSocket"
|
||||
|
||||
// 客户端注册
|
||||
// 接受到客户端注册信息后立即返回业务模式
|
||||
private val registerListener = object : ILanMessageListener<BaseDPMsg> {
|
||||
override fun target(): Class<BaseDPMsg> {
|
||||
return BaseDPMsg::class.java
|
||||
@@ -31,13 +32,11 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
println("-------${obj}")
|
||||
if(LoginStatusManager.isLogin()) {
|
||||
FlavorUtils.getEnvCheck()
|
||||
val msg =
|
||||
ChangeBusinessType(FlavorUtils.vehicleType!!, FlavorUtils.businessType!!, FlavorUtils.projectType!!, FlavorUtils.envType!!)
|
||||
val msg = ChangeBusinessType(FlavorUtils.vehicleType!!, FlavorUtils.businessType!!, FlavorUtils.projectType!!, FlavorUtils.envType!!)
|
||||
LanSocketManager.sendMsgToClient(msg)
|
||||
}else{
|
||||
FlavorUtils.getEnvCheck()
|
||||
val msg =
|
||||
ChangeBusinessType(FlavorUtils.vehicleType!!, BusinessType.none, FlavorUtils.projectType!!, FlavorUtils.envType!!)
|
||||
val msg = ChangeBusinessType(FlavorUtils.vehicleType!!, BusinessType.none, FlavorUtils.projectType!!, FlavorUtils.envType!!)
|
||||
LanSocketManager.sendMsgToClient(msg)
|
||||
}
|
||||
}
|
||||
@@ -45,11 +44,13 @@ object LoginLanDriverSocket : ILoginCallback {
|
||||
};
|
||||
|
||||
fun load() {
|
||||
LanSocketManager.load()
|
||||
OchChainLogManager.writeChainLogInit("初始化信息","初始司机屏局域网内通知监听")
|
||||
}
|
||||
|
||||
init {
|
||||
// 登录状态变化的监听
|
||||
LoginStatusManager.addListener(TAG, this)
|
||||
// 注册监听乘客屏和报站屏注册信息
|
||||
LanSocketManager.registerSocketMessageListener(
|
||||
DPMsgType.TYPE_CLIENT_REGISTER.type,
|
||||
TAG,
|
||||
|
||||
@@ -21,6 +21,7 @@ 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 java.lang.StringBuilder
|
||||
import kotlin.properties.Delegates
|
||||
@@ -70,6 +71,9 @@ object LoginLanPassengerSocket : IReceivedMsgListener {
|
||||
if (obj.isNotEmpty()) {
|
||||
val first = obj.first() as EnvCheck
|
||||
val checkEnv = checkEnv(first.projectType, first.envType, first.vehicleType, first.businessType)
|
||||
if (first.sourceScreenType== ScreenType.Driver) {
|
||||
driverSn = first.sourceSn
|
||||
}
|
||||
if(checkEnv){
|
||||
|
||||
}else{
|
||||
@@ -131,19 +135,21 @@ object LoginLanPassengerSocket : IReceivedMsgListener {
|
||||
};
|
||||
|
||||
fun load() {
|
||||
LanSocketManager.load()
|
||||
OchChainLogManager.writeChainLogInit("初始化信息","初始局乘客屏局域网内部分信息")
|
||||
}
|
||||
|
||||
init {
|
||||
//监听司机端消息
|
||||
CallerTelematicListenerManager.addListener(TAG, this)
|
||||
//轮训获取和司机屏连接
|
||||
BizLoopManager.setLoopFunction(TAG, LoopInfo(3, ::showConnectStatusWithDriver))
|
||||
// 乘客屏
|
||||
// 乘客屏监听司机端发送的环境校验
|
||||
LanSocketManager.registerSocketMessageListener(
|
||||
DPMsgType.TYPE_ENV_CHECK.type,
|
||||
TAG,
|
||||
checkListener
|
||||
)
|
||||
// 乘客屏监听司机端发送的业务修改通知(
|
||||
LanSocketManager.registerSocketMessageListener(
|
||||
DPMsgType.TYPE_CHANGE_BUSINESS_TYPE.type,
|
||||
TAG,
|
||||
@@ -151,9 +157,7 @@ object LoginLanPassengerSocket : IReceivedMsgListener {
|
||||
)
|
||||
}
|
||||
|
||||
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
|
||||
|
||||
}
|
||||
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {}
|
||||
|
||||
private fun showConnectStatusWithDriver(){
|
||||
CallerLogger.d(TAG,"司机屏连接状态:${CallerTelematicManager.getClientConnStatus()}")
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
package com.mogo.och.common.module.biz.login;
|
||||
|
||||
public class LoginInfo {
|
||||
public int driverStatus; //1登录,0登出
|
||||
public int servingStatus;//1接单中,0暂停接单
|
||||
public int businessType; //9: taxi. 10: bus公交 11:接驳 13:包车
|
||||
public String orderNo;
|
||||
public int purpose; // 1 运营, 2 测试, 3演示
|
||||
public String sn;
|
||||
public String plateNumber;//车牌号
|
||||
public String phone;//手机号
|
||||
public Integer lineId;//线路id
|
||||
public Integer taskId;//任务id
|
||||
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 Integer lineId;//线路id
|
||||
private Integer taskId;//任务id
|
||||
private String vin;//车辆唯一识别码
|
||||
private String cityCode;//城市编码
|
||||
private String brand;//东风
|
||||
private String carModel;//E70 型号
|
||||
private String photos;//车身照片:
|
||||
|
||||
public int getDriverStatus() {
|
||||
return driverStatus;
|
||||
@@ -76,6 +81,62 @@ public class LoginInfo {
|
||||
this.taskId = taskId;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LoginInfo{" +
|
||||
@@ -89,6 +150,11 @@ public class LoginInfo {
|
||||
", phone='" + phone + '\'' +
|
||||
", lineId=" + lineId +
|
||||
", taskId=" + taskId +
|
||||
", vin='" + vin + '\'' +
|
||||
", cityCode='" + cityCode + '\'' +
|
||||
", brand='" + brand + '\'' +
|
||||
", carModel='" + carModel + '\'' +
|
||||
", photos='" + photos + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.mogo.och.common.module.manager.device.checkvin
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.LifecycleObserver
|
||||
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import kotlinx.android.synthetic.main.common_checkvin_view.actv_see
|
||||
|
||||
class CheckVinErrorDialog(context: Context) : BaseFloatDialog(context), LifecycleObserver {
|
||||
|
||||
companion object{
|
||||
const val EVENT_KEY_INFO_CHECK_VIN = "analytics_event_och_check_vin"
|
||||
}
|
||||
|
||||
init {
|
||||
setContentView(R.layout.common_checkvin_view)
|
||||
setCanceledOnTouchOutside(true)
|
||||
|
||||
actv_see.onClick {
|
||||
OchChainLogManager.writeChainLog("vinCheck","用户点击了 ”我知道了“",true,EVENT_KEY_INFO_CHECK_VIN)
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
fun showDialog() {
|
||||
if (isShowing) {
|
||||
return
|
||||
}
|
||||
show()
|
||||
}
|
||||
|
||||
fun hideDialog() {
|
||||
if (isShowing) {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.mogo.och.common.module.manager.device.checkvin
|
||||
|
||||
import chassis.Chassis
|
||||
import chassis.VehicleStateOuterClass
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisDoorStateListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisDoorStateListenerManager
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.ActivityUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.device.callback.DoorStateCallback
|
||||
import com.mogo.och.common.module.manager.device.data.DoorPosition
|
||||
import com.mogo.och.common.module.manager.device.data.DoorState
|
||||
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 io.reactivex.schedulers.Schedulers
|
||||
|
||||
object CheckVinManager : IMoGoChassisDoorStateListener {
|
||||
private val TAG = CheckVinManager::class.java.simpleName
|
||||
|
||||
init {
|
||||
BizLoopManager.setLoopFunction(TAG, LoopInfo(60,::checkVin,scheduler = Schedulers.io()))
|
||||
}
|
||||
|
||||
private var checkVinErrorDialog:CheckVinErrorDialog?=null
|
||||
|
||||
private fun checkVin() {
|
||||
LoginStatusManager.getLoginInfo()?.let {loginInfo ->
|
||||
val serverVin = loginInfo.vin
|
||||
val delineVin = CallerAutoPilotControlManager.getVIN()
|
||||
OchChainLogManager.writeChainLog(
|
||||
"checkVin",
|
||||
"5分钟检测VIN:服务器Vin:${serverVin}-----底盘Vin:${delineVin}", true,
|
||||
CheckVinErrorDialog.EVENT_KEY_INFO_CHECK_VIN
|
||||
)
|
||||
if(serverVin.isNullOrBlank()){
|
||||
return
|
||||
}
|
||||
|
||||
if(delineVin.isNullOrBlank()){
|
||||
return
|
||||
}
|
||||
|
||||
if(serverVin!=delineVin){
|
||||
val topActivity = ActivityUtils.getTopActivity()
|
||||
topActivity?.let {
|
||||
UiThreadHandler.post({
|
||||
if(checkVinErrorDialog!=null&&checkVinErrorDialog!!.isShowing){
|
||||
return@post
|
||||
}
|
||||
checkVinErrorDialog = CheckVinErrorDialog(it)
|
||||
checkVinErrorDialog?.showDialog()
|
||||
},UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fun load() {
|
||||
OchChainLogManager.writeChainLogInit("初始化信息","初始checkVin 轮训")
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,32 +23,36 @@ object OchChainLogManager {
|
||||
const val EVENT_KEY_INFE_ERROR = "event_key_och_error"
|
||||
|
||||
const val EVENT_KEY_INFO_Net = "event_key_och_net"
|
||||
const val EVENT_KEY_INFO_INIT = "event_key_och_init"
|
||||
const val EVENT_KEY_INFO_SOCKET = "analytics_event_och_track_screen_msg"
|
||||
const val EVENT_KEY_INFO_SOCKET_CONNECT = "analytics_event_och_track_screen_connect"
|
||||
|
||||
const val EVENT_KEY_INFO_AUTOPILOT_DISTANCE = "event_key_vehicle_start_autopilot_state_distance_15"
|
||||
|
||||
|
||||
fun writeChainLogNet(info: String, changeInfo: String){
|
||||
writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_Net)
|
||||
fun writeChainLogNet(title: String, info: String){
|
||||
writeChainLog(title,info,true,EVENT_KEY_INFO_Net)
|
||||
}
|
||||
fun writeChainLogNetLanSocketConnect(info: String, changeInfo: String){
|
||||
writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_SOCKET_CONNECT)
|
||||
fun writeChainLogInit(title: String, info: String) {
|
||||
writeChainLog(title,info,true,EVENT_KEY_INFO_INIT)
|
||||
}
|
||||
fun writeChainLogLanSocket(info: String, changeInfo: String,action:String){
|
||||
fun writeChainLogNetLanSocketConnect(title: String, info: String){
|
||||
writeChainLog(title,info,true,EVENT_KEY_INFO_SOCKET_CONNECT)
|
||||
}
|
||||
fun writeChainLogLanSocket(title: String, info: String, action:String){
|
||||
val map = hashMapOf<String, Any>()
|
||||
map["action"] = action
|
||||
writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_SOCKET, map)
|
||||
writeChainLog(title,info,true,EVENT_KEY_INFO_SOCKET, map)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun writeChainLog(info: String, changeInfo: String,upload:Boolean = true,eventID:String=EVENT_KEY_INFE_WITH_CHANGE) {
|
||||
writeChainLog(info,changeInfo,upload,eventID,null)
|
||||
fun writeChainLog(title: String, info: String, upload:Boolean = true, eventID:String=EVENT_KEY_INFE_WITH_CHANGE) {
|
||||
writeChainLog(title,info,upload,eventID,null)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Info 订单详细信息
|
||||
* @param changeInfo 变化信息
|
||||
* @param title 订单详细信息
|
||||
* @param info 变化信息
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_OCH,
|
||||
@@ -57,10 +61,10 @@ object OchChainLogManager {
|
||||
paramIndexes = [0,1]
|
||||
)
|
||||
@JvmStatic
|
||||
fun writeChainLog(Info: String, changeInfo: String,upload:Boolean = true,eventID:String=EVENT_KEY_INFE_WITH_CHANGE,patch:HashMap<String, Any>?=null) {
|
||||
fun writeChainLog(title: String, info: String, upload:Boolean = true, eventID:String=EVENT_KEY_INFE_WITH_CHANGE, patch:HashMap<String, Any>?=null) {
|
||||
try {
|
||||
d(SceneConstant.M_OCHCOMMON + TAG, Info)
|
||||
d(SceneConstant.M_OCHCOMMON + TAG, changeInfo)
|
||||
d(SceneConstant.M_OCHCOMMON + TAG, title)
|
||||
d(SceneConstant.M_OCHCOMMON + TAG, info)
|
||||
if(upload) {
|
||||
val plateNum = AppConfigInfo.plateNumber
|
||||
val params = HashMap<String, Any>()
|
||||
@@ -68,8 +72,8 @@ object OchChainLogManager {
|
||||
params["env"] = DebugConfig.getNetMode()
|
||||
params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum
|
||||
params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss)
|
||||
params["info"] = Info
|
||||
params["changeInfo"] = changeInfo
|
||||
params["info"] = title
|
||||
params["changeInfo"] = info
|
||||
patch?.let {
|
||||
params.putAll(it)
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ object LanSocketManager : IReceivedMsgListener {
|
||||
}
|
||||
|
||||
fun load(){
|
||||
|
||||
OchChainLogManager.writeChainLogInit("初始化信息","初始局域网监听和发送封装")
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/common_5F6582"/>
|
||||
<corners android:radius="46dp"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/common_A0B3DA"/>
|
||||
<corners android:radius="@dimen/dp_80"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?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:layout_width="@dimen/dp_939"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/common_error_vin">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_error_head"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_60"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginEnd="@dimen/dp_60"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_46"
|
||||
app:layout_constraintBottom_toTopOf="@+id/actv_error_body"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:text="VIN码不匹配!!!" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_error_body"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginEnd="@dimen/dp_60"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_41"
|
||||
android:layout_marginBottom="@dimen/dp_39"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_40"
|
||||
app:layout_constraintBottom_toTopOf="@+id/actv_error_body_red"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/actv_error_head"
|
||||
android:text="请暂停运营并上报问题,待问题解决后用车" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_error_body_red"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginEnd="@dimen/dp_60"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/holo_red_dark"
|
||||
android:textSize="@dimen/dp_40"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/actv_error_body"
|
||||
android:text="【仍继续用车有安全风险!!!】" />
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/actv_see"
|
||||
android:layout_width="@dimen/dp_350"
|
||||
android:layout_height="@dimen/dp_130"
|
||||
android:layout_marginTop="40dp"
|
||||
android:layout_marginBottom="@dimen/dp_80"
|
||||
android:background="@drawable/common_error_vin_submit"
|
||||
android:gravity="center"
|
||||
android:text="我知道了"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_46"
|
||||
app:layout_constraintTop_toBottomOf="@+id/actv_error_body_red"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -23,4 +23,6 @@
|
||||
<color name="common_203555">#203555</color>
|
||||
<color name="common_B3EFF6FF">#B3EFF6FF</color>
|
||||
<color name="common_384270">#384270</color>
|
||||
<color name="common_5F6582">#5F6582</color>
|
||||
<color name="common_A0B3DA">#A0B3DA</color>
|
||||
</resources>
|
||||
@@ -9,6 +9,8 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
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.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.device.checkvin.CheckVinManager
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.facade.constant.FacadeConst
|
||||
|
||||
/**
|
||||
@@ -33,7 +35,9 @@ class FacadeDriverProvider : FacadeProvider() {
|
||||
}else {
|
||||
super.init(context)
|
||||
LoginStatusManager.queryLoginStatusByNet()
|
||||
LanSocketManager.load()
|
||||
LoginLanDriverSocket.load()
|
||||
CheckVinManager.load()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.och.facade.route
|
||||
import android.content.Context
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket
|
||||
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
|
||||
import com.mogo.och.facade.constant.FacadeConst
|
||||
|
||||
/**
|
||||
@@ -19,6 +20,7 @@ class FacadePassengerProvider : FacadeProvider() {
|
||||
|
||||
override fun init(context: Context) {
|
||||
super.init(context)
|
||||
LanSocketManager.load()
|
||||
LoginLanPassengerSocket.load()
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.alibaba.android.arouter.facade.annotation.Route
|
||||
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.DeviceUtils
|
||||
import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
|
||||
@@ -46,7 +47,7 @@ class ShuttlePassengerProvider : CommonServiceImpl() {
|
||||
}
|
||||
|
||||
override fun getFragment(): Fragment {
|
||||
if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
|
||||
if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode) && DeviceUtils.isEB5Model()) {
|
||||
MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java)
|
||||
}
|
||||
if(mPM2Fragment==null){
|
||||
|
||||
@@ -102,5 +102,43 @@ public class OrderQueryRespBean extends BaseData {
|
||||
startSiteAddr, startSitePoint, startSiteGcjPoint, endSiteId, endSiteAddr,
|
||||
endSitePoint, endSiteGcjPoint, carNumber, createTime, startTime, travelDistance);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Result{" +
|
||||
"orderNo='" + orderNo + '\'' +
|
||||
", orderType=" + orderType +
|
||||
", orderStatus=" + orderStatus +
|
||||
", businessType=" + businessType +
|
||||
", startSiteId=" + startSiteId +
|
||||
", startSiteAddr='" + startSiteAddr + '\'' +
|
||||
", startSitePoint=" + startSitePoint +
|
||||
", startSiteGcjPoint=" + startSiteGcjPoint +
|
||||
", endSiteId=" + endSiteId +
|
||||
", endSiteAddr='" + endSiteAddr + '\'' +
|
||||
", endSitePoint=" + endSitePoint +
|
||||
", endSiteGcjPoint=" + endSiteGcjPoint +
|
||||
", carNumber='" + carNumber + '\'' +
|
||||
", createTime=" + createTime +
|
||||
", startTime=" + startTime +
|
||||
", bookingTime=" + bookingTime +
|
||||
", passengerPhone='" + passengerPhone + '\'' +
|
||||
", passengerNum='" + passengerNum + '\'' +
|
||||
", lineId=" + lineId +
|
||||
", lineName='" + lineName + '\'' +
|
||||
", csvFileUrl='" + csvFileUrl + '\'' +
|
||||
", csvFileMd5='" + csvFileMd5 + '\'' +
|
||||
", txtFileUrl='" + txtFileUrl + '\'' +
|
||||
", txtFileMd5='" + txtFileMd5 + '\'' +
|
||||
", contrailSaveTime=" + contrailSaveTime +
|
||||
", carModel='" + carModel + '\'' +
|
||||
", csvFileUrlDPQP='" + csvFileUrlDPQP + '\'' +
|
||||
", csvFileMd5DPQP='" + csvFileMd5DPQP + '\'' +
|
||||
", txtFileUrlDPQP='" + txtFileUrlDPQP + '\'' +
|
||||
", txtFileMd5DPQP='" + txtFileMd5DPQP + '\'' +
|
||||
", contrailSaveTimeDPQP=" + contrailSaveTimeDPQP +
|
||||
", travelDistance=" + travelDistance +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,5 +15,22 @@ public class OrdersInServiceQueryRespBean extends BaseData {
|
||||
public static class Result {
|
||||
public List<OrderQueryRespBean.Result> servicing; //服务中订单
|
||||
public List<OrderQueryRespBean.Result> waitService; //待服务订单
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Result{" +
|
||||
"servicing=" + servicing +
|
||||
", waitService=" + waitService +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "OrdersInServiceQueryRespBean{" +
|
||||
"data=" + data +
|
||||
", code=" + code +
|
||||
", msg='" + msg + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ object TaxiServiceManager {
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryOrdersInAndWaitService",false))
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryOrdersInAndWaitService"))
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"mogo": {
|
||||
"qa": {
|
||||
"och_url": "https://tech-qa.zhidaohulian.com",
|
||||
"och_url": "https://tech-qa.zhidaozhixing.com",
|
||||
"shuttle_url": "https://och-driver-qa.zhidaozhixing.com",
|
||||
"sweeper_url": "https://och-driver-qa.zhidaozhixing.com",
|
||||
"passport_url": "",
|
||||
@@ -18,7 +18,7 @@
|
||||
"secure_product_secret": "6b4c4db8286547b78b1def2d76f70fb3"
|
||||
},
|
||||
"online": {
|
||||
"och_url": "https://tech.zhidaohulian.com",
|
||||
"och_url": "https://tech.zhidaozhixing.com",
|
||||
"shuttle_url": "https://och-driver.zhidaozhixing.com",
|
||||
"sweeper_url": "https://och-driver.zhidaozhixing.com",
|
||||
"passport_url": "",
|
||||
@@ -33,23 +33,6 @@
|
||||
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
|
||||
"secure_product_id": "10028",
|
||||
"secure_product_secret": "6b4c4db8286547b78b1def2d76f70fb3"
|
||||
},
|
||||
"demo": {
|
||||
"och_url": "http://tech-dev.zhidaohulian.com",
|
||||
"shuttle_url": "https://och-driver-dev.zhidaozhixing.com",
|
||||
"sweeper_url": "https://och-driver-dev.zhidaozhixing.com",
|
||||
"passport_url": "",
|
||||
"socket_base_url": "",
|
||||
"socket_tech_url": "",
|
||||
"eagle_mis_url": "",
|
||||
"eagle_dns_url": "",
|
||||
"bind_driver_qr_url": "",
|
||||
"chart_socket_url":"",
|
||||
"secure_active_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/active",
|
||||
"secure_refresh_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/refresh",
|
||||
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
|
||||
"secure_product_id": "10028",
|
||||
"secure_product_secret": "6b4c4db8286547b78b1def2d76f70fb3"
|
||||
}
|
||||
},
|
||||
"dali": {
|
||||
@@ -86,23 +69,6 @@
|
||||
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
|
||||
"secure_product_id": "10031",
|
||||
"secure_product_secret": "bda7164f3e8241848d011dcc710f89db"
|
||||
},
|
||||
"demo": {
|
||||
"och_url": "https://och-a.zhidaozhixing.com",
|
||||
"shuttle_url": "https://och-a.zhidaozhixing.com",
|
||||
"sweeper_url": "https://och-a.zhidaozhixing.com",
|
||||
"passport_url": "https://och-a.zhidaozhixing.com/arch/passport/",
|
||||
"socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/",
|
||||
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/",
|
||||
"eagle_mis_url": "http://och-hailing-eh.zhidaozhixing.com/",
|
||||
"eagle_dns_url": "http://och-hailing-eh.zhidaozhixing.com/",
|
||||
"bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s",
|
||||
"chart_socket_url":"wss://acp-eh.zhidaozhixing.com/ws",
|
||||
"secure_active_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/active",
|
||||
"secure_refresh_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/refresh",
|
||||
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
|
||||
"secure_product_id": "10031",
|
||||
"secure_product_secret": "bda7164f3e8241848d011dcc710f89db"
|
||||
}
|
||||
},
|
||||
"yantai": {
|
||||
@@ -139,23 +105,6 @@
|
||||
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
|
||||
"secure_product_id": "10032",
|
||||
"secure_product_secret": "1514404272484a48b478d082911fcaf9"
|
||||
},
|
||||
"demo": {
|
||||
"och_url": "https://och-a.zhidaozhixing.com",
|
||||
"shuttle_url": "https://och-a.zhidaozhixing.com",
|
||||
"sweeper_url": "https://och-a.zhidaozhixing.com",
|
||||
"passport_url": "https://och-a.zhidaozhixing.com/arch/passport/",
|
||||
"socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/",
|
||||
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/",
|
||||
"eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/",
|
||||
"eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/",
|
||||
"bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s",
|
||||
"chart_socket_url":"",
|
||||
"secure_active_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/active",
|
||||
"secure_refresh_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/refresh",
|
||||
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
|
||||
"secure_product_id": "10032",
|
||||
"secure_product_secret": "1514404272484a48b478d082911fcaf9"
|
||||
}
|
||||
},
|
||||
"saas": {
|
||||
@@ -190,22 +139,6 @@
|
||||
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
|
||||
"secure_product_id": "10030",
|
||||
"secure_product_secret": "85dcf995430746f6b1c2d4fe6817ff2e"
|
||||
},
|
||||
"demo": {
|
||||
"och_url": "http://tech-dev.zhidaohulian.com",
|
||||
"shuttle_url": "https://mogogo-driver.zhidaozhixing.com",
|
||||
"passport_url": "https://mogogo-driver.zhidaozhixing.com/arch/passport/",
|
||||
"socket_base_url": "https://mogogo-driver.zhidaozhixing.com/arch/push/",
|
||||
"socket_tech_url": "https://mogogo-driver.zhidaozhixing.com/arch/",
|
||||
"eagle_mis_url": "https://mogogo.zhidaozhixing.com/",
|
||||
"eagle_dns_url": "https://mogogo.zhidaozhixing.com/",
|
||||
"bind_driver_qr_url": "",
|
||||
"chart_socket_url":"",
|
||||
"secure_active_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/active",
|
||||
"secure_refresh_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/refresh",
|
||||
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
|
||||
"secure_product_id": "10030",
|
||||
"secure_product_secret": "85dcf995430746f6b1c2d4fe6817ff2e"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -225,7 +225,7 @@ ext {
|
||||
btrace : "com.bytedance.btrace:rhea-core:2.0.0",
|
||||
|
||||
mofang_runtime : "com.mogo.eagle.core.mofang:runtime:2.0.11",
|
||||
log_runtime : "com.mogo.eagle.core.log.record:runtime:2.0.10",
|
||||
log_runtime : "com.mogo.eagle.core.log.record:runtime:2.0.30",
|
||||
|
||||
// 安全证书
|
||||
passport_secret : "com.zhidaoauto:sdk-java:1.0.6-SNAPSHOT",
|
||||
|
||||
@@ -957,6 +957,15 @@ class MoGoAutopilotControlProvider :
|
||||
return AdasManager.getInstance().protocolVersion
|
||||
}
|
||||
|
||||
override fun getVIN(): String {
|
||||
val carConfig = AdasManager.getInstance().carConfig
|
||||
return if(carConfig != null){
|
||||
carConfig.vinCode
|
||||
}else{
|
||||
""
|
||||
}
|
||||
}
|
||||
|
||||
override fun connectSpecifiedServer(ip: String) {
|
||||
ThreadUtils.getIoPool().submit {
|
||||
NSDNettyManager.getInstance().connectSpecifiedServer(
|
||||
|
||||
@@ -9,4 +9,12 @@ public class BaseData implements Serializable, Cloneable {
|
||||
|
||||
public int code = -1;
|
||||
public String msg;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "BaseData{" +
|
||||
"code=" + code +
|
||||
", msg='" + msg + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,6 +337,11 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
|
||||
*/
|
||||
fun getProtocolVersion(): Int
|
||||
|
||||
/**
|
||||
* 获取VIN车辆识别代号
|
||||
*/
|
||||
fun getVIN(): String
|
||||
|
||||
fun connectSpecifiedServer(ip: String)
|
||||
|
||||
/**
|
||||
|
||||
@@ -617,6 +617,13 @@ object CallerAutoPilotControlManager {
|
||||
return providerApi?.getProtocolVersion() ?: 0
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取VIN车辆识别代号
|
||||
*/
|
||||
fun getVIN(): String{
|
||||
return providerApi?.getVIN()?:""
|
||||
}
|
||||
|
||||
fun connectSpecifiedServer(ip: String) {
|
||||
providerApi?.connectSpecifiedServer(ip)
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@ object CallerAutopilotActionsListenerManager : CallerBase<IMoGoAutopilotActionsL
|
||||
|
||||
private var vehicleState: VehicleStateOuterClass.VehicleState? = null
|
||||
private var chassisStates: ChassisStatesOuterClass.ChassisStates? = null
|
||||
private var vehicleReceiveTime: Long = 0
|
||||
private var chassisReceiveTime: Long = 0
|
||||
|
||||
init {
|
||||
isAutopilotAbility = false
|
||||
@@ -36,10 +38,12 @@ object CallerAutopilotActionsListenerManager : CallerBase<IMoGoAutopilotActionsL
|
||||
}
|
||||
|
||||
fun setVehicleState(vehicleState: VehicleStateOuterClass.VehicleState?) {
|
||||
vehicleReceiveTime = System.currentTimeMillis()
|
||||
this.vehicleState = vehicleState;
|
||||
}
|
||||
|
||||
fun setChassisStates(chassisStates: ChassisStatesOuterClass.ChassisStates?) {
|
||||
chassisReceiveTime = System.currentTimeMillis()
|
||||
this.chassisStates = chassisStates;
|
||||
}
|
||||
|
||||
@@ -77,6 +81,7 @@ object CallerAutopilotActionsListenerManager : CallerBase<IMoGoAutopilotActionsL
|
||||
val vehicleStateObject = JSONObject()
|
||||
if (chassisStates != null) {
|
||||
try {
|
||||
chassisStatesObject.put("receive_time", chassisReceiveTime)
|
||||
if (chassisStates!!.hasHeader()) {
|
||||
chassisStatesObject.put(
|
||||
"data_header", TextFormat.printer().escapingNonAscii(false).printToString(
|
||||
@@ -128,6 +133,7 @@ object CallerAutopilotActionsListenerManager : CallerBase<IMoGoAutopilotActionsL
|
||||
}
|
||||
|
||||
if (vehicleState != null) {
|
||||
vehicleStateObject.put("receive_time", vehicleReceiveTime)
|
||||
if (vehicleState!!.hasHeader()) {
|
||||
vehicleStateObject.put(
|
||||
"data_header", TextFormat.printer().escapingNonAscii(false).printToString(
|
||||
|
||||
Reference in New Issue
Block a user