[6.10.0]FSM Status与美化模式的组合形式
This commit is contained in:
@@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||
import com.mogo.eagle.core.utilcode.util.SoundPoolUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.zhjt.mogo_core_function_devatools.status.StatusManager
|
||||
import com.zhjt.mogo_core_function_devatools.status.entity.AcceleratorStatus
|
||||
@@ -30,6 +31,7 @@ import com.zhjt.mogo_core_function_devatools.status.entity.IAutopilotBeforeLaunc
|
||||
import com.zhjt.mogo_core_function_devatools.status.entity.Status
|
||||
import com.zhjt.mogo_core_function_devatools.status.entity.SteerStatus
|
||||
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.fSMStatusLayout
|
||||
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.ivFsmDemoModeError
|
||||
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_accelerator
|
||||
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_brake
|
||||
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_double_flash
|
||||
@@ -68,7 +70,8 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
private val hasFSM by lazy { AtomicBoolean(true) }
|
||||
|
||||
//是否进行了语音提示(当开启美化模式后,若fsm输出自车处于安全停车状态中提示音提示一次)
|
||||
private var isAlreadyPrompted: Boolean = false
|
||||
|
||||
init {
|
||||
LayoutInflater.from(context).inflate(R.layout.view_start_autopilot_status, this, true)
|
||||
@@ -87,9 +90,11 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
|
||||
CallerLogger.i(TAG, "changeStatusContainer 切换展示,hasFSM=$hasFSMModule")
|
||||
if (hasFSMModule) {
|
||||
fSMStatusLayout?.visibility = View.VISIBLE
|
||||
ivFsmDemoModeError?.visibility = View.GONE
|
||||
withoutFSMStatusLayout?.visibility = View.GONE
|
||||
} else {
|
||||
fSMStatusLayout?.visibility = View.GONE
|
||||
ivFsmDemoModeError?.visibility = View.GONE
|
||||
withoutFSMStatusLayout?.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
@@ -104,11 +109,6 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
|
||||
}
|
||||
hasFSM.set(newHasFSM)
|
||||
|
||||
if (FunctionBuildConfig.isDemoMode && status.isException()) {
|
||||
// 美化模式下如果是异常的,修改成正常的
|
||||
status.state = FSMStateCode.ExistNormal
|
||||
}
|
||||
|
||||
when (status.state) {
|
||||
FSMStateCode.UnKnown -> {
|
||||
fSMStatusLayout?.setOnClickListener(null)
|
||||
@@ -118,6 +118,8 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
|
||||
R.drawable.icon_fsm_status_bg_unknown
|
||||
)
|
||||
)
|
||||
ivFsmDemoModeError?.visibility = View.GONE
|
||||
isAlreadyPrompted = false
|
||||
}
|
||||
|
||||
FSMStateCode.NotExist -> {
|
||||
@@ -128,6 +130,8 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
|
||||
R.drawable.icon_fsm_status_bg_unknown
|
||||
)
|
||||
)
|
||||
ivFsmDemoModeError?.visibility = View.GONE
|
||||
isAlreadyPrompted = false
|
||||
}
|
||||
|
||||
FSMStateCode.ExistNormal -> {
|
||||
@@ -138,18 +142,41 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
|
||||
R.drawable.icon_fsm_status_bg_normal
|
||||
)
|
||||
)
|
||||
ivFsmDemoModeError?.visibility = View.GONE
|
||||
isAlreadyPrompted = false
|
||||
}
|
||||
|
||||
FSMStateCode.ExistError -> {
|
||||
fSMStatusLayout?.onClick {
|
||||
CallerHmiManager.showFSMExceptionStatusWindow(status.descList)
|
||||
}
|
||||
fSMStatusLayout?.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.icon_fsm_status_bg_error
|
||||
if(FunctionBuildConfig.isDemoMode){
|
||||
fSMStatusLayout?.setOnClickListener(null)
|
||||
fSMStatusLayout?.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.icon_fsm_status_bg_normal
|
||||
)
|
||||
)
|
||||
)
|
||||
ivFsmDemoModeError?.visibility = View.VISIBLE
|
||||
if(!isAlreadyPrompted){
|
||||
try {
|
||||
SoundPoolUtils.getSoundPool().playSoundWithRedId(context,R.raw.weak_net_tips)
|
||||
}catch (e: Exception){
|
||||
e.printStackTrace()
|
||||
}
|
||||
isAlreadyPrompted = true
|
||||
}
|
||||
}else{
|
||||
fSMStatusLayout?.onClick {
|
||||
CallerHmiManager.showFSMExceptionStatusWindow(status.descList)
|
||||
}
|
||||
fSMStatusLayout?.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.icon_fsm_status_bg_error
|
||||
)
|
||||
)
|
||||
ivFsmDemoModeError?.visibility = View.GONE
|
||||
isAlreadyPrompted = false
|
||||
}
|
||||
}
|
||||
}
|
||||
notifyStatus(status.isException())
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
@@ -15,6 +15,19 @@
|
||||
android:visibility="visible"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivFsmDemoModeError"
|
||||
android:layout_width="@dimen/dp_30"
|
||||
android:layout_height="@dimen/dp_30"
|
||||
android:src="@drawable/icon_fsm_demo_mode_error"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginStart="@dimen/dp_19"
|
||||
android:layout_marginBottom="@dimen/dp_34"
|
||||
android:contentDescription="@string/fsm_demo_mode_error"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/withoutFSMStatusLayout"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -267,4 +267,6 @@
|
||||
<string name="ota_result_fail_tip">请联系管理员</string>
|
||||
<string name="ota_result_close">关闭</string>
|
||||
|
||||
<string name="fsm_demo_mode_error">FSM美化模式状态下异常标识</string>
|
||||
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user