Merge remote-tracking branch 'origin/dev_robotaxi-d_240912_6.7.0' into dev_robotaxi-d_240912_6.7.0
# Conflicts: # OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt
@@ -80,23 +80,6 @@
|
||||
tools:ignore="SpeakableTextPresentCheck"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<!--限速牌子-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.LimitingVelocityView
|
||||
android:id="@+id/viewLimitingVelocity"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:elevation="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:text="60"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="60dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ivCameraIcon"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.mofang.MoFangStatusView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_72">
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height">
|
||||
<!--高精地图-->
|
||||
<com.mogo.eagle.core.function.view.MapBizView
|
||||
android:id="@+id/mapBizView"
|
||||
@@ -87,23 +87,6 @@
|
||||
tools:ignore="SpeakableTextPresentCheck"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<!--限速牌子-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.LimitingVelocityView
|
||||
android:id="@+id/viewLimitingVelocity"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:elevation="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:text="60"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="60dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ivCameraIcon"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.mofang.MoFangStatusView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -152,6 +152,7 @@ class LoginProvider : LoginService {
|
||||
this.loginInfo = loginInfo
|
||||
}
|
||||
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchLoginNo(loginInfo.phone)
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchCarModel(Carmodel.getCarModelFromServerName(loginInfo.carModel))
|
||||
CallerEagleBaseFunctionCall4OchManager.setOchPlateNumber(loginInfo.plateNumber)
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_72">
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height">
|
||||
|
||||
<com.mogo.och.offline.view.BizMapView
|
||||
android:id="@+id/mapBizView"
|
||||
@@ -77,23 +77,6 @@
|
||||
tools:ignore="SpeakableTextPresentCheck"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<!--限速牌子-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.LimitingVelocityView
|
||||
android:id="@+id/viewLimitingVelocity"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:elevation="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:text="60"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="60dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ivCameraIcon"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.mofang.MoFangStatusView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -77,23 +77,6 @@
|
||||
tools:ignore="SpeakableTextPresentCheck"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<!--限速牌子-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.LimitingVelocityView
|
||||
android:id="@+id/viewLimitingVelocity"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:elevation="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:text="60"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="60dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ivCameraIcon"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.mofang.MoFangStatusView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
android:layout_width="960dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#F0151D41"
|
||||
android:layout_marginTop="@dimen/dp_72"
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height"
|
||||
android:id="@+id/clLayout"
|
||||
>
|
||||
|
||||
|
||||
@@ -70,23 +70,6 @@
|
||||
tools:ignore="SpeakableTextPresentCheck"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<!--限速牌子-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.LimitingVelocityView
|
||||
android:id="@+id/viewLimitingVelocity"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:elevation="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:text="60"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="60dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ivCameraIcon"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.mofang.MoFangStatusView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
android:id="@+id/sweeper_root_View"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_72"
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height"
|
||||
android:clickable="true">
|
||||
|
||||
<com.mogo.eagle.core.function.view.MapBizView
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
android:id="@+id/sweeper_root_View"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_72"
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height"
|
||||
android:clickable="true">
|
||||
|
||||
<com.mogo.eagle.core.function.view.MapBizView
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_72">
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height">
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugViewTrigger
|
||||
android:layout_width="@dimen/dp_400"
|
||||
@@ -95,23 +95,6 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<!--限速牌子-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.LimitingVelocityView
|
||||
android:id="@+id/viewLimitingVelocity"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:elevation="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:text="60"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="60dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/viewTrafficLightVr"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.GreenWaveView
|
||||
android:layout_width="@dimen/dp_580"
|
||||
android:layout_height="@dimen/dp_129"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/operation_tab_line_iv"
|
||||
android:layout_width="@dimen/dp_72"
|
||||
android:layout_width="@dimen/dp_status_bar_height"
|
||||
android:layout_height="@dimen/dp_24"
|
||||
app:layout_constraintTop_toBottomOf="@+id/operation_tab_title"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_72">
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height">
|
||||
<com.mogo.eagle.core.function.view.MapBizView
|
||||
android:id="@+id/mapBizView"
|
||||
app:isWeatherEnable="false"
|
||||
@@ -100,23 +100,6 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<!--限速牌子-->
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.LimitingVelocityView
|
||||
android:id="@+id/viewLimitingVelocity"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:elevation="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:text="60"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="60dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/viewTrafficLightVr"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.mofang.MoFangStatusView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -40,9 +40,6 @@ class FuncBizProvider : IMoGoFuncBizProvider {
|
||||
dispatchAutoPilotManager.init(context)
|
||||
cronTaskManager.startCronTask()
|
||||
OverviewDb.getDb(context)
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
MogoTrafficLightManager.INSTANCE.initServer(context)
|
||||
}
|
||||
VipCarManager.INSTANCE.initServer(context)
|
||||
if (V2NCarTypeCheck.verifyCarType()) {
|
||||
V2XEventManager.init(context)
|
||||
|
||||
@@ -4,6 +4,8 @@ import android.content.Context
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.function.api.datacenter.IDataCenterProvider
|
||||
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
|
||||
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizManager
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
|
||||
import com.mogo.eagle.core.function.datacenter.location.MoGoLocationDispatcher
|
||||
import com.mogo.eagle.core.function.datacenter.v2x.RoadLineEventManager
|
||||
@@ -22,6 +24,7 @@ class DataCenterProvider: IDataCenterProvider {
|
||||
MoGoLocationDispatcher.initListener()
|
||||
mContext = context
|
||||
mContext?.let {
|
||||
CallerDataCenterBizManager.init()
|
||||
CallerMsgBoxManager.queryAllMessages(it)
|
||||
TrafficLightDispatcher.INSTANCE.initServer(it)
|
||||
SpeedLimitDispatcher.INSTANCE.initLimit(it)
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
package com.mogo.eagle.core.function.datacenter.aicloud
|
||||
|
||||
import android.content.Context
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.cloud.socket.SocketManager
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider
|
||||
|
||||
@Route(path = MogoServicePaths.PATH_AI_CLOUD)
|
||||
class AiCloudSocketBizProvider : IMoGoFunctionServerProvider {
|
||||
override val functionName: String
|
||||
get() = "AiCloudSocketBizProvider"
|
||||
|
||||
override fun init(context: Context?) {
|
||||
context?.let {
|
||||
SocketManager.getInstance().registerOnMessageListener(401012, V2XMessageListener401012())
|
||||
SocketManager.getInstance().registerOnMessageListener(401018, V2XMessageListener401018())
|
||||
SocketManager.getInstance().registerOnMessageListener(402000, V2XMessageListener402000())
|
||||
SocketManager.getInstance().registerOnMessageListener(404000, V2XMessageListener404000())
|
||||
//SocketManager.getInstance().registerOnMessageListener(503000, V2XMessageListener503000())
|
||||
SocketManager.getInstance().registerOnMessageListener(70001, V2XMessageListener70001())
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
package com.mogo.eagle.core.function.datacenter.aicloud
|
||||
|
||||
import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener
|
||||
import com.mogo.eagle.core.data.v2x.*
|
||||
import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
|
||||
import roadwork.Road
|
||||
|
||||
internal class V2XMessageListener70001: IMogoCloudSocketOnMessageListener<V2XRoadXData> {
|
||||
|
||||
override fun target(msgType: Int): Class<V2XRoadXData> = V2XRoadXData::class.java
|
||||
|
||||
override fun onMsgReceived(msgType: Int, data: V2XRoadXData?) {
|
||||
if (msgType != 70001) {
|
||||
return
|
||||
}
|
||||
if (data == null) {
|
||||
return
|
||||
}
|
||||
CallerCloudListenerManager.invokeSocketAck(V2XEvent.RoadEventX(data = data))
|
||||
}
|
||||
}
|
||||
|
||||
internal class V2XMessageListener401012: IMogoCloudSocketOnMessageListener<V2XMarkerCardResult> {
|
||||
|
||||
override fun target(msgType: Int): Class<V2XMarkerCardResult> = V2XMarkerCardResult::class.java
|
||||
|
||||
override fun onMsgReceived(msgType: Int, data: V2XMarkerCardResult?) {
|
||||
if (msgType != 401012) {
|
||||
return
|
||||
}
|
||||
if (data == null) {
|
||||
return
|
||||
}
|
||||
CallerCloudListenerManager.invokeSocketAck(V2XEvent.Road(data = data))
|
||||
}
|
||||
}
|
||||
|
||||
internal class V2XMessageListener401018: IMogoCloudSocketOnMessageListener<V2XWarningTarget> {
|
||||
|
||||
override fun target(msgType: Int): Class<V2XWarningTarget> = V2XWarningTarget::class.java
|
||||
|
||||
override fun onMsgReceived(msgType: Int, data: V2XWarningTarget?) {
|
||||
if (msgType != 401018) {
|
||||
return
|
||||
}
|
||||
if (data == null) {
|
||||
return
|
||||
}
|
||||
CallerCloudListenerManager.invokeSocketAck(V2XEvent.Warning(data = data))
|
||||
}
|
||||
}
|
||||
|
||||
internal class V2XMessageListener402000: IMogoCloudSocketOnMessageListener<V2XOptimalRoute> {
|
||||
|
||||
override fun target(msgType: Int): Class<V2XOptimalRoute> = V2XOptimalRoute::class.java
|
||||
|
||||
override fun onMsgReceived(msgType: Int, data: V2XOptimalRoute?) {
|
||||
if (msgType != 402000) {
|
||||
return
|
||||
}
|
||||
if (data == null) {
|
||||
return
|
||||
}
|
||||
CallerCloudListenerManager.invokeSocketAck(V2XEvent.OptimalRoute(data = data))
|
||||
}
|
||||
}
|
||||
|
||||
internal class V2XMessageListener404000: IMogoCloudSocketOnMessageListener<V2XAdvanceWarning> {
|
||||
|
||||
override fun target(msgType: Int): Class<V2XAdvanceWarning> = V2XAdvanceWarning::class.java
|
||||
|
||||
override fun onMsgReceived(msgType: Int, data: V2XAdvanceWarning?) {
|
||||
if (msgType != 404000) {
|
||||
return
|
||||
}
|
||||
if (data == null) {
|
||||
return
|
||||
}
|
||||
CallerCloudListenerManager.invokeSocketAck(V2XEvent.ForwardsWarning(data = data))
|
||||
}
|
||||
}
|
||||
|
||||
internal class V2XMessageListener503000: IMogoCloudSocketOnMessageListener<Road.RW_PB> {
|
||||
|
||||
override fun target(msgType: Int): Class<Road.RW_PB> = Road.RW_PB::class.java
|
||||
|
||||
override fun onMsgReceived(msgType: Int, data: Road.RW_PB?) {
|
||||
if (msgType != 503000) {
|
||||
return
|
||||
}
|
||||
if (data == null) {
|
||||
return
|
||||
}
|
||||
CallerCloudListenerManager.invokeSocketAck(V2XEvent.RoadAI(data = data))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.mogo.eagle.core.function.datacenter.biz
|
||||
|
||||
import android.content.Context
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizProvider
|
||||
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
|
||||
|
||||
@Route(path = MogoServicePaths.PATH_DATA_CENTER_BIZ_FUNCTION)
|
||||
class DataCenterBizProvider:IDataCenterBizProvider {
|
||||
|
||||
override val functionName: String
|
||||
get() = "DataCenterBizProvider"
|
||||
|
||||
|
||||
override fun init(context: Context?) {}
|
||||
override fun init(){}
|
||||
|
||||
override fun notifyLoginInfo(loginNo: String?) {
|
||||
CallerDataCenterBizListener.invokeLoginNo(loginNo)
|
||||
}
|
||||
|
||||
override fun notifyCarMode(carModel: Carmodel) {
|
||||
CallerDataCenterBizListener.invokeCarRes(carModel.resId)
|
||||
}
|
||||
|
||||
override fun notifyPlateNumber(plateNumber: String?) {
|
||||
CallerDataCenterBizListener.invokeCarNo(plateNumber)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -31,7 +31,6 @@ class SpeedLimitDispatcher : ILimitingVelocityListener {
|
||||
/**
|
||||
* 地图限速数据
|
||||
*/
|
||||
// @BizConfig(FuncBizConfig.V2I, "", FuncBizConfig.BIZ_SLW) //todo emArrow 重新考虑放的位置
|
||||
override fun onUnion(limitingVelocity: Int, sourceType: DataSourceType) {
|
||||
super.onUnion(limitingVelocity, sourceType)
|
||||
when (sourceType) { // obu 优先级高于 map,体现链路能力
|
||||
|
||||
@@ -5,8 +5,6 @@ import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.function.api.och.IOchFunctionCallNotify
|
||||
import com.mogo.eagle.core.function.call.och.CallerOchBizFunctionCall4EagleManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import kotlinx.android.synthetic.main.view_bone_container.view.clBoneBiz
|
||||
@@ -16,9 +14,9 @@ class BoneContainerView @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) : ConstraintLayout(context, attrs, defStyleAttr), IOchFunctionCallNotify {
|
||||
) : ConstraintLayout(context, attrs, defStyleAttr) {
|
||||
|
||||
companion object{
|
||||
companion object {
|
||||
private const val TAG = "BoneContainerView"
|
||||
}
|
||||
|
||||
@@ -29,14 +27,6 @@ class BoneContainerView @JvmOverloads constructor(
|
||||
|
||||
private var logOut: (() -> Unit)? = null
|
||||
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow()
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
clBoneTab.loginOut {
|
||||
CallerOchBizFunctionCall4EagleManager.logout()
|
||||
@@ -47,17 +37,8 @@ class BoneContainerView @JvmOverloads constructor(
|
||||
clBoneBiz.addView(view)
|
||||
}
|
||||
|
||||
fun loginOut(logOut:(() -> Unit)){
|
||||
fun loginOut(logOut: (() -> Unit)) {
|
||||
this.logOut = logOut
|
||||
}
|
||||
|
||||
override fun notifyCarMode(carModel: Carmodel?) {
|
||||
super.notifyCarMode(carModel)
|
||||
clBoneTab.setCarMode(carModel)
|
||||
}
|
||||
|
||||
override fun notifyPlateNumber(plateNumber: String?) {
|
||||
super.notifyPlateNumber(plateNumber)
|
||||
clBoneTab.setCarNo(plateNumber)
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
@@ -115,18 +114,6 @@ class BoneTabLayout @JvmOverloads constructor(
|
||||
})
|
||||
}
|
||||
|
||||
fun setCarNo(carNo: String?) {
|
||||
carInfoTabView.setCarNo(carNo)
|
||||
}
|
||||
|
||||
fun setLoginInfo(loginNo: String) {
|
||||
carInfoTabView.setLoginInfo(loginNo)
|
||||
}
|
||||
|
||||
fun setCarMode(carModel: Carmodel?) {
|
||||
carInfoTabView.setCarMode(carModel)
|
||||
}
|
||||
|
||||
fun loginOut(logOut: (() -> Unit)) {
|
||||
UiThreadHandler.post {
|
||||
this.logOut = logOut
|
||||
|
||||
@@ -4,16 +4,16 @@ import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizListener
|
||||
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
|
||||
import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
|
||||
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager
|
||||
@@ -25,26 +25,28 @@ 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_HMI
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.map.MogoData
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.ivCarType
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADMapVersion
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADVersion
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvADVersionName
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarExit
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarLoginInfo
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvCarNo
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvHDMapUpdate
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvHDMapVersion
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvPADUpdate
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvPadVersion
|
||||
import kotlinx.android.synthetic.main.view_car_info_tab.view.tvSnInfo
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import system_master.SsmInfo
|
||||
import system_master.SystemStatusInfo
|
||||
|
||||
private fun String.parsePlateNo(): String {
|
||||
return " " + substring(0, 2) + " " + substring(2) + " "
|
||||
}
|
||||
|
||||
private fun String.parsePhoneNo(): String {
|
||||
return take(3) + "****" + takeLast(4)
|
||||
}
|
||||
@@ -54,7 +56,7 @@ class CarInfoTabView @JvmOverloads constructor(
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoCheckAutoPilotBtnListener,
|
||||
IMoGoAutopilotStatusListener, IMoGoDevaToolsListener {
|
||||
IMoGoAutopilotStatusListener, IMoGoDevaToolsListener, IDataCenterBizListener {
|
||||
|
||||
companion object {
|
||||
private const val TAG = "CarInfoTabView"
|
||||
@@ -76,6 +78,7 @@ class CarInfoTabView @JvmOverloads constructor(
|
||||
CallerHmiListenerManager.addListener(TAG, this)
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerDevaToolsListenerManager.addListener(TAG, this)
|
||||
CallerDataCenterBizListener.addListener(TAG, this)
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
@@ -83,6 +86,7 @@ class CarInfoTabView @JvmOverloads constructor(
|
||||
CallerHmiListenerManager.removeListener(TAG)
|
||||
CallerAutoPilotStatusListenerManager.removeListener(TAG)
|
||||
CallerDevaToolsListenerManager.removeListener(TAG)
|
||||
CallerDataCenterBizListener.removeListener(TAG)
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
@@ -109,6 +113,7 @@ class CarInfoTabView @JvmOverloads constructor(
|
||||
CallerDevaToolsManager.queryAppUpgrade()
|
||||
}
|
||||
|
||||
tvHDMapVersion.text = tvHDMapVersion.text.toString() + DebugConfig.getMapVersion()
|
||||
//高精地图 检查更新
|
||||
tvHDMapUpdate.setOnClickListener {
|
||||
HmiActionLog.hmiAction(
|
||||
@@ -118,14 +123,15 @@ class CarInfoTabView @JvmOverloads constructor(
|
||||
if (isHDCached) { // 已缓存
|
||||
ToastUtils.showShort(resources.getString(R.string.offline_had_downloaded))
|
||||
} else {// 未缓存
|
||||
if (!NetworkUtils.isConnected(context)) {
|
||||
ToastUtils.showShort(resources.getString(R.string.offline_update_tip))
|
||||
return@setOnClickListener
|
||||
}
|
||||
if (CallerMapUIServiceManager.getCityCode().isNullOrEmpty()) {// 未拿到高德的cityCode
|
||||
if ((CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude <= 0.0 && CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude <= 0.0)) {// 未拿到高精的经纬度
|
||||
ToastUtils.showShort(resources.getString(R.string.location_try_again))
|
||||
} else { // 拿到了高精的经纬度
|
||||
val dialog = OfflineMapDialog(context)
|
||||
dialog.location =
|
||||
CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
|
||||
dialog.show()
|
||||
OfflineMapDialog(context).show()
|
||||
}
|
||||
} else {// 拿到高德的cityCode
|
||||
OfflineMapDialog(context).show()
|
||||
@@ -142,26 +148,33 @@ class CarInfoTabView @JvmOverloads constructor(
|
||||
tvPadVersion.text = tvPadVersion.text.toString() + AppUtils.getAppVersionName()
|
||||
}
|
||||
|
||||
fun setLoginInfo(loginNo: String) {
|
||||
override fun invokeLoginNo(loginNo: String?) {
|
||||
super.invokeLoginNo(loginNo)
|
||||
UiThreadHandler.post {
|
||||
if (loginNo.isNotEmpty()) {
|
||||
tvCarLoginInfo.text = loginNo.parsePhoneNo()
|
||||
} else {
|
||||
tvCarLoginInfo.text = ""
|
||||
loginNo?.let {
|
||||
tvCarLoginInfo.text = it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun setCarNo(carNo: String?) {
|
||||
override fun invokeCarRes(res: Int) {
|
||||
super.invokeCarRes(res)
|
||||
UiThreadHandler.post {
|
||||
ivCarType.setImageResource(res)
|
||||
}
|
||||
}
|
||||
|
||||
override fun invokeCarNo(no: String?) {
|
||||
super.invokeCarNo(no)
|
||||
UiThreadHandler.post {
|
||||
// 监听工控的车牌信息,防止调试跳过无车牌内容(链接先后顺序不一致也会导致数据显示异常)
|
||||
if (!carNo.isNullOrEmpty()) {
|
||||
if (tvCarNo.text.isNotEmpty() && tvCarNo.text == carNo) {
|
||||
if (!no.isNullOrEmpty()) {
|
||||
if (tvCarNo.text.isNotEmpty() && tvCarNo.text == no) {
|
||||
CallerLogger.i("$M_HMI$TAG", "已存在车牌号")
|
||||
return@post
|
||||
}
|
||||
tvCarNo.visibility = VISIBLE
|
||||
tvCarNo.text = carNo.parsePlateNo()
|
||||
tvCarNo.text = no.parsePlateNo()
|
||||
} else {
|
||||
tvCarNo.visibility = GONE
|
||||
tvCarNo.text = ""
|
||||
@@ -169,13 +182,12 @@ class CarInfoTabView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun setCarMode(carModel: Carmodel?){
|
||||
fun setLoginInfo(loginNo: String) {
|
||||
UiThreadHandler.post {
|
||||
if(carModel == null){
|
||||
ivCarType.visibility = GONE
|
||||
}else{
|
||||
ivCarType.visibility = VISIBLE
|
||||
ivCarType.setImageResource(carModel.resId)
|
||||
if (loginNo.isNotEmpty()) {
|
||||
tvCarLoginInfo.text = loginNo.parsePhoneNo()
|
||||
} else {
|
||||
tvCarLoginInfo.text = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -191,7 +203,7 @@ class CarInfoTabView @JvmOverloads constructor(
|
||||
private fun showCurrentAdVersion() {
|
||||
UiThreadHandler.post {
|
||||
CallerAutoPilotStatusListenerManager.getDockerVersion()?.let {
|
||||
tvADVersion.text = tvADVersion.text.toString() + it
|
||||
tvADVersionName.text = it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.DividerItemDecoration
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.mogo.eagle.core.data.enums.DataSourceType
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
@@ -21,6 +22,7 @@ import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.function.hmi.bone.tab.adapter.MsgBoxTabAdapter
|
||||
import com.mogo.eagle.core.function.msgbox.MsgBoxConfig
|
||||
import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import kotlinx.android.synthetic.main.layout_driver_msg_box_list.view.*
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
@@ -57,7 +59,11 @@ class MsgBoxTabView @JvmOverloads constructor(
|
||||
msgBoxTabAdapter= MsgBoxTabAdapter(context as Activity)
|
||||
rvMsgBoxList.adapter = msgBoxTabAdapter
|
||||
linearLayoutManager = LinearLayoutManager(context)
|
||||
linearLayoutManager?.orientation = LinearLayoutManager.VERTICAL
|
||||
rvMsgBoxList.layoutManager = linearLayoutManager
|
||||
val divider = DividerItemDecoration(context, linearLayoutManager!!.orientation)
|
||||
getDrawable(R.drawable.rv_divider_line_tab)?.let { divider.setDrawable(it) }
|
||||
rvMsgBoxList.addItemDecoration(divider)
|
||||
|
||||
//获取通知消息列表
|
||||
noticeList= CallerMsgBoxManager.getCachedNotifyData() as ArrayList<MsgBoxBean>?
|
||||
|
||||
@@ -457,12 +457,14 @@ class MsgBoxTabAdapter(private val activity: Activity) :
|
||||
holder.tvNoticeTime.text =
|
||||
TimeUtils.millis2String(it[position].timestamp, getHourMinFormat())
|
||||
holder.tvNoticeContent.text = noticeNormalData?.content
|
||||
GlideApp.with(activity).load(noticeNormalData?.imageUrl).optionalTransform(
|
||||
GlideRoundedCornersTransform(
|
||||
20f,
|
||||
GlideRoundedCornersTransform.CornerType.ALL
|
||||
)
|
||||
).into(holder.ivNoticeImage)
|
||||
if(noticeNormalData?.imageUrl?.isNotEmpty() == true){
|
||||
GlideApp.with(activity).load(noticeNormalData.imageUrl).optionalTransform(
|
||||
GlideRoundedCornersTransform(
|
||||
20f,
|
||||
GlideRoundedCornersTransform.CornerType.ALL
|
||||
)
|
||||
).into(holder.ivNoticeImage)
|
||||
}
|
||||
holder.tvNoticeCheck.setOnClickListener {
|
||||
//云公告
|
||||
noticeNormalData?.let { it1 -> CallerHmiManager.showNoticeNormalData(it1) }
|
||||
@@ -472,13 +474,15 @@ class MsgBoxTabAdapter(private val activity: Activity) :
|
||||
holder.tvNoticeTime.text =
|
||||
TimeUtils.millis2String(it[position].timestamp, getHourMinFormat())
|
||||
holder.tvNoticeContent.text = noticeTrafficStylePushData?.content
|
||||
GlideApp.with(activity).load(noticeTrafficStylePushData?.poiImgUrl)
|
||||
.optionalTransform(
|
||||
GlideRoundedCornersTransform(
|
||||
20f,
|
||||
GlideRoundedCornersTransform.CornerType.ALL
|
||||
)
|
||||
).into(holder.ivNoticeImage)
|
||||
if(noticeTrafficStylePushData?.poiImgUrl?.isNotEmpty() == true){
|
||||
GlideApp.with(activity).load(noticeTrafficStylePushData.poiImgUrl)
|
||||
.optionalTransform(
|
||||
GlideRoundedCornersTransform(
|
||||
20f,
|
||||
GlideRoundedCornersTransform.CornerType.ALL
|
||||
)
|
||||
).into(holder.ivNoticeImage)
|
||||
}
|
||||
holder.tvNoticeCheck.setOnClickListener {
|
||||
//云公告
|
||||
noticeTrafficStylePushData?.let { it1 ->
|
||||
|
||||
@@ -178,7 +178,6 @@ object ToolKitDataManager : IToolKitItemClickListener, IOrderListener {
|
||||
|
||||
ToolTypeEnum.OPERATION_PANEL.name -> {
|
||||
ctx?.also {
|
||||
// SopView.sopView.toggle(it)
|
||||
CallerHmiManager.toggleOperatePanel(true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,6 +68,7 @@ import com.zhjt.service_biz.BizConfig
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
|
||||
@@ -95,6 +96,8 @@ class MoGoHmiProvider : IMoGoHmiProvider {
|
||||
|
||||
private val xiaozhi by lazy { XiaoZhiStateManager() }
|
||||
|
||||
private val operatePanel by lazy { AtomicReference<WeakReference<View>>() }
|
||||
|
||||
override fun init(context: Context?) {
|
||||
this.context = context
|
||||
}
|
||||
@@ -448,22 +451,26 @@ class MoGoHmiProvider : IMoGoHmiProvider {
|
||||
Log.d(TAG, "toggleOperatePanel --- activity is null, show: $show")
|
||||
return
|
||||
}
|
||||
var target = operatePanel.get()?.get()
|
||||
if (show) {
|
||||
var target = activity.findViewById<View>(R.id.id_operate_panel)
|
||||
if (target == null) {
|
||||
val vs = activity.findViewById<ViewStub>(R.id.vs_operate_panel) ?: throw AssertionError()
|
||||
target = vs.inflate()
|
||||
target = activity.findViewById(R.id.id_operate_panel)
|
||||
if (target == null) {
|
||||
val vs = activity.findViewById<ViewStub>(R.id.vs_operate_panel) ?: throw AssertionError()
|
||||
target = vs.inflate()
|
||||
}
|
||||
}
|
||||
if (target != null) {
|
||||
operatePanel.set(WeakReference(target))
|
||||
}
|
||||
if (target != null && target.visibility != View.VISIBLE) {
|
||||
TransitionManager.beginDelayedTransition(target.parent as ViewGroup, Slide(Gravity.START).also { it.duration = 150; it.addTarget(target) })
|
||||
target.visibility = View.VISIBLE
|
||||
target.post { target.bringToFront() }
|
||||
}
|
||||
} else {
|
||||
val operatePanelView = activity.findViewById<View>(R.id.id_operate_panel)
|
||||
if (operatePanelView != null && operatePanelView.visibility == View.VISIBLE) {
|
||||
TransitionManager.beginDelayedTransition(operatePanelView.parent as ViewGroup, Slide(Gravity.START).also { it.duration = 150; it.addTarget(operatePanelView) })
|
||||
operatePanelView.visibility = View.GONE
|
||||
if (target != null && target.visibility == View.VISIBLE) {
|
||||
TransitionManager.beginDelayedTransition(target.parent as ViewGroup, Slide(Gravity.START).also { it.duration = 150; it.addTarget(target) })
|
||||
target.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ class MsgBoxBubbleView @JvmOverloads constructor(
|
||||
|
||||
var msgBoxBubbleAdapter: MsgBoxBubbleAdapter ?= null
|
||||
|
||||
private val TAG = "DriverMsgBoxBubbleView"
|
||||
private val TAG = "MsgBoxBubbleView"
|
||||
private val dataList :ArrayList<MsgBoxCountDownBean> = ArrayList()
|
||||
private var isShowData = true
|
||||
private var isShowSummary = false //是否展示汇总消息
|
||||
@@ -197,7 +197,7 @@ class MsgBoxBubbleView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
private fun showData(msgBoxBean: MsgBoxBean){
|
||||
clMsgBubbleLayout.visibility = View.VISIBLE
|
||||
llMsgBubbleLayout.visibility = View.VISIBLE
|
||||
val msgBoxCountDownBean = MsgBoxCountDownBean(msgBoxBean)
|
||||
dataList.add(msgBoxCountDownBean)
|
||||
msgBoxBubbleAdapter?.setData(dataList)
|
||||
|
||||
@@ -181,12 +181,14 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A
|
||||
val noticeNormalData = noticeFrCloudMsg.noticeNormalData
|
||||
holder.tvNoticeTime.text = TimeUtils.millis2String(it[position].msgBoxBean.timestamp,getHourMinFormat())
|
||||
holder.tvNoticeContent.text = noticeNormalData?.content
|
||||
GlideApp.with(activity).load(noticeNormalData?.imageUrl).optionalTransform(
|
||||
GlideRoundedCornersTransform(
|
||||
20f,
|
||||
GlideRoundedCornersTransform.CornerType.ALL
|
||||
)
|
||||
).into(holder.ivNoticeImage)
|
||||
if(noticeNormalData?.imageUrl?.isNotEmpty() == true){
|
||||
GlideApp.with(activity).load(noticeNormalData.imageUrl).optionalTransform(
|
||||
GlideRoundedCornersTransform(
|
||||
20f,
|
||||
GlideRoundedCornersTransform.CornerType.ALL
|
||||
)
|
||||
).into(holder.ivNoticeImage)
|
||||
}
|
||||
holder.tvNoticeCheck.setOnClickListener {
|
||||
//云公告
|
||||
if (noticeNormalData != null) {
|
||||
@@ -197,12 +199,14 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A
|
||||
val noticeTrafficStylePushData = noticeFrCloudMsg.trafficPushData
|
||||
holder.tvNoticeTime.text = TimeUtils.millis2String(it[position].msgBoxBean.timestamp,getHourMinFormat())
|
||||
holder.tvNoticeContent.text = noticeTrafficStylePushData?.content
|
||||
GlideApp.with(activity).load(noticeTrafficStylePushData?.poiImgUrl).optionalTransform(
|
||||
GlideRoundedCornersTransform(
|
||||
20f,
|
||||
GlideRoundedCornersTransform.CornerType.ALL
|
||||
)
|
||||
).into(holder.ivNoticeImage)
|
||||
if(noticeTrafficStylePushData?.poiImgUrl?.isNotEmpty() == true){
|
||||
GlideApp.with(activity).load(noticeTrafficStylePushData.poiImgUrl).optionalTransform(
|
||||
GlideRoundedCornersTransform(
|
||||
20f,
|
||||
GlideRoundedCornersTransform.CornerType.ALL
|
||||
)
|
||||
).into(holder.ivNoticeImage)
|
||||
}
|
||||
holder.tvNoticeCheck.setOnClickListener {
|
||||
//云公告
|
||||
if (noticeTrafficStylePushData != null) {
|
||||
@@ -417,7 +421,6 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A
|
||||
//Notice
|
||||
class BubbleNoticeHolder(itemView: View): RecyclerView.ViewHolder(itemView){
|
||||
var ivNoticeImage: ImageView = itemView.findViewById(R.id.ivNoticeImage)
|
||||
// var tvNoticeTitle: TextView = itemView.findViewById(R.id.tvNoticeTitle)
|
||||
var tvNoticeTime: TextView = itemView.findViewById(R.id.tvNoticeTime)
|
||||
var tvNoticeCheck: TextView = itemView.findViewById(R.id.tvNoticeCheck)
|
||||
var tvNoticeContent: TextView = itemView.findViewById(R.id.tvNoticeContent)
|
||||
|
||||
@@ -269,6 +269,7 @@ import kotlinx.android.synthetic.main.view_debug_setting.view.tvCurEnv
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.tvDriverServerStartupStatus
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.tvGearInfo
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.tvGitBranchInfo
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.tvHDCityCode
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.tvIPCMac
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.tvIdentifyInfo
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.tvIdentifyInfoCopy
|
||||
@@ -2254,6 +2255,11 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
}"
|
||||
)
|
||||
|
||||
val cityCode = mogoMapData.get()?.getCityCode()
|
||||
cityCode?.let {
|
||||
tvHDCityCode.text = "$it"
|
||||
}
|
||||
|
||||
tvObuConnectStatus.text = Html.fromHtml(
|
||||
"OBU连接状态:${
|
||||
if (AppConfigInfo.isConnectObu) {
|
||||
|
||||
@@ -2,24 +2,19 @@ package com.mogo.eagle.core.function.hmi.ui.tools
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.graphics.RectF
|
||||
import android.graphics.drawable.ClipDrawable
|
||||
import android.graphics.drawable.GradientDrawable
|
||||
import android.graphics.drawable.LayerDrawable
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import android.widget.ProgressBar
|
||||
import android.widget.TextView
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiAction
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.map.MogoData.Companion.mogoMapData
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
|
||||
@@ -29,7 +24,7 @@ import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
*/
|
||||
class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
|
||||
|
||||
companion object{
|
||||
companion object {
|
||||
private const val TAG = "OfflineMapDialog"
|
||||
}
|
||||
|
||||
@@ -44,11 +39,14 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
|
||||
private var downloadPercentView: TextView? = null
|
||||
private var downloadResultImg: ImageView? = null
|
||||
|
||||
@Volatile
|
||||
private var isLoading = false
|
||||
private var isConfirm = true
|
||||
private var isRetry = false
|
||||
|
||||
var location: MogoLocation? = null
|
||||
@Volatile
|
||||
private var isConfirm = true
|
||||
|
||||
@Volatile
|
||||
private var isRetry = false
|
||||
|
||||
init {
|
||||
setContentView(R.layout.dialog_offline_map)
|
||||
@@ -73,6 +71,7 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
|
||||
showNewContent(isLoading = true, false)
|
||||
cacheHDOfflineData()
|
||||
}
|
||||
|
||||
else -> {
|
||||
dismiss()
|
||||
}
|
||||
@@ -85,6 +84,7 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
|
||||
showNewContent(isLoading = true, false)
|
||||
cacheHDOfflineData()
|
||||
}
|
||||
|
||||
else -> {
|
||||
dismiss()
|
||||
}
|
||||
@@ -100,21 +100,31 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
|
||||
}
|
||||
|
||||
private fun cacheHDDataByCityByLonLat() {
|
||||
mogoMapData.get()?.cacheHDDataByCityByLonLat(location!!, { _, progress ->
|
||||
val loc = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
|
||||
hmiAction(
|
||||
"$M_HMI$TAG",
|
||||
mapOf("click" to "cacheHDOfflineData", "hasLoc" to loc)
|
||||
)
|
||||
if (loc.longitude > 0 && loc.latitude > 0) {
|
||||
mogoMapData.get()?.cacheHDDataByCityByLonLat(loc, { _, progress ->
|
||||
updateProgress(progress.toInt())
|
||||
}, { _, state ->
|
||||
if (state == 0) {// 失败
|
||||
showNewContent(isLoading = false, false)
|
||||
}
|
||||
})
|
||||
}, { _, state ->
|
||||
if (state == 0) {// 失败
|
||||
showNewContent(isLoading = false, false)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
showNewContent(isLoading = false, false)
|
||||
}
|
||||
}
|
||||
|
||||
private fun cacheHDOfflineData() {
|
||||
hmiAction(
|
||||
"$M_HMI$TAG",
|
||||
mapOf("click" to "cacheHDOfflineData","hasLoc" to (location != null))
|
||||
)
|
||||
if (location == null) {// 拿到了高德地图的cityCode
|
||||
val cityCode = mogoMapData.get()?.getCityCode()
|
||||
if (cityCode != null) {// 拿到了高德地图的cityCode
|
||||
hmiAction(
|
||||
"$M_HMI$TAG",
|
||||
mapOf("click" to "cacheHDOfflineData", "hasCityCode" to cityCode)
|
||||
)
|
||||
mogoMapData.get()?.cacheHDDataByCity({ _, progress ->
|
||||
updateProgress(progress.toInt())
|
||||
}, { _, state ->
|
||||
@@ -125,6 +135,7 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
|
||||
} else {// 只拿到了高精的经纬度
|
||||
cacheHDDataByCityByLonLat()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -133,8 +144,11 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
|
||||
if (this@OfflineMapDialog.isShowing) {
|
||||
progressBar?.let {
|
||||
if (it.visibility == View.VISIBLE) {
|
||||
it.progress = if (progress in 1..5) 5 else progress
|
||||
val p = AutoSizeUtils.dp2px(context, 770f) * (it.progress / 100.0) - AutoSizeUtils.dp2px(context, 30f)
|
||||
it.progress = if (progress <= 5) 5 else progress
|
||||
val p = AutoSizeUtils.dp2px(
|
||||
context,
|
||||
770f
|
||||
) * (it.progress / 100.0) - AutoSizeUtils.dp2px(context, 30f)
|
||||
CallerLogger.i("$M_HMI$TAG", "updateProgress: $p , pro:${it.progress}")
|
||||
downloadPercentView?.translationX = p.toFloat()
|
||||
downloadPercentView?.text = "${it.progress}%"
|
||||
@@ -160,50 +174,54 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
|
||||
|
||||
@SuppressLint("UseCompatLoadingForDrawables")
|
||||
private fun showNewContent(isLoading: Boolean, isSuccess: Boolean) {
|
||||
this.isLoading = isLoading
|
||||
change2NewStyle()
|
||||
when {
|
||||
isLoading -> {
|
||||
downloadResultImg?.visibility = View.GONE
|
||||
offlineTitleView?.visibility = View.GONE
|
||||
downloadingTip?.visibility = View.VISIBLE
|
||||
okView?.text = context.resources.getString(R.string.cancel)
|
||||
}
|
||||
else -> {
|
||||
when {
|
||||
isSuccess -> {
|
||||
okView?.visibility = View.VISIBLE
|
||||
okView?.text = context.resources.getString(R.string.ok_tip)
|
||||
offlineTitleView?.visibility = View.VISIBLE
|
||||
offlineTitleView?.text =
|
||||
context.resources.getString(R.string.offline_download_success)
|
||||
progressBar?.visibility = View.GONE
|
||||
downloadPercentView?.visibility = View.GONE
|
||||
downloadingTip?.visibility = View.GONE
|
||||
downloadResultImg?.visibility = View.VISIBLE
|
||||
downloadResultImg?.setImageDrawable(context.resources.getDrawable(R.drawable.icon_map_cache_success))
|
||||
hmiAction("$M_HMI$TAG", mapOf("cacheMap" to true))
|
||||
}
|
||||
else -> {
|
||||
isRetry = true
|
||||
isConfirm = false
|
||||
offlineTitleView?.visibility = View.VISIBLE
|
||||
offlineTitleView?.text =
|
||||
context.resources.getString(R.string.offline_download_failure)
|
||||
okView?.visibility = View.GONE
|
||||
progressBar?.visibility = View.GONE
|
||||
downloadPercentView?.visibility = View.GONE
|
||||
downloadingTip?.visibility = View.GONE
|
||||
leftView?.visibility = View.VISIBLE
|
||||
leftView?.text = context.resources.getString(R.string.ok_tip)
|
||||
rightView?.visibility = View.VISIBLE
|
||||
rightView?.text = context.resources.getString(R.string.retry)
|
||||
downloadResultImg?.visibility = View.VISIBLE
|
||||
downloadResultImg?.setImageDrawable(context.resources.getDrawable(R.drawable.icon_map_cache_failed))
|
||||
hmiAction("$M_HMI$TAG", mapOf("cacheMap" to false))
|
||||
UiThreadHandler.post({
|
||||
this.isLoading = isLoading
|
||||
change2NewStyle()
|
||||
when {
|
||||
isLoading -> {
|
||||
downloadResultImg?.visibility = View.GONE
|
||||
offlineTitleView?.visibility = View.GONE
|
||||
downloadingTip?.visibility = View.VISIBLE
|
||||
okView?.text = context.resources.getString(R.string.cancel)
|
||||
}
|
||||
|
||||
else -> {
|
||||
when {
|
||||
isSuccess -> {
|
||||
okView?.visibility = View.VISIBLE
|
||||
okView?.text = context.resources.getString(R.string.ok_tip)
|
||||
offlineTitleView?.visibility = View.VISIBLE
|
||||
offlineTitleView?.text =
|
||||
context.resources.getString(R.string.offline_download_success)
|
||||
progressBar?.visibility = View.GONE
|
||||
downloadPercentView?.visibility = View.GONE
|
||||
downloadingTip?.visibility = View.GONE
|
||||
downloadResultImg?.visibility = View.VISIBLE
|
||||
downloadResultImg?.setImageDrawable(context.resources.getDrawable(R.drawable.icon_map_cache_success))
|
||||
hmiAction("$M_HMI$TAG", mapOf("cacheMap" to true))
|
||||
}
|
||||
|
||||
else -> {
|
||||
isRetry = true
|
||||
isConfirm = false
|
||||
offlineTitleView?.visibility = View.VISIBLE
|
||||
offlineTitleView?.text =
|
||||
context.resources.getString(R.string.offline_download_failure)
|
||||
okView?.visibility = View.GONE
|
||||
progressBar?.visibility = View.GONE
|
||||
downloadPercentView?.visibility = View.GONE
|
||||
downloadingTip?.visibility = View.GONE
|
||||
leftView?.visibility = View.VISIBLE
|
||||
leftView?.text = context.resources.getString(R.string.ok_tip)
|
||||
rightView?.visibility = View.VISIBLE
|
||||
rightView?.text = context.resources.getString(R.string.retry)
|
||||
downloadResultImg?.visibility = View.VISIBLE
|
||||
downloadResultImg?.setImageDrawable(context.resources.getDrawable(R.drawable.icon_map_cache_failed))
|
||||
hmiAction("$M_HMI$TAG", mapOf("cacheMap" to false))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}, UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
@@ -145,13 +145,15 @@ class SystemVersionView @JvmOverloads constructor(
|
||||
if (isHDCached) {// 已缓存
|
||||
ToastUtils.showShort(resources.getString(R.string.offline_had_downloaded))
|
||||
} else {// 未缓存
|
||||
if(!NetworkUtils.isConnected(context)){
|
||||
ToastUtils.showShort(resources.getString(R.string.offline_update_tip))
|
||||
return@setOnClickListener
|
||||
}
|
||||
if (CallerMapUIServiceManager.getCityCode().isNullOrEmpty()) {// 未拿到高德的cityCode
|
||||
if ((getChassisLocationWGS84().longitude <= 0.0 && getChassisLocationWGS84().latitude <= 0.0)) {// 未拿到高精的经纬度
|
||||
ToastUtils.showShort(resources.getString(R.string.location_try_again))
|
||||
} else {// 拿到了高精的经纬度
|
||||
val dialog = OfflineMapDialog(context)
|
||||
dialog.location = getChassisLocationWGS84()
|
||||
dialog.show()
|
||||
OfflineMapDialog(context).show()
|
||||
}
|
||||
} else {// 拿到高德的cityCode
|
||||
OfflineMapDialog(context).show()
|
||||
|
||||
@@ -8,6 +8,7 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_MAI
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Process;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -90,10 +91,12 @@ public class MainLauncherActivity extends MainActivity {
|
||||
// 兼容处理之前联想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());
|
||||
|
||||
|
After Width: | Height: | Size: 135 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:paddingLeft="@dimen/dp_0">
|
||||
<!-- 设置背景色 -->
|
||||
<item
|
||||
android:id="@android:id/background"
|
||||
android:width="@dimen/dp_760"
|
||||
android:height="@dimen/dp_10"
|
||||
android:width="@dimen/dp_770"
|
||||
android:height="@dimen/dp_20"
|
||||
android:gravity="center_vertical">
|
||||
<shape>
|
||||
<corners android:radius="10dp" />
|
||||
<corners android:radius="@dimen/dp_10" />
|
||||
<solid android:color="@color/color_1C1C1C" />
|
||||
<stroke
|
||||
android:width="2dp"
|
||||
android:color="@color/color_161618" />
|
||||
<!-- <stroke-->
|
||||
<!-- android:width="2dp"-->
|
||||
<!-- android:color="@color/color_161618" />-->
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
@@ -34,10 +34,9 @@
|
||||
android:id="@android:id/progress"
|
||||
android:width="@dimen/dp_770"
|
||||
android:height="@dimen/dp_50"
|
||||
android:gravity="center_vertical"
|
||||
android:left="@dimen/dp_0">
|
||||
android:gravity="center_vertical">
|
||||
<scale
|
||||
android:drawable="@drawable/icon_progress_patch"
|
||||
android:drawable="@drawable/icon_progress_bg_patch"
|
||||
android:scaleWidth="100%" />
|
||||
</item>
|
||||
</layer-list>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="#979797"/>
|
||||
<size android:height="@dimen/dp_1" />
|
||||
|
||||
</shape>
|
||||
@@ -61,10 +61,8 @@
|
||||
android:layout_height="@dimen/dp_50"
|
||||
android:layout_marginTop="@dimen/dp_296"
|
||||
android:max="100"
|
||||
android:progress="5"
|
||||
android:progress="0"
|
||||
android:visibility="gone"
|
||||
android:paddingStart="@dimen/dp_0"
|
||||
android:paddingEnd="@dimen/dp_0"
|
||||
android:progressDrawable="@drawable/progressbar_corner_bg_test"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
android:id="@+id/steering_tv_left"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_72"
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height"
|
||||
android:layout_marginRight="-16dp"
|
||||
android:gravity="right"
|
||||
android:text="0°"
|
||||
@@ -63,7 +63,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="-16dp"
|
||||
android:layout_marginTop="@dimen/dp_72"
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height"
|
||||
android:gravity="left"
|
||||
android:text="0°"
|
||||
android:textColor="#415479"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivPassengerV2XImage"
|
||||
android:layout_width="@dimen/dp_72"
|
||||
android:layout_height="@dimen/dp_72"
|
||||
android:layout_width="@dimen/dp_status_bar_height"
|
||||
android:layout_height="@dimen/dp_status_bar_height"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -10,7 +11,7 @@
|
||||
android:layout_height="@dimen/dp_120"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:src="@drawable/icon_warning_take_over"
|
||||
android:contentDescription="@string/autopilot_icon"
|
||||
/>
|
||||
@@ -24,6 +25,7 @@
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_38"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -46,6 +48,8 @@
|
||||
app:layout_constraintRight_toRightOf="@id/tvAutopilotTime"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:textColor="#CCCCCC"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -11,7 +12,7 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:src="@drawable/icon_warning_take_over"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:contentDescription="@string/fsm_icon"
|
||||
/>
|
||||
|
||||
@@ -24,6 +25,7 @@
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:textSize="@dimen/sp_38"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -46,6 +48,8 @@
|
||||
app:layout_constraintRight_toRightOf="@id/tvFSMTime"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:textColor="#CCCCCC"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -11,7 +12,7 @@
|
||||
android:src="@drawable/icon_tab_notice"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:contentDescription="@string/notice_icon"
|
||||
/>
|
||||
|
||||
@@ -25,6 +26,7 @@
|
||||
android:text="@string/notice_title"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_38"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -55,14 +57,12 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tvNoticeTitle"
|
||||
app:layout_constraintRight_toLeftOf="@id/tvNoticeCheck"
|
||||
app:layout_constraintTop_toTopOf="@id/tvNoticeCheck"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvNoticeCheck"
|
||||
android:gravity="start"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
app:layout_constraintRight_toLeftOf="@id/tvNoticeTime"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvNoticeTitle"
|
||||
android:textColor="#CCCCCC"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -10,7 +11,7 @@
|
||||
android:layout_height="@dimen/dp_120"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:src="@drawable/icon_msg_box_operation"
|
||||
android:contentDescription="@string/operation_icon"
|
||||
/>
|
||||
@@ -25,6 +26,7 @@
|
||||
android:text="@string/operation_title"
|
||||
android:textSize="@dimen/sp_38"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -36,6 +38,8 @@
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:textColor="#CCCCCC"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -12,8 +13,7 @@
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:src="@drawable/v2x_icon_shigu_sanjiaopai"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginBottom="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:contentDescription="@string/operation_door_icon"
|
||||
/>
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
android:textColor="@color/white"
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:text="@string/operation_door_title"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -49,8 +50,8 @@
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivOperationDoorImage"
|
||||
android:textColor="#CCCCCC"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -12,8 +13,7 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginBottom="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:contentDescription="@string/operation_return_icon"
|
||||
/>
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
app:layout_constraintTop_toTopOf="@id/ivOperationReturnImage"
|
||||
app:layout_constraintLeft_toRightOf="@id/ivOperationReturnImage"
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -49,9 +50,8 @@
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivOperationReturnImage"
|
||||
android:textColor="#CCCCCC"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:gravity="start"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -12,8 +13,7 @@
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:src="@drawable/icon_msg_box_operation_stop"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginBottom="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:contentDescription="@string/operation_stop_icon"
|
||||
/>
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
android:textColor="@color/white"
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:text="@string/operation_stop_title"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -49,8 +50,8 @@
|
||||
app:layout_constraintBottom_toBottomOf="@id/ivOperationStopImage"
|
||||
android:textColor="#CCCCCC"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -11,7 +12,7 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:src="@drawable/icon_warning_take_over"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:contentDescription="@string/ssm_icon"
|
||||
/>
|
||||
|
||||
@@ -24,6 +25,7 @@
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_38"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -46,6 +48,8 @@
|
||||
app:layout_constraintRight_toRightOf="@id/tvSsmTime"
|
||||
android:textColor="#CCCCCC"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -11,7 +12,7 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:src="@drawable/icon_tab_notice"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:contentDescription="@string/summary_icon"
|
||||
/>
|
||||
|
||||
@@ -25,6 +26,7 @@
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_38"
|
||||
android:text="@string/summary_title"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -47,7 +49,8 @@
|
||||
app:layout_constraintRight_toRightOf="@id/tvSummaryTime"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:textColor="#CCCCCC"
|
||||
android:gravity="start"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -2,6 +2,7 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/dp_180"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ImageView
|
||||
@@ -10,7 +11,7 @@
|
||||
android:layout_height="@dimen/dp_120"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_40"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:contentDescription="@string/v2x_icon"
|
||||
/>
|
||||
|
||||
@@ -23,6 +24,7 @@
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:textSize="@dimen/sp_38"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -45,6 +47,8 @@
|
||||
app:layout_constraintRight_toRightOf="@id/tvV2XTime"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:textColor="#CCCCCC"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:paddingBottom="@dimen/dp_30"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -47,7 +47,7 @@
|
||||
android:id="@id/vs_operate_panel"
|
||||
android:layout_width="@dimen/dp_1046"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_72"
|
||||
android:layout_marginTop="@dimen/dp_status_bar_height"
|
||||
android:inflatedId="@id/id_operate_panel"
|
||||
android:layout_gravity="start|top"
|
||||
android:layout="@layout/layout_operate_panel_holder" />
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_19"
|
||||
android:layout_marginTop="@dimen/dp_76"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
@@ -20,7 +19,7 @@
|
||||
android:id="@+id/clBoneBiz"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_385"
|
||||
android:layout_marginTop="@dimen/dp_309"
|
||||
android:layout_marginStart="@dimen/dp_19"
|
||||
android:elevation="1dp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
@@ -30,10 +29,9 @@
|
||||
android:id="@+id/clBoneTab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_385"
|
||||
android:layout_marginTop="@dimen/dp_309"
|
||||
android:elevation="20dp"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -15,7 +15,7 @@
|
||||
<com.mogo.eagle.core.function.hmi.bone.tab.CarInfoTabView
|
||||
android:id="@+id/carInfoTabView"
|
||||
android:layout_width="@dimen/dp_960"
|
||||
android:layout_height="@dimen/dp_1137"
|
||||
android:layout_height="@dimen/dp_1214"
|
||||
android:layout_marginStart="@dimen/dp_40"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
@@ -25,7 +25,7 @@
|
||||
<com.mogo.eagle.core.function.hmi.bone.tab.MsgBoxTabView
|
||||
android:id="@+id/msgBoxTabView"
|
||||
android:layout_width="@dimen/dp_960"
|
||||
android:layout_height="@dimen/dp_1137"
|
||||
android:layout_height="@dimen/dp_1214"
|
||||
android:layout_marginStart="@dimen/dp_40"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_700"
|
||||
android:layout_marginTop="@dimen/dp_75"
|
||||
android:layout_height="@dimen/dp_900"
|
||||
app:layout_constraintTop_toBottomOf="@+id/topViewPos">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
@@ -40,12 +39,13 @@
|
||||
android:layout_marginEnd="@dimen/dp_40">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivCarType"
|
||||
android:layout_width="@dimen/dp_760"
|
||||
android:layout_height="@dimen/dp_400"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/icon_car_default"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:id="@+id/ivCarType"
|
||||
android:layout_width="@dimen/dp_532"
|
||||
android:layout_height="@dimen/dp_280"
|
||||
android:scaleType="fitXY"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
<TextView
|
||||
android:id="@+id/tvCarNo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_72"
|
||||
android:layout_height="@dimen/dp_status_bar_height"
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:background="@drawable/bg_tab_car_no"
|
||||
android:gravity="center"
|
||||
@@ -151,15 +151,28 @@
|
||||
<TextView
|
||||
android:id="@+id/tvADVersion"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_45"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:gravity="center"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/tab_version_ad_info"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/tvPadVersion"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvPadVersion" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvADVersionName"
|
||||
android:layout_width="@dimen/dp_514"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:gravity="start"
|
||||
android:maxLines="2"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintRight_toRightOf="@+id/tvADUpdate"
|
||||
app:layout_constraintLeft_toRightOf="@+id/tvADVersion"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvPadVersion" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvADUpdate"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -175,14 +188,14 @@
|
||||
<TextView
|
||||
android:id="@+id/tvHDMapVersion"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_45"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:gravity="center"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/tab_version_hdmap_info"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/tvADVersion"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvADVersion" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvADVersionName" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvHDMapUpdate"
|
||||
@@ -198,9 +211,9 @@
|
||||
<TextView
|
||||
android:id="@+id/tvADMapVersion"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_45"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:gravity="center"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/tab_version_admap_info"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_32"
|
||||
@@ -212,12 +225,12 @@
|
||||
android:layout_width="@dimen/dp_152"
|
||||
android:layout_height="@dimen/dp_53"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginTop="@dimen/dp_232"
|
||||
android:layout_marginTop="@dimen/dp_39"
|
||||
android:text="@string/tab_sn"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_38"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvVersionPos" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvADMapVersion" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSnInfo"
|
||||
|
||||
@@ -618,6 +618,17 @@
|
||||
android:layout_height="1dp"
|
||||
android:background="#F0F0F0" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvHDCityCode"
|
||||
style="@style/DebugSettingText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#F0F0F0" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvObuConnectStatus"
|
||||
style="@style/DebugSettingText"
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
<View
|
||||
android:id="@+id/viewTimeBg"
|
||||
android:layout_width="@dimen/dp_295"
|
||||
android:layout_height="@dimen/dp_72"
|
||||
android:layout_height="@dimen/dp_status_bar_height"
|
||||
app:layout_constraintLeft_toLeftOf="@id/viewFaultTimeLabel"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvFaultTimeTitle"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
@@ -165,8 +165,8 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivTimeReduce"
|
||||
android:layout_width="@dimen/dp_72"
|
||||
android:layout_height="@dimen/dp_72"
|
||||
android:layout_width="@dimen/dp_status_bar_height"
|
||||
android:layout_height="@dimen/dp_status_bar_height"
|
||||
android:src="@drawable/icon_fault_time_reduce"
|
||||
app:layout_constraintTop_toTopOf="@id/viewTimeBg"
|
||||
app:layout_constraintBottom_toBottomOf="@id/viewTimeBg"
|
||||
@@ -176,8 +176,8 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivTimeAdd"
|
||||
android:layout_width="@dimen/dp_72"
|
||||
android:layout_height="@dimen/dp_72"
|
||||
android:layout_width="@dimen/dp_status_bar_height"
|
||||
android:layout_height="@dimen/dp_status_bar_height"
|
||||
android:src="@drawable/icon_fault_time_add"
|
||||
app:layout_constraintTop_toTopOf="@id/viewTimeBg"
|
||||
app:layout_constraintBottom_toBottomOf="@id/viewTimeBg"
|
||||
|
||||
@@ -58,6 +58,35 @@
|
||||
app:layout_constraintBottom_toTopOf="@+id/shadowView"
|
||||
app:layout_constraintEnd_toStartOf="@+id/visualAngleToggle" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.SingleTrafficLightView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_marginTop="@dimen/hmi_traffic_light_layout_margin_top"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.widget.FusionTrafficLightView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/hmi_traffic_light_layout_margin_top"
|
||||
android:visibility="gone"
|
||||
app:fusionLightUser="driver"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.mogo.eagle.core.function.hmi.ui.msgbox.MsgBoxBubbleView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_53"
|
||||
android:layout_marginEnd="@dimen/dp_60"
|
||||
/>
|
||||
|
||||
<View
|
||||
android:id="@+id/shadowView"
|
||||
android:layout_width="270dp"
|
||||
|
||||
@@ -6,6 +6,15 @@
|
||||
android:background="@drawable/bg_tab_item"
|
||||
>
|
||||
|
||||
<View
|
||||
android:layout_width="@dimen/dp_960"
|
||||
android:layout_height="@dimen/dp_183"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:background="@drawable/bg_tab_msg_box_title"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvMsgNotice"
|
||||
android:layout_width="@dimen/dp_154"
|
||||
@@ -73,14 +82,16 @@
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rvMsgBoxList"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="@dimen/dp_0"
|
||||
android:layout_height="@dimen/dp_0"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvMsgIpcReport"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:layout_marginStart="@dimen/dp_66"
|
||||
android:layout_marginEnd="@dimen/dp_66"
|
||||
android:layout_marginBottom="@dimen/dp_216"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -2,7 +2,7 @@
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_72"
|
||||
android:layout_height="@dimen/dp_status_bar_height"
|
||||
tools:background="#A6000000"
|
||||
tools:parentTag="android.widget.FrameLayout">
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:background="#A6000000"
|
||||
tools:layout_height="@dimen/dp_72">
|
||||
tools:layout_height="@dimen/dp_status_bar_height">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/viewWifiStateBg"
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
<View
|
||||
android:id="@+id/view_time_bg"
|
||||
android:layout_width="@dimen/dp_295"
|
||||
android:layout_height="@dimen/dp_72"
|
||||
android:layout_height="@dimen/dp_status_bar_height"
|
||||
app:layout_constraintLeft_toLeftOf="@id/view_time_label"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_time_title"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
@@ -173,8 +173,8 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_time_reduce"
|
||||
android:layout_width="@dimen/dp_72"
|
||||
android:layout_height="@dimen/dp_72"
|
||||
android:layout_width="@dimen/dp_status_bar_height"
|
||||
android:layout_height="@dimen/dp_status_bar_height"
|
||||
android:src="@drawable/icon_fault_time_reduce"
|
||||
app:layout_constraintTop_toTopOf="@id/view_time_bg"
|
||||
app:layout_constraintBottom_toBottomOf="@id/view_time_bg"
|
||||
@@ -184,8 +184,8 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_time_add"
|
||||
android:layout_width="@dimen/dp_72"
|
||||
android:layout_height="@dimen/dp_72"
|
||||
android:layout_width="@dimen/dp_status_bar_height"
|
||||
android:layout_height="@dimen/dp_status_bar_height"
|
||||
android:src="@drawable/icon_fault_time_add"
|
||||
app:layout_constraintTop_toTopOf="@id/view_time_bg"
|
||||
app:layout_constraintBottom_toBottomOf="@id/view_time_bg"
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
<dimen name="dp_588">588dp</dimen>
|
||||
<dimen name="dp_1066">1066dp</dimen>
|
||||
|
||||
<dimen name="dp_status_bar_height">67dp</dimen>
|
||||
<dimen name="turnlight_bg_corner">60dp</dimen>
|
||||
<dimen name="turnlight_width">275dp</dimen>
|
||||
<dimen name="turnlight_height">120dp</dimen>
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
<string name="offline_download_success">离线地图下载成功</string>
|
||||
<string name="offline_download_failure">离线地图下载失败</string>
|
||||
<string name="offline_had_downloaded">当前已为最新版本</string>
|
||||
<string name="offline_update_tip">请检查网络连接是否正常</string>
|
||||
<string name="location_try_again">请检查定位是否正常</string>
|
||||
<string name="ok_tip">确定</string>
|
||||
<string name="retry">重试</string>
|
||||
|
||||
@@ -33,7 +33,6 @@ class MapBizProvider :IMoGoFunctionServerProvider, IMogoRoma {
|
||||
MogoRouteOverlayManager.getInstance().init()
|
||||
MogoTrajectoryOverlayManager.getInstance().init()
|
||||
MapPointCloudSubscriber.instance
|
||||
SpeedLimitDataManager.getInstance().start()
|
||||
RoadCrossCameraManager.instance.init(context)
|
||||
if(DeviceUtils.isLeOrEb5Model()){ //todo 新增稳定设备类型需要添加,目的避免在nuc设备上使用此类功能
|
||||
romaManager.init()
|
||||
|
||||
@@ -72,7 +72,6 @@ class MogoStartUpProvider : IStartUpProvider {
|
||||
StartupManager.Builder()
|
||||
.addStartup(DataCenterStartUp())
|
||||
.addStartup(AutopilotStartUp())
|
||||
.addStartup(AiCloudBizStartUp())
|
||||
.addStartup(ObuStartUp())
|
||||
.addStartup(MapBizStartUp())
|
||||
.setConfig(config)
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
package com.mogo.eagle.core.function.startup.stagetwo
|
||||
|
||||
import android.content.Context
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.rousetime.android_startup.AndroidStartup
|
||||
|
||||
class AiCloudBizStartUp : AndroidStartup<Boolean>() {
|
||||
|
||||
override fun create(context: Context): Boolean {
|
||||
ARouter.getInstance().build(MogoServicePaths.PATH_AI_CLOUD).navigation()
|
||||
return true
|
||||
}
|
||||
|
||||
override fun callCreateOnMainThread(): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun waitOnMainThread(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun dependenciesByName(): List<String> {
|
||||
val deps = arrayListOf<String>()
|
||||
deps.add("com.mogo.eagle.core.function.startup.stagetwo.DataCenterStartUp")
|
||||
return deps
|
||||
}
|
||||
}
|
||||
@@ -52,12 +52,6 @@ public class MogoServicePaths {
|
||||
@Keep
|
||||
public static final String PATH_AUTO_PILOT = "/auto_pilot/api";
|
||||
|
||||
/**
|
||||
* AiCloud socket 数据透出业务模块
|
||||
*/
|
||||
@Keep
|
||||
public static final String PATH_AI_CLOUD = "/ai_cloud/api";
|
||||
|
||||
/**
|
||||
* 业务Biz 模块
|
||||
*/
|
||||
@@ -99,6 +93,9 @@ public class MogoServicePaths {
|
||||
@Keep
|
||||
public static final String PATH_DATA_CENTER_MODULE = "/data_center/api";
|
||||
|
||||
@Keep
|
||||
public static final String PATH_DATA_CENTER_BIZ_FUNCTION = "/data_center_biz/function";
|
||||
|
||||
@Keep
|
||||
public static final String PATH_CERT_DOWN_LOAD_PROVIDER = "/cert_file/api";
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ enum class Carmodel(val serverName:String,@RawRes val rawValue: Int, val resId:
|
||||
B1("B1", R.raw.xiaoba, R.drawable.icon_car_b1),
|
||||
B2("B2", R.raw.m2, R.drawable.icon_car_b2),
|
||||
M1("M1", R.raw.m1, R.drawable.icon_car_m1),
|
||||
C1("C1", R.raw.huanwei, R.drawable.icon_car_t1),; //todo c1替换
|
||||
C1("C1", R.raw.huanwei, R.drawable.icon_car_c1),;
|
||||
|
||||
companion object{
|
||||
fun getCarModelFromServerName(serverName:String?): Carmodel {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.mogo.eagle.core.function.api.datacenter
|
||||
|
||||
interface IDataCenterBizListener {
|
||||
|
||||
fun invokeLoginNo(loginNo:String?){}
|
||||
|
||||
fun invokeCarRes(res:Int){}
|
||||
|
||||
fun invokeCarNo(no:String?){}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.mogo.eagle.core.function.api.datacenter
|
||||
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider
|
||||
import com.mogo.eagle.core.function.api.och.IOchFunctionCallNotify
|
||||
|
||||
interface IDataCenterBizProvider: IMoGoFunctionServerProvider, IOchFunctionCallNotify {
|
||||
|
||||
|
||||
}
|
||||
@@ -71,4 +71,9 @@ interface IEagleBaseFunctionCall4Och {
|
||||
*/
|
||||
fun setOchPlateNumber(plateNumber: String?) {}
|
||||
|
||||
/**
|
||||
* Och设置 登录手机号
|
||||
*/
|
||||
fun setOchLoginNo(loginNo: String?){}
|
||||
|
||||
}
|
||||
@@ -7,17 +7,19 @@ import com.mogo.eagle.core.data.enums.Carmodel
|
||||
*/
|
||||
interface IOchFunctionCallNotify {
|
||||
|
||||
fun init(){}
|
||||
|
||||
/**
|
||||
* 网约车回调登陆信息
|
||||
*/
|
||||
fun notifyLoginInfo() {}
|
||||
fun notifyLoginInfo(loginNo: String?) {}
|
||||
|
||||
// 车型变化回调
|
||||
fun notifyCarMode(carModel: Carmodel?){}
|
||||
fun notifyCarMode(carModel: Carmodel)
|
||||
|
||||
// 车牌变化回调
|
||||
fun notifyPlateNumber(plateNumber: String?){}
|
||||
fun notifyPlateNumber(plateNumber: String?)
|
||||
|
||||
fun LoginOut() {}
|
||||
fun loginOut() {}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.mogo.eagle.core.function.call.datacenter
|
||||
|
||||
import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizListener
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
|
||||
object CallerDataCenterBizListener : CallerBase<IDataCenterBizListener>() {
|
||||
|
||||
private var res:Int = 0
|
||||
private var loginNo:String? = null
|
||||
private var no:String? = null
|
||||
|
||||
override fun doSomeAfterAddListener(tag: String, listener: IDataCenterBizListener) {
|
||||
super.doSomeAfterAddListener(tag, listener)
|
||||
listener.invokeLoginNo(no)
|
||||
listener.invokeCarRes(res)
|
||||
listener.invokeCarNo(no)
|
||||
}
|
||||
|
||||
fun invokeLoginNo(loginNo: String?){
|
||||
this.loginNo = loginNo
|
||||
M_LISTENERS.forEach {
|
||||
it.value.invokeLoginNo(loginNo)
|
||||
}
|
||||
}
|
||||
|
||||
fun invokeCarRes(res: Int) {
|
||||
this.res = res
|
||||
M_LISTENERS.forEach {
|
||||
it.value.invokeCarRes(res)
|
||||
}
|
||||
}
|
||||
|
||||
fun invokeCarNo(no: String?) {
|
||||
this.no = no
|
||||
M_LISTENERS.forEach {
|
||||
it.value.invokeCarNo(no)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.mogo.eagle.core.function.call.datacenter
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.data.enums.Carmodel
|
||||
import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizProvider
|
||||
import com.mogo.eagle.core.function.api.och.IOchFunctionCallNotify
|
||||
|
||||
object CallerDataCenterBizManager: IOchFunctionCallNotify {
|
||||
|
||||
private val dataCenterBizProviderApi
|
||||
get() = ARouter.getInstance().build(MogoServicePaths.PATH_DATA_CENTER_BIZ_FUNCTION)
|
||||
.navigation() as? IDataCenterBizProvider
|
||||
|
||||
override fun init() {
|
||||
dataCenterBizProviderApi?.init()
|
||||
}
|
||||
|
||||
override fun notifyLoginInfo(loginNo: String?) {
|
||||
dataCenterBizProviderApi?.notifyLoginInfo(loginNo)
|
||||
}
|
||||
|
||||
override fun notifyCarMode(carModel: Carmodel) {
|
||||
dataCenterBizProviderApi?.notifyCarMode(carModel)
|
||||
}
|
||||
|
||||
override fun notifyPlateNumber(plateNumber: String?) {
|
||||
dataCenterBizProviderApi?.notifyPlateNumber(plateNumber)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import com.mogo.eagle.core.function.api.och.IEagleBaseFunctionCall4Och
|
||||
import com.mogo.eagle.core.function.api.och.toolkit.IToolKitItemClickListener
|
||||
import com.mogo.eagle.core.function.api.och.toolkit.ToolKitCustomItemAddParam
|
||||
import com.mogo.eagle.core.function.api.och.toolkit.ToolKitDefaultItemAddParam
|
||||
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
|
||||
/**
|
||||
@@ -89,13 +90,17 @@ object CallerEagleBaseFunctionCall4OchManager : IEagleBaseFunctionCall4Och {
|
||||
* Och设置车型 E70 H9 B1 B2 M1 金旅牌XML6606JEVY0(小巴车) NJL6450ICEV(小巴) BJ5122TXSEV-H1(环卫车)
|
||||
*/
|
||||
override fun setOchCarModel(carModel: Carmodel) {
|
||||
//this.carModel = carModel
|
||||
CallerDataCenterBizManager.notifyCarMode(carModel)
|
||||
}
|
||||
|
||||
/**
|
||||
* Och设置 车牌
|
||||
*/
|
||||
override fun setOchPlateNumber(plateNumber: String?) {
|
||||
// this.plateNumber = plateNumber
|
||||
CallerDataCenterBizManager.notifyPlateNumber(plateNumber)
|
||||
}
|
||||
|
||||
override fun setOchLoginNo(loginNo: String?) {
|
||||
CallerDataCenterBizManager.notifyLoginInfo(loginNo)
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @author XuXinChao //todo emArrow 合并dataCenter
|
||||
* @date 2023/4/20
|
||||
* 订单监听管理
|
||||
*/
|
||||
|
||||
BIN
core/mogo-core-res/src/main/res/drawable-nodpi/icon_car_c1.png
Normal file
|
After Width: | Height: | Size: 796 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 801 KiB After Width: | Height: | Size: 628 KiB |
|
Before Width: | Height: | Size: 628 KiB After Width: | Height: | Size: 801 KiB |
@@ -1049,6 +1049,7 @@
|
||||
<dimen name="dp_1170">1170dp</dimen>
|
||||
<dimen name="dp_1176">1176dp</dimen>
|
||||
<dimen name="dp_1200">1200dp</dimen>
|
||||
<dimen name="dp_1214">1214dp</dimen>
|
||||
<dimen name="dp_1241">1241dp</dimen>
|
||||
<dimen name="dp_1250">1250dp</dimen>
|
||||
<dimen name="dp_1261">1261dp</dimen>
|
||||
|
||||
@@ -81,6 +81,8 @@ interface IMogoData {
|
||||
*/
|
||||
fun getTileId(lon: Double, lat: Double): Long
|
||||
|
||||
fun getCityCode(): Int?
|
||||
|
||||
/**
|
||||
* 通过cityCode,缓存城市HDMap
|
||||
*/
|
||||
|
||||
@@ -176,6 +176,11 @@ object MapDataWrapper : IMogoData {
|
||||
return MapAutoApi.getTileID(lon, lat, 13) // 13为默认获取瓦片层级级别
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
override fun getCityCode(): Int? {
|
||||
return getHDCityCode(gdLocationClient.lastCityCode)
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过cityCode获取HDMap对应缓存城市
|
||||
*/
|
||||
@@ -187,8 +192,8 @@ object MapDataWrapper : IMogoData {
|
||||
val gdCityCode = gdLocationClient.lastCityCode
|
||||
i(M_MAP + TAG, "gdCityCode is:$gdCityCode")
|
||||
val id = getHDCityCode(gdCityCode)
|
||||
id?.let {
|
||||
MapDataApi.cacheHDDataByCity(it, object : OnHdDataDownByCityListener {
|
||||
if (id != null && id > 0) {
|
||||
MapDataApi.cacheHDDataByCity(id, object : OnHdDataDownByCityListener {
|
||||
override fun onMapHDDataCacheProgressByCity(id: Int, p: Double) {
|
||||
progress.invoke(id, p * 100)
|
||||
}
|
||||
@@ -197,7 +202,10 @@ object MapDataWrapper : IMogoData {
|
||||
result.invoke(id, state)
|
||||
}
|
||||
})
|
||||
}else{
|
||||
result.invoke(0, 0)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -305,13 +313,23 @@ object MapDataWrapper : IMogoData {
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
override fun getBusStation(routeList: ArrayList<LonLatPoint>, resultUnit:((MutableList<BusStation>) -> Unit)) {
|
||||
override fun getBusStation(
|
||||
routeList: ArrayList<LonLatPoint>,
|
||||
resultUnit: ((MutableList<BusStation>) -> Unit)
|
||||
) {
|
||||
val resultList = mutableListOf<BusStation>()
|
||||
MapDataApi.getBusStation(routeList, object : IResult<RoutePath> {
|
||||
override fun result(code: Int, result: RoutePath?) {
|
||||
result?.steps?.forEach {
|
||||
it?.busStations.forEach {
|
||||
val busStation = BusStation(it.busStationPoints, it.id.toLong() , it.roadId, it.type, -1, -1)
|
||||
val busStation = BusStation(
|
||||
it.busStationPoints,
|
||||
it.id.toLong(),
|
||||
it.roadId,
|
||||
it.type,
|
||||
-1,
|
||||
-1
|
||||
)
|
||||
resultList.add(busStation)
|
||||
}
|
||||
}
|
||||
@@ -332,7 +350,15 @@ object MapDataWrapper : IMogoData {
|
||||
override fun result(code: Int, result: RoadCross?) {
|
||||
try {
|
||||
Logger.d(TAG, "getCrossRoad --- 1 - 1 ---")
|
||||
temp.set(CrossRoad(result?.status ?: 0, result?.tile_id ?: "", result?.cross_id ?: "", result?.tile_id_end ?: "", result?.cross_id_end ?: ""))
|
||||
temp.set(
|
||||
CrossRoad(
|
||||
result?.status ?: 0,
|
||||
result?.tile_id ?: "",
|
||||
result?.cross_id ?: "",
|
||||
result?.tile_id_end ?: "",
|
||||
result?.cross_id_end ?: ""
|
||||
)
|
||||
)
|
||||
} finally {
|
||||
latch.countDown()
|
||||
}
|
||||
|
||||
@@ -17,360 +17,360 @@ object HDMapUtils {
|
||||
|
||||
//河北
|
||||
map["0311"] = 1301 //石家庄市
|
||||
// map["0315"] = 1302 //唐山市
|
||||
// map["0335"] = 1303 //秦皇岛市
|
||||
// map["0310"] = 1304 //邯郸市
|
||||
// map["0319"] = 1305 //邢台市
|
||||
map["0315"] = 1302 //唐山市
|
||||
map["0335"] = 1303 //秦皇岛市
|
||||
map["0310"] = 1304 //邯郸市
|
||||
map["0319"] = 1305 //邢台市
|
||||
map["0312"] = 1306 //保定市
|
||||
// map["0313"] = 1307 //张家口市
|
||||
// map["0314"] = 1308 //承德市
|
||||
// map["0317"] = 1309 //沧州市
|
||||
map["0313"] = 1307 //张家口市
|
||||
map["0314"] = 1308 //承德市
|
||||
map["0317"] = 1309 //沧州市
|
||||
map["0316"] = 1310 //廊坊市
|
||||
// map["0318"] = 1311 //衡水市
|
||||
map["0318"] = 1311 //衡水市
|
||||
|
||||
//山西
|
||||
// map["0351"] = 1401 //太原市
|
||||
// map["0352"] = 1402 //大同市
|
||||
// map["0353"] = 1403 //阳泉市
|
||||
// map["0355"] = 1404 //长治市
|
||||
// map["0356"] = 1405 //晋城市
|
||||
// map["0349"] = 1406 //朔州市
|
||||
// map["0354"] = 1407 //晋中市
|
||||
// map["0359"] = 1408 //运城市
|
||||
// map["0350"] = 1409 //忻州市
|
||||
// map["0357"] = 1410 //临汾市
|
||||
// map["0358"] = 1411 //吕梁市
|
||||
map["0351"] = 1401 //太原市
|
||||
map["0352"] = 1402 //大同市
|
||||
map["0353"] = 1403 //阳泉市
|
||||
map["0355"] = 1404 //长治市
|
||||
map["0356"] = 1405 //晋城市
|
||||
map["0349"] = 1406 //朔州市
|
||||
map["0354"] = 1407 //晋中市
|
||||
map["0359"] = 1408 //运城市
|
||||
map["0350"] = 1409 //忻州市
|
||||
map["0357"] = 1410 //临汾市
|
||||
map["0358"] = 1411 //吕梁市
|
||||
|
||||
//内蒙古
|
||||
map["0471"] = 1501 //呼和浩特市
|
||||
map["0472"] = 1502 //包头市
|
||||
// map["0473"] = 1503 //乌海市
|
||||
// map["0476"] = 1504 //赤峰市
|
||||
// map["0475"] = 1505 //通辽市
|
||||
map["0473"] = 1503 //乌海市
|
||||
map["0476"] = 1504 //赤峰市
|
||||
map["0475"] = 1505 //通辽市
|
||||
map["0477"] = 1506 //鄂尔多斯市
|
||||
map["0470"] = 1507 //呼伦贝尔市
|
||||
// map["0478"] = 1508 //巴彦淖尔市
|
||||
// map["0474"] = 1509 //乌兰察布市
|
||||
// map["0482"] = 1522 //兴安盟
|
||||
map["0478"] = 1508 //巴彦淖尔市
|
||||
map["0474"] = 1509 //乌兰察布市
|
||||
map["0482"] = 1522 //兴安盟
|
||||
map["0479"] = 1525 //锡林郭勒盟
|
||||
// map["0483"] = 1529 //阿拉善盟
|
||||
map["0483"] = 1529 //阿拉善盟
|
||||
|
||||
//辽宁
|
||||
// map["0411"] = 2102 //大连市
|
||||
// map["0412"] = 2103 //鞍山市
|
||||
// map["0413"] = 2104 //抚顺市
|
||||
// map["0414"] = 2105 //本溪市
|
||||
// map["0415"] = 2106 //丹东市
|
||||
// map["0416"] = 2107 //锦州市
|
||||
// map["0417"] = 2108 //营口市
|
||||
// map["0418"] = 2109 //阜新市
|
||||
// map["0419"] = 2110 //辽阳市
|
||||
// map["0427"] = 2111 //盘锦市
|
||||
// map["0410"] = 2112 //铁岭市
|
||||
// map["0421"] = 2113 //朝阳市
|
||||
// map["0429"] = 2114 //葫芦岛市
|
||||
map["0411"] = 2102 //大连市
|
||||
map["0412"] = 2103 //鞍山市
|
||||
map["0413"] = 2104 //抚顺市
|
||||
map["0414"] = 2105 //本溪市
|
||||
map["0415"] = 2106 //丹东市
|
||||
map["0416"] = 2107 //锦州市
|
||||
map["0417"] = 2108 //营口市
|
||||
map["0418"] = 2109 //阜新市
|
||||
map["0419"] = 2110 //辽阳市
|
||||
map["0427"] = 2111 //盘锦市
|
||||
map["0410"] = 2112 //铁岭市
|
||||
map["0421"] = 2113 //朝阳市
|
||||
map["0429"] = 2114 //葫芦岛市
|
||||
|
||||
//吉林
|
||||
map["0431"] = 2201 //长春市
|
||||
map["0432"] = 2202 //吉林市
|
||||
// map["0434"] = 2203 //四平市
|
||||
// map["0437"] = 2204 //辽源市
|
||||
// map["0435"] = 2205 //通化市
|
||||
// map["0439"] = 2206 //白山市
|
||||
// map["0438"] = 2207 //松原市
|
||||
// map["0436"] = 2208 //白城市
|
||||
// map["1433"] = 2224 //延边朝鲜族自治州
|
||||
map["0434"] = 2203 //四平市
|
||||
map["0437"] = 2204 //辽源市
|
||||
map["0435"] = 2205 //通化市
|
||||
map["0439"] = 2206 //白山市
|
||||
map["0438"] = 2207 //松原市
|
||||
map["0436"] = 2208 //白城市
|
||||
map["1433"] = 2224 //延边朝鲜族自治州
|
||||
|
||||
//黑龙江
|
||||
map["0451"] = 2301 //哈尔滨市
|
||||
// map["0452"] = 2302 //齐齐哈尔市
|
||||
// map["0467"] = 2303 //鸡西市
|
||||
// map["0468"] = 2304 //鹤岗市
|
||||
// map["0469"] = 2305 //双鸭山市
|
||||
// map["0459"] = 2306 //大庆市
|
||||
// map["0458"] = 2307 //伊春市
|
||||
// map["0454"] = 2308 //佳木斯市
|
||||
// map["0464"] = 2309 //七台河市
|
||||
// map["0453"] = 2310 //牡丹江市
|
||||
// map["0456"] = 2311 //黑河市
|
||||
// map["0455"] = 2312 //绥化市
|
||||
// map["0457"] = 2327 //大兴安岭地区
|
||||
map["0452"] = 2302 //齐齐哈尔市
|
||||
map["0467"] = 2303 //鸡西市
|
||||
map["0468"] = 2304 //鹤岗市
|
||||
map["0469"] = 2305 //双鸭山市
|
||||
map["0459"] = 2306 //大庆市
|
||||
map["0458"] = 2307 //伊春市
|
||||
map["0454"] = 2308 //佳木斯市
|
||||
map["0464"] = 2309 //七台河市
|
||||
map["0453"] = 2310 //牡丹江市
|
||||
map["0456"] = 2311 //黑河市
|
||||
map["0455"] = 2312 //绥化市
|
||||
map["0457"] = 2327 //大兴安岭地区
|
||||
|
||||
//江苏
|
||||
map["0510"] = 3202 //无锡市
|
||||
// map["0516"] = 3203 //徐州市
|
||||
// map["0519"] = 3204 //常州市
|
||||
map["0516"] = 3203 //徐州市
|
||||
map["0519"] = 3204 //常州市
|
||||
map["0512"] = 3205 //苏州市
|
||||
// map["0513"] = 3206 //南通市
|
||||
// map["0518"] = 3207 //连云港市
|
||||
// map["0517"] = 3208 //淮安市
|
||||
// map["0515"] = 3209 //盐城市
|
||||
// map["0514"] = 3210 //扬州市
|
||||
// map["0511"] = 3211 //镇江市
|
||||
// map["0523"] = 3212 //泰州市
|
||||
// map["0527"] = 3213 //宿迁市
|
||||
map["0513"] = 3206 //南通市
|
||||
map["0518"] = 3207 //连云港市
|
||||
map["0517"] = 3208 //淮安市
|
||||
map["0515"] = 3209 //盐城市
|
||||
map["0514"] = 3210 //扬州市
|
||||
map["0511"] = 3211 //镇江市
|
||||
map["0523"] = 3212 //泰州市
|
||||
map["0527"] = 3213 //宿迁市
|
||||
|
||||
//浙江
|
||||
// map["0571"] = 3301 //杭州市
|
||||
// map["0574"] = 3302 //宁波市
|
||||
// map["0577"] = 3303 //温州市
|
||||
map["0571"] = 3301 //杭州市
|
||||
map["0574"] = 3302 //宁波市
|
||||
map["0577"] = 3303 //温州市
|
||||
map["0573"] = 3304 //嘉兴市
|
||||
map["0572"] = 3305 //湖州市
|
||||
// map["0575"] = 3306 //绍兴市
|
||||
// map["0579"] = 3307 //金华市
|
||||
// map["0570"] = 3308 //衢州市
|
||||
// map["0580"] = 3309 //舟山市
|
||||
// map["0576"] = 3310 //台州市
|
||||
// map["0578"] = 3311 //丽水市
|
||||
map["0575"] = 3306 //绍兴市
|
||||
map["0579"] = 3307 //金华市
|
||||
map["0570"] = 3308 //衢州市
|
||||
map["0580"] = 3309 //舟山市
|
||||
map["0576"] = 3310 //台州市
|
||||
map["0578"] = 3311 //丽水市
|
||||
|
||||
//安徽
|
||||
map["0551"] = 3401 //合肥市
|
||||
// map["0553"] = 3402 //芜湖市
|
||||
// map["0552"] = 3403 //蚌埠市
|
||||
// map["0554"] = 3404 //淮南市
|
||||
// map["0555"] = 3405 //马鞍山市
|
||||
// map["0561"] = 3406 //淮北市
|
||||
// map["0562"] = 3407 //铜陵市
|
||||
// map["0556"] = 3408 //安庆市
|
||||
// map["0559"] = 3410 //黄山市
|
||||
// map["0550"] = 3411 //滁州市
|
||||
// map["1558"] = 3412 //阜阳市
|
||||
// map["0557"] = 3413 //宿州市
|
||||
// map["0564"] = 3415 //六安市
|
||||
// map["0558"] = 3416 //亳州市
|
||||
// map["0566"] = 3417 //池州市
|
||||
// map["0563"] = 3418 //宣城市
|
||||
map["0553"] = 3402 //芜湖市
|
||||
map["0552"] = 3403 //蚌埠市
|
||||
map["0554"] = 3404 //淮南市
|
||||
map["0555"] = 3405 //马鞍山市
|
||||
map["0561"] = 3406 //淮北市
|
||||
map["0562"] = 3407 //铜陵市
|
||||
map["0556"] = 3408 //安庆市
|
||||
map["0559"] = 3410 //黄山市
|
||||
map["0550"] = 3411 //滁州市
|
||||
map["1558"] = 3412 //阜阳市
|
||||
map["0557"] = 3413 //宿州市
|
||||
map["0564"] = 3415 //六安市
|
||||
map["0558"] = 3416 //亳州市
|
||||
map["0566"] = 3417 //池州市
|
||||
map["0563"] = 3418 //宣城市
|
||||
|
||||
//福建
|
||||
map["0591"] = 3501 //福州市
|
||||
map["0592"] = 3502 //厦门市
|
||||
// map["0594"] = 3503 //莆田市
|
||||
// map["0598"] = 3504 //三明市
|
||||
// map["0595"] = 3505 //泉州市
|
||||
// map["0596"] = 3506 //漳州市
|
||||
// map["0599"] = 3507 //南平市
|
||||
// map["0597"] = 3508 //龙岩市
|
||||
// map["0593"] = 3509 //宁德市
|
||||
map["0594"] = 3503 //莆田市
|
||||
map["0598"] = 3504 //三明市
|
||||
map["0595"] = 3505 //泉州市
|
||||
map["0596"] = 3506 //漳州市
|
||||
map["0599"] = 3507 //南平市
|
||||
map["0597"] = 3508 //龙岩市
|
||||
map["0593"] = 3509 //宁德市
|
||||
|
||||
//江西
|
||||
map["0791"] = 3601 //南昌市
|
||||
// map["0798"] = 3602 //景德镇市
|
||||
// map["0799"] = 3603 //萍乡市
|
||||
// map["0792"] = 3604 //九江市
|
||||
// map["0790"] = 3605 //新余市
|
||||
// map["0701"] = 3606 //鹰潭市
|
||||
// map["0797"] = 3607 //赣州市
|
||||
// map["0796"] = 3608 //吉安市
|
||||
// map["0795"] = 3609 //宜春市
|
||||
// map["0794"] = 3610 //抚州市
|
||||
// map["0793"] = 3611 //上饶市
|
||||
map["0798"] = 3602 //景德镇市
|
||||
map["0799"] = 3603 //萍乡市
|
||||
map["0792"] = 3604 //九江市
|
||||
map["0790"] = 3605 //新余市
|
||||
map["0701"] = 3606 //鹰潭市
|
||||
map["0797"] = 3607 //赣州市
|
||||
map["0796"] = 3608 //吉安市
|
||||
map["0795"] = 3609 //宜春市
|
||||
map["0794"] = 3610 //抚州市
|
||||
map["0793"] = 3611 //上饶市
|
||||
|
||||
//山东
|
||||
map["0531"] = 3701 //济南市
|
||||
// map["0532"] = 3702 //青岛市
|
||||
// map["0533"] = 3703 //淄博市
|
||||
// map["0632"] = 3704 //枣庄市
|
||||
// map["0546"] = 3705 //东营市
|
||||
map["0532"] = 3702 //青岛市
|
||||
map["0533"] = 3703 //淄博市
|
||||
map["0632"] = 3704 //枣庄市
|
||||
map["0546"] = 3705 //东营市
|
||||
map["0535"] = 3706 //烟台市
|
||||
// map["0536"] = 3707 //潍坊市
|
||||
// map["0537"] = 3708 //济宁市
|
||||
// map["0538"] = 3709 //泰安市
|
||||
// map["0631"] = 3710 //威海市
|
||||
// map["0633"] = 3711 //日照市
|
||||
// map["0539"] = 3713 //临沂市
|
||||
// map["0534"] = 3714 //德州市
|
||||
// map["0635"] = 3715 //聊城市
|
||||
// map["0543"] = 3716 //滨州市
|
||||
// map["0530"] = 3717 //菏泽市
|
||||
map["0536"] = 3707 //潍坊市
|
||||
map["0537"] = 3708 //济宁市
|
||||
map["0538"] = 3709 //泰安市
|
||||
map["0631"] = 3710 //威海市
|
||||
map["0633"] = 3711 //日照市
|
||||
map["0539"] = 3713 //临沂市
|
||||
map["0534"] = 3714 //德州市
|
||||
map["0635"] = 3715 //聊城市
|
||||
map["0543"] = 3716 //滨州市
|
||||
map["0530"] = 3717 //菏泽市
|
||||
|
||||
//河南
|
||||
map["0371"] = 4101 //郑州市
|
||||
// map["0378"] = 4102 //开封市
|
||||
// map["0379"] = 4103 //洛阳市
|
||||
// map["0375"] = 4104 //平顶山市
|
||||
// map["0372"] = 4105 //安阳市
|
||||
map["0378"] = 4102 //开封市
|
||||
map["0379"] = 4103 //洛阳市
|
||||
map["0375"] = 4104 //平顶山市
|
||||
map["0372"] = 4105 //安阳市
|
||||
map["0392"] = 4106 //鹤壁市
|
||||
// map["0373"] = 4107 //新乡市
|
||||
// map["0391"] = 4108 //焦作市
|
||||
// map["0393"] = 4109 //濮阳市
|
||||
// map["0374"] = 4110 //许昌市
|
||||
// map["0395"] = 4111 //漯河市
|
||||
map["0373"] = 4107 //新乡市
|
||||
map["0391"] = 4108 //焦作市
|
||||
map["0393"] = 4109 //濮阳市
|
||||
map["0374"] = 4110 //许昌市
|
||||
map["0395"] = 4111 //漯河市
|
||||
map["0398"] = 4112 //三门峡市
|
||||
// map["0377"] = 4113 //南阳市
|
||||
// map["0370"] = 4114 //商丘市
|
||||
// map["0376"] = 4115 //信阳市
|
||||
// map["0394"] = 4116 //周口市
|
||||
// map["0396"] = 4117 //驻马店市
|
||||
map["0377"] = 4113 //南阳市
|
||||
map["0370"] = 4114 //商丘市
|
||||
map["0376"] = 4115 //信阳市
|
||||
map["0394"] = 4116 //周口市
|
||||
map["0396"] = 4117 //驻马店市
|
||||
|
||||
//湖北
|
||||
// map["0714"] = 4202 //黄石市
|
||||
map["0714"] = 4202 //黄石市
|
||||
map["0719"] = 4203 //十堰市
|
||||
// map["0717"] = 4205 //宜昌市
|
||||
// map["0710"] = 4206 //襄阳市
|
||||
map["0717"] = 4205 //宜昌市
|
||||
map["0710"] = 4206 //襄阳市
|
||||
map["0711"] = 4207 //鄂州市
|
||||
// map["0724"] = 4208 //荆门市
|
||||
// map["0712"] = 4209 //孝感市
|
||||
// map["0716"] = 4210 //荆州市
|
||||
// map["0713"] = 4211 //黄冈市
|
||||
// map["0715"] = 4212 //咸宁市
|
||||
// map["0722"] = 4213 //随州市
|
||||
// map["0718"] = 4228 //恩施土家族苗族自治州
|
||||
map["0724"] = 4208 //荆门市
|
||||
map["0712"] = 4209 //孝感市
|
||||
map["0716"] = 4210 //荆州市
|
||||
map["0713"] = 4211 //黄冈市
|
||||
map["0715"] = 4212 //咸宁市
|
||||
map["0722"] = 4213 //随州市
|
||||
map["0718"] = 4228 //恩施土家族苗族自治州
|
||||
|
||||
//湖南
|
||||
map["0731"] = 4301 //长沙市
|
||||
map["0733"] = 4302 //株洲市
|
||||
// map["0732"] = 4303 //湘潭市
|
||||
map["0732"] = 4303 //湘潭市
|
||||
map["0734"] = 4304 //衡阳市
|
||||
// map["0739"] = 4305 //邵阳市
|
||||
// map["0730"] = 4306 //岳阳市
|
||||
// map["0736"] = 4307 //常德市
|
||||
// map["0744"] = 4308 //张家界市
|
||||
// map["0737"] = 4309 //益阳市
|
||||
// map["0735"] = 4310 //郴州市
|
||||
// map["0746"] = 4311 //永州市
|
||||
// map["0745"] = 4312 //怀化市
|
||||
// map["0738"] = 4313 //娄底市
|
||||
// map["0743"] = 4331 //湘西土家族苗族自治州
|
||||
map["0739"] = 4305 //邵阳市
|
||||
map["0730"] = 4306 //岳阳市
|
||||
map["0736"] = 4307 //常德市
|
||||
map["0744"] = 4308 //张家界市
|
||||
map["0737"] = 4309 //益阳市
|
||||
map["0735"] = 4310 //郴州市
|
||||
map["0746"] = 4311 //永州市
|
||||
map["0745"] = 4312 //怀化市
|
||||
map["0738"] = 4313 //娄底市
|
||||
map["0743"] = 4331 //湘西土家族苗族自治州
|
||||
|
||||
//广东
|
||||
// map["0751"] = 4402 //韶关市
|
||||
map["0751"] = 4402 //韶关市
|
||||
map["0755"] = 4403 //深圳市
|
||||
// map["0756"] = 4404 //珠海市
|
||||
// map["0754"] = 4405 //汕头市
|
||||
// map["0757"] = 4406 //佛山市
|
||||
// map["0750"] = 4407 //江门市
|
||||
// map["0759"] = 4408 //湛江市
|
||||
// map["0668"] = 4409 //茂名市
|
||||
// map["0758"] = 4412 //肇庆市
|
||||
// map["0752"] = 4413 //惠州市
|
||||
// map["0753"] = 4414 //梅州市
|
||||
// map["0660"] = 4415 //汕尾市
|
||||
// map["0762"] = 4416 //河源市
|
||||
// map["0662"] = 4417 //阳江市
|
||||
// map["0763"] = 4418 //清远市
|
||||
// map["0769"] = 4419 //东莞市
|
||||
// map["0760"] = 4420 //中山市
|
||||
// map["0768"] = 4451 //潮州市
|
||||
// map["0663"] = 4452 //揭阳市
|
||||
// map["0766"] = 4453 //云浮市
|
||||
map["0756"] = 4404 //珠海市
|
||||
map["0754"] = 4405 //汕头市
|
||||
map["0757"] = 4406 //佛山市
|
||||
map["0750"] = 4407 //江门市
|
||||
map["0759"] = 4408 //湛江市
|
||||
map["0668"] = 4409 //茂名市
|
||||
map["0758"] = 4412 //肇庆市
|
||||
map["0752"] = 4413 //惠州市
|
||||
map["0753"] = 4414 //梅州市
|
||||
map["0660"] = 4415 //汕尾市
|
||||
map["0762"] = 4416 //河源市
|
||||
map["0662"] = 4417 //阳江市
|
||||
map["0763"] = 4418 //清远市
|
||||
map["0769"] = 4419 //东莞市
|
||||
map["0760"] = 4420 //中山市
|
||||
map["0768"] = 4451 //潮州市
|
||||
map["0663"] = 4452 //揭阳市
|
||||
map["0766"] = 4453 //云浮市
|
||||
|
||||
//广西
|
||||
map["0771"] = 4501 //南宁市
|
||||
map["0772"] = 4502 //柳州市
|
||||
// map["0773"] = 4503 //桂林市
|
||||
// map["0774"] = 4504 //梧州市
|
||||
// map["0779"] = 4505 //北海市
|
||||
// map["0770"] = 4506 //防城港市
|
||||
// map["0777"] = 4507 //钦州市
|
||||
// map["1755"] = 4508 //贵港市
|
||||
// map["0775"] = 4509 //玉林市
|
||||
// map["0776"] = 4510 //百色市
|
||||
// map["1774"] = 4511 //贺州市
|
||||
// map["0778"] = 4512 //河池市
|
||||
// map["1772"] = 4513 //来宾市
|
||||
// map["1771"] = 4514 //崇左市
|
||||
map["0773"] = 4503 //桂林市
|
||||
map["0774"] = 4504 //梧州市
|
||||
map["0779"] = 4505 //北海市
|
||||
map["0770"] = 4506 //防城港市
|
||||
map["0777"] = 4507 //钦州市
|
||||
map["1755"] = 4508 //贵港市
|
||||
map["0775"] = 4509 //玉林市
|
||||
map["0776"] = 4510 //百色市
|
||||
map["1774"] = 4511 //贺州市
|
||||
map["0778"] = 4512 //河池市
|
||||
map["1772"] = 4513 //来宾市
|
||||
map["1771"] = 4514 //崇左市
|
||||
|
||||
//海南
|
||||
map["0898"] = 4601 //海口市
|
||||
map["0899"] = 4602 //三亚市
|
||||
// map["2898"] = 4603 //三沙市
|
||||
// map["0805"] = 4604 //儋州市
|
||||
map["2898"] = 4603 //三沙市
|
||||
map["0805"] = 4604 //儋州市
|
||||
|
||||
//四川
|
||||
// map["0813"] = 5103 //自贡市
|
||||
// map["0812"] = 5104 //攀枝花市
|
||||
// map["0830"] = 5105 //泸州市
|
||||
// map["0838"] = 5106 //德阳市
|
||||
// map["0816"] = 5107 //绵阳市
|
||||
// map["0839"] = 5108 //广元市
|
||||
// map["0825"] = 5109 //遂宁市
|
||||
// map["1832"] = 5110 //内江市
|
||||
// map["0833"] = 5111 //乐山市
|
||||
// map["0817"] = 5113 //南充市
|
||||
// map["1833"] = 5114 //眉山市
|
||||
map["0813"] = 5103 //自贡市
|
||||
map["0812"] = 5104 //攀枝花市
|
||||
map["0830"] = 5105 //泸州市
|
||||
map["0838"] = 5106 //德阳市
|
||||
map["0816"] = 5107 //绵阳市
|
||||
map["0839"] = 5108 //广元市
|
||||
map["0825"] = 5109 //遂宁市
|
||||
map["1832"] = 5110 //内江市
|
||||
map["0833"] = 5111 //乐山市
|
||||
map["0817"] = 5113 //南充市
|
||||
map["1833"] = 5114 //眉山市
|
||||
map["0831"] = 5115 //宜宾市
|
||||
// map["0826"] = 5116 //广安市
|
||||
// map["0818"] = 5117 //达州市
|
||||
// map["0835"] = 5118 //雅安市
|
||||
// map["0827"] = 5119 //巴中市
|
||||
// map["0832"] = 5120 //资阳市
|
||||
// map["0837"] = 5132 //阿坝藏族羌族自治州
|
||||
// map["0836"] = 5133 //甘孜藏族自治州
|
||||
// map["0834"] = 5134 //凉山彝族自治州
|
||||
map["0826"] = 5116 //广安市
|
||||
map["0818"] = 5117 //达州市
|
||||
map["0835"] = 5118 //雅安市
|
||||
map["0827"] = 5119 //巴中市
|
||||
map["0832"] = 5120 //资阳市
|
||||
map["0837"] = 5132 //阿坝藏族羌族自治州
|
||||
map["0836"] = 5133 //甘孜藏族自治州
|
||||
map["0834"] = 5134 //凉山彝族自治州
|
||||
|
||||
//贵州
|
||||
map["0851"] = 5201 //贵阳市
|
||||
// map["0858"] = 5202 //六盘水市
|
||||
// map["0852"] = 5203 //遵义市
|
||||
// map["0853"] = 5204 //安顺市
|
||||
// map["0857"] = 5205 //毕节市
|
||||
// map["0856"] = 5206 //铜仁市
|
||||
// map["0859"] = 5223 //黔西南布依族苗族自治州
|
||||
// map["0855"] = 5226 //黔东南苗族侗族自治州
|
||||
// map["0854"] = 5227 //黔南布依族苗族自治州
|
||||
map["0858"] = 5202 //六盘水市
|
||||
map["0852"] = 5203 //遵义市
|
||||
map["0853"] = 5204 //安顺市
|
||||
map["0857"] = 5205 //毕节市
|
||||
map["0856"] = 5206 //铜仁市
|
||||
map["0859"] = 5223 //黔西南布依族苗族自治州
|
||||
map["0855"] = 5226 //黔东南苗族侗族自治州
|
||||
map["0854"] = 5227 //黔南布依族苗族自治州
|
||||
|
||||
//云南
|
||||
// map["0871"] = 5301 //昆明市
|
||||
// map["0874"] = 5303 //曲靖市
|
||||
// map["0877"] = 5304 //玉溪市
|
||||
// map["0875"] = 5305 //保山市
|
||||
// map["0870"] = 5306 //昭通市
|
||||
// map["0888"] = 5307 //丽江市
|
||||
// map["0879"] = 5308 //普洱市
|
||||
// map["0883"] = 5309 //临沧市
|
||||
// map["0878"] = 5323 //楚雄彝族自治州
|
||||
// map["0873"] = 5325 //红河哈尼族彝族自治州
|
||||
// map["0876"] = 5326 //文山壮族苗族自治州
|
||||
// map["0691"] = 5328 //西双版纳傣族自治州
|
||||
map["0871"] = 5301 //昆明市
|
||||
map["0874"] = 5303 //曲靖市
|
||||
map["0877"] = 5304 //玉溪市
|
||||
map["0875"] = 5305 //保山市
|
||||
map["0870"] = 5306 //昭通市
|
||||
map["0888"] = 5307 //丽江市
|
||||
map["0879"] = 5308 //普洱市
|
||||
map["0883"] = 5309 //临沧市
|
||||
map["0878"] = 5323 //楚雄彝族自治州
|
||||
map["0873"] = 5325 //红河哈尼族彝族自治州
|
||||
map["0876"] = 5326 //文山壮族苗族自治州
|
||||
map["0691"] = 5328 //西双版纳傣族自治州
|
||||
map["0872"] = 5329 //大理白族自治州
|
||||
// map["0692"] = 5331 //德宏傣族景颇族自治州
|
||||
// map["0886"] = 5333 //怒江傈僳族自治州
|
||||
// map["0887"] = 5334 //迪庆藏族自治州
|
||||
map["0692"] = 5331 //德宏傣族景颇族自治州
|
||||
map["0886"] = 5333 //怒江傈僳族自治州
|
||||
map["0887"] = 5334 //迪庆藏族自治州
|
||||
|
||||
//陕西
|
||||
// map["0919"] = 6102 //铜川市
|
||||
// map["0917"] = 6103 //宝鸡市
|
||||
// map["0910"] = 6104 //咸阳市
|
||||
// map["0913"] = 6105 //渭南市
|
||||
// map["0911"] = 6106 //延安市
|
||||
// map["0916"] = 6107 //汉中市
|
||||
// map["0912"] = 6108 //榆林市
|
||||
// map["0915"] = 6109 //安康市
|
||||
// map["0914"] = 6110 //商洛市
|
||||
map["0919"] = 6102 //铜川市
|
||||
map["0917"] = 6103 //宝鸡市
|
||||
map["0910"] = 6104 //咸阳市
|
||||
map["0913"] = 6105 //渭南市
|
||||
map["0911"] = 6106 //延安市
|
||||
map["0916"] = 6107 //汉中市
|
||||
map["0912"] = 6108 //榆林市
|
||||
map["0915"] = 6109 //安康市
|
||||
map["0914"] = 6110 //商洛市
|
||||
|
||||
//甘肃
|
||||
map["0931"] = 6201 //兰州市
|
||||
// map["1937"] = 6202 //嘉峪关市
|
||||
// map["0935"] = 6203 //金昌市
|
||||
// map["0943"] = 6204 //白银市
|
||||
// map["0938"] = 6205 //天水市
|
||||
// map["1935"] = 6206 //武威市
|
||||
// map["0936"] = 6207 //张掖市
|
||||
// map["0933"] = 6208 //平凉市
|
||||
// map["0937"] = 6209 //酒泉市
|
||||
// map["0934"] = 6210 //庆阳市
|
||||
// map["0932"] = 6211 //定西市
|
||||
// map["2935"] = 6212 //陇南市
|
||||
// map["0930"] = 6229 //临夏回族自治州
|
||||
// map["0941"] = 6230 //甘南藏族自治州
|
||||
map["1937"] = 6202 //嘉峪关市
|
||||
map["0935"] = 6203 //金昌市
|
||||
map["0943"] = 6204 //白银市
|
||||
map["0938"] = 6205 //天水市
|
||||
map["1935"] = 6206 //武威市
|
||||
map["0936"] = 6207 //张掖市
|
||||
map["0933"] = 6208 //平凉市
|
||||
map["0937"] = 6209 //酒泉市
|
||||
map["0934"] = 6210 //庆阳市
|
||||
map["0932"] = 6211 //定西市
|
||||
map["2935"] = 6212 //陇南市
|
||||
map["0930"] = 6229 //临夏回族自治州
|
||||
map["0941"] = 6230 //甘南藏族自治州
|
||||
|
||||
//青海
|
||||
map["0971"] = 6301 //西宁市
|
||||
map["0974"] = 6325 //海南藏族自治州
|
||||
// map["0972"] = 6302 //海东市
|
||||
map["0972"] = 6302 //海东市
|
||||
|
||||
//宁夏
|
||||
map["0951"] = 6401 //银川市
|
||||
// map["0952"] = 6402 //石嘴山市
|
||||
// map["0953"] = 6403 //吴忠市
|
||||
// map["0954"] = 6404 //固原市
|
||||
// map["1953"] = 6405 //中卫市
|
||||
map["0952"] = 6402 //石嘴山市
|
||||
map["0953"] = 6403 //吴忠市
|
||||
map["0954"] = 6404 //固原市
|
||||
map["1953"] = 6405 //中卫市
|
||||
|
||||
//新疆
|
||||
// map["0991"] = 6501 //乌鲁木齐市
|
||||
// map["0990"] = 6502 //克拉玛依市
|
||||
// map["0995"] = 6504 //吐鲁番地区
|
||||
// map["0902"] = 6505 //哈密地区
|
||||
map["0991"] = 6501 //乌鲁木齐市
|
||||
map["0990"] = 6502 //克拉玛依市
|
||||
map["0995"] = 6504 //吐鲁番地区
|
||||
map["0902"] = 6505 //哈密地区
|
||||
|
||||
map
|
||||
}
|
||||
|
||||