Merge branch 'dev_robotaxi-d_240912_6.7.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_240912_6.7.0

This commit is contained in:
xinfengkun
2024-09-18 16:30:46 +08:00
61 changed files with 260 additions and 909 deletions

View File

@@ -4,6 +4,8 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
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
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
@@ -18,9 +20,9 @@ class BoneTabLayout @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr) {
) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxEventListener {
companion object{
companion object {
private const val TAG = "BoneTabLayout"
}
@@ -42,13 +44,23 @@ class BoneTabLayout @JvmOverloads constructor(
}
}
private var logOut:(() -> Unit)? = null
private var logOut: (() -> Unit)? = null
init {
LayoutInflater.from(context).inflate(R.layout.view_bone_tab, this, true)
initView()
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
CallerMsgBoxEventListenerManager.addListener(TAG, this)
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
CallerMsgBoxEventListenerManager.removeListener(TAG)
}
private fun initView() {
tabSwitchCarInfo.setOnClickListener {
updateTabType(TabType.CAR_INFO)
@@ -69,15 +81,15 @@ class BoneTabLayout @JvmOverloads constructor(
}
fun setCarNo(carNo: String){
fun setCarNo(carNo: String) {
carInfoTabView.setCarNo(carNo)
}
fun setLoginInfo(loginNo: String){
fun setLoginInfo(loginNo: String) {
carInfoTabView.setLoginInfo(loginNo)
}
fun loginOut(logOut:(() -> Unit)){
fun loginOut(logOut: (() -> Unit)) {
this.logOut = logOut
}
@@ -100,7 +112,7 @@ class BoneTabLayout @JvmOverloads constructor(
TabType.MSG_INFO -> {
tabSwitchMsgBox.switchTab(check)
if (check) {
tabSwitchMsgBox.updateNotice(false)
} else {
}
@@ -128,4 +140,8 @@ class BoneTabLayout @JvmOverloads constructor(
}
}
override fun onUpdateTipEvent(isShow: Boolean) {
super.onUpdateTipEvent(isShow)
tabSwitchMsgBox.updateNotice(isShow)
}
}

View File

@@ -9,6 +9,7 @@ import com.mogo.eagle.core.function.hmi.R
import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabClick
import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabClickBg
import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabDefault
import kotlinx.android.synthetic.main.view_tab_switch.view.vTabNotice
class TabSwitchView @JvmOverloads constructor(
context: Context,
@@ -55,4 +56,8 @@ class TabSwitchView @JvmOverloads constructor(
}
}
fun updateNotice(check: Boolean) {
vTabNotice.visibility = if (check) View.VISIBLE else View.GONE
}
}

View File

@@ -60,7 +60,7 @@ class FSMStatusDetailView @JvmOverloads constructor(
val c = Color.parseColor("#FF4E41")
tvTitle?.setTextColor(c)
}
addFsmMsgItemView(msgArray)
addFsmMsgItemView(msgArray, true)
//监听最新 FSM 状态
StatusManager.addListener(TAG, this)
@@ -69,16 +69,16 @@ class FSMStatusDetailView @JvmOverloads constructor(
private fun setFsmNormalStatus() {
tvTitle?.text = "FSM正常"
runCatching {
val c = Color.parseColor("#2EACFF")
val c = Color.parseColor("#26C14F")
tvTitle?.setTextColor(c)
}
removeFsmMsgItemView()
addFsmMsgItemView(ArrayList<String>().also { it += "FSM异常状态已恢复" }, false)
}
private fun setFsmUnknownStatus() {
tvTitle?.text = "FSM状态未知"
runCatching {
val c = Color.parseColor("#FFFFFF")
val c = Color.parseColor("#FFCD3D")
tvTitle?.setTextColor(c)
}
removeFsmMsgItemView()
@@ -93,7 +93,7 @@ class FSMStatusDetailView @JvmOverloads constructor(
removeFsmMsgItemView()
}
private fun addFsmMsgItemView(msgArray: ArrayList<String>) {
private fun addFsmMsgItemView(msgArray: ArrayList<String>, isError: Boolean) {
if (llFsmMsgContainerLayout == null) {
Logger.e(TAG, "addFsmMsmItemView llFsmMsgContainerLayout is null")
return
@@ -104,6 +104,7 @@ class FSMStatusDetailView @JvmOverloads constructor(
val itemView: View = LayoutInflater.from(context)
.inflate(R.layout.view_status_fsm_item_layout, llFsmMsgContainerLayout, false)
val leftImageView: ImageView = itemView.findViewById(R.id.leftImageView)
leftImageView.setImageResource(if (isError) R.drawable.icon_fsm_error_red_arrow else R.drawable.icon_fsm_error_green_arrow)
val rightTextView: TextView = itemView.findViewById(R.id.rightTextView)
rightTextView.text = it
llFsmMsgContainerLayout?.addView(itemView)

View File

@@ -26,13 +26,10 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
private const val TAG = "OfflineMapDialog"
}
private var roundRootLayout: ConstraintLayout? = null
private var offlineTitleView: TextView? = null
private var leftView: TextView? = null
private var rightView: TextView? = null
private var okView: TextView? = null
private var vertLineView: View? = null
private var horizontalLineView: View? = null
private var cacheTipView: TextView? = null
private var progressBar: ProgressBar? = null
@@ -48,22 +45,18 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
init {
setContentView(R.layout.dialog_offline_map)
setCanceledOnTouchOutside(true)
initView()
}
private fun initView() {
roundRootLayout = findViewById(R.id.roundRootLayout)
offlineTitleView = findViewById(R.id.tv_cache_title)
progressBar = findViewById(R.id.progressBar)
downloadPercentView = findViewById(R.id.tvDownloadProgress)
leftView = findViewById(R.id.tv_cache_confirm)
rightView = findViewById(R.id.tv_cache_cancel)
okView = findViewById(R.id.tv_cache_ok)
vertLineView = findViewById(R.id.view_vertical_line)
horizontalLineView = findViewById(R.id.view_horizontal_line)
cacheTipView = findViewById(R.id.tv_cache_tips)
downloadResultImg = findViewById(R.id.iv_download_Status)
downloadResultImg = findViewById(R.id.ivDownLoadStatus)
leftView?.setOnClickListener {
when {
@@ -142,20 +135,13 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
}
private fun change2NewStyle() {
roundRootLayout?.layoutParams?.width = AutoSizeUtils.dp2px(context, 1110f)
roundRootLayout?.layoutParams?.height = AutoSizeUtils.dp2px(context, 668f)
val titleParams = offlineTitleView?.layoutParams as ConstraintLayout.LayoutParams
titleParams.topMargin = AutoSizeUtils.dp2px(context, 51f)
val horizontalLineParams = horizontalLineView?.layoutParams as ConstraintLayout.LayoutParams
horizontalLineParams.topMargin = AutoSizeUtils.dp2px(context, 374f)
titleParams.topMargin = AutoSizeUtils.dp2px(context, 52f)
progressBar?.visibility = View.VISIBLE
downloadPercentView?.visibility = View.VISIBLE
okView?.visibility = View.VISIBLE
vertLineView?.visibility = View.GONE
leftView?.visibility = View.GONE
rightView?.visibility = View.GONE
cacheTipView?.visibility = View.INVISIBLE
@@ -169,10 +155,8 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
isLoading -> {
okView?.text = context.resources.getString(R.string.cancel)
offlineTitleView?.text = context.resources.getString(R.string.offline_downloading)
downloadResultImg?.visibility = View.GONE
}
else -> {
downloadResultImg?.visibility = View.VISIBLE
when {
isSuccess -> {
okView?.visibility = View.VISIBLE
@@ -182,7 +166,7 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
progressBar?.visibility = View.GONE
downloadPercentView?.visibility = View.GONE
downloadResultImg?.background =
ContextCompat.getDrawable(context, R.drawable.download_success_icon)
ContextCompat.getDrawable(context, R.drawable.icon_map_cache_success)
hmiAction("$M_HMI$TAG", mapOf("cacheMap" to true))
}
else -> {
@@ -196,10 +180,9 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) {
leftView?.visibility = View.VISIBLE
leftView?.text = context.resources.getString(R.string.ok_tip)
rightView?.visibility = View.VISIBLE
vertLineView?.visibility = View.VISIBLE
rightView?.text = context.resources.getString(R.string.retry)
downloadResultImg?.background =
ContextCompat.getDrawable(context, R.drawable.download_fail_icon)
ContextCompat.getDrawable(context, R.drawable.icon_map_cache_failed)
hmiAction("$M_HMI$TAG", mapOf("cacheMap" to false))
}
}

View File

@@ -81,7 +81,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
// BIZ
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_FUNC_BIZ, "IMoGoNoticeProvider"));
// 后置 车聊聊IM
MogoModulePaths.addModuleFunctionServer(new MogoModule(ChatConsts.CHAT_PROVIDER_PATH, ChatConsts.CHAT_MODULE_NAME));
// MogoModulePaths.addModuleFunctionServer(new MogoModule(ChatConsts.CHAT_PROVIDER_PATH, ChatConsts.CHAT_MODULE_NAME));
// 司机身份专属
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
// 后置 地图数据收集模块

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 265 B

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#000000" />
<solid android:color="#B3000000" />
<corners android:radius="@dimen/dp_30" />
</shape>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/color_B3_000000"/>
<corners android:radius="@dimen/dp_30"/>
</shape>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:startColor="@color/color_3B3D44" android:endColor="@color/color_2E323A" android:angle="270"/>
<stroke android:color="@color/color_99_6C6C6C" android:width="@dimen/dp_2"/>
<corners android:radius="@dimen/dp_50"/>
</shape>

View File

@@ -3,18 +3,18 @@
android:shape="rectangle">
<gradient
android:angle="90"
android:angle="180"
android:endColor="#2E323A"
android:startColor="#3B3D44" />
<stroke
android:width="1dp"
android:width="2px"
android:color="#FFFFFF">
<shape>
<gradient
android:angle="90"
android:endColor="#6C6C6C"
android:startColor="#FFFFFF" />
android:endColor="#996C6C6C"
android:startColor="#40FFFFFF" />
</shape>
</stroke>

View File

@@ -2,121 +2,99 @@
<com.mogo.eagle.core.widget.RoundConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/roundRootLayout"
android:layout_width="840dp"
android:layout_height="488dp"
android:background="@color/dialog_bg_color_90_percent"
android:layout_width="@dimen/dp_900"
android:layout_height="@dimen/dp_620"
android:background="@drawable/bg_map_offline_cache"
app:roundLayoutRadius="32dp">
<ImageView
android:id="@+id/ivDownLoadStatus"
android:layout_width="@dimen/dp_140"
android:layout_height="@dimen/dp_140"
android:layout_marginTop="@dimen/dp_87"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:src="@drawable/icon_map_update"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_cache_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="66dp"
android:layout_marginTop="@dimen/dp_30"
android:text="@string/offline_map_cache_tip"
android:textColor="#FFFFFF"
android:textSize="56dp"
android:textColor="@color/white"
android:textSize="@dimen/dp_45"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/ivDownLoadStatus" />
<TextView
android:id="@+id/tv_cache_tips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="52dp"
android:layout_marginTop="@dimen/dp_10"
android:text="@string/cache_offline_map_content"
android:textColor="#FFFFFFFF"
android:textSize="43dp"
android:visibility="visible"
android:textColor="@color/white"
android:textSize="@dimen/dp_36"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="800dp"
android:layout_height="42dp"
style="?android:attr/progressBarStyleHorizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title"
android:layout_marginTop="113dp"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/progressbar_corner_bg"
android:visibility="gone"
/>
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title" />
<TextView
android:id="@+id/tvDownloadProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/progressBar"
android:layout_marginTop="50dp"
android:text="0%"
android:textColor="#06D1ED"
android:textSize="43dp"
android:visibility="gone"
/>
<ImageView
android:id="@+id/iv_download_Status"
android:layout_width="174dp"
android:layout_height="174dp"
android:layout_marginTop="96dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title"
android:visibility="gone"
/>
<View
android:id="@+id/view_horizontal_line"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="205dp"
android:background="#66B8BFE8"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cache_title" />
<View
android:id="@+id/view_vertical_line"
android:layout_width="2dp"
android:layout_height="0dp"
android:background="#66B8BFE8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_line" />
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/progressBar" />
<TextView
android:id="@+id/tv_cache_confirm"
android:layout_width="419dp"
android:layout_height="137dp"
android:layout_width="@dimen/dp_356"
android:layout_height="@dimen/dp_120"
android:gravity="center"
android:text="@string/confirm"
android:textColor="#FFFFFFFF"
android:textSize="46dp"
android:background="@drawable/bg_map_offline_btn"
android:textColor="@color/color_2EACFF"
android:textSize="@dimen/dp_40"
android:layout_marginStart="@dimen/dp_65"
android:layout_marginBottom="@dimen/dp_62"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/view_vertical_line"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_line" />
app:layout_constraintLeft_toLeftOf="parent" />
<TextView
android:id="@+id/tv_cache_cancel"
android:layout_width="419dp"
android:layout_height="137dp"
android:layout_width="@dimen/dp_356"
android:layout_height="@dimen/dp_120"
android:gravity="center"
android:text="@string/cancel"
android:textColor="#FFFFFFFF"
android:textSize="46dp"
android:textColor="@color/white"
android:textSize="@dimen/dp_40"
android:background="@drawable/bg_map_offline_btn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/view_vertical_line"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_line" />
android:layout_marginEnd="@dimen/dp_65"
android:layout_marginBottom="@dimen/dp_62"
app:layout_constraintRight_toRightOf="parent"/>
<TextView
android:id="@+id/tv_cache_ok"

View File

@@ -26,7 +26,6 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_960"
android:layout_height="@dimen/dp_216"
android:layout_marginBottom="@dimen/dp_8"
android:background="@drawable/bg_tab_switch"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginStart="@dimen/dp_20"

View File

@@ -4,13 +4,14 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:orientation="horizontal">
<ImageView
android:id="@+id/leftImageView"
android:layout_width="@dimen/dp_18"
android:layout_height="@dimen/dp_18"
android:layout_gravity="top"
android:layout_gravity="top|center_horizontal"
android:layout_marginTop="@dimen/dp_10"
android:src="@drawable/icon_fsm_error_red_arrow" />

View File

@@ -42,9 +42,12 @@
<View
android:id="@+id/vTabNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/dp_25"
android:layout_height="@dimen/dp_25"
android:background="@drawable/icon_red_notice"
app:layout_constraintLeft_toLeftOf="parent"
android:visibility="gone"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginStart="@dimen/dp_124"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -30,6 +30,9 @@
<color name="color_131415">#131415</color>
<color name="color_B2BED9">#B2BED9</color>
<color name="color_FF1943">#FF1943</color>
<color name="color_3B3D44">#3B3D44</color>
<color name="color_2E323A">#2E323A</color>
<color name="color_99_6C6C6C">#996C6C6C</color>
<color name="color_27FFFFFF">#27FFFFFF</color>
<color name="color_1E111111">#1E111111</color>
<color name="color_FF213757">#FF213757</color>