[8.2.4][hmi][运营面板-车辆相关] 未连接域控时增加提示切不允许操作所有按钮
This commit is contained in:
@@ -1500,10 +1500,17 @@ class OperatePanelLayout : LinearLayout {
|
||||
}
|
||||
// CallerAutoPilotControlManager
|
||||
class VehiclesPreferenceFragmentCompat : OperatePanelDetailBase(), IMoGoAutopilotCarConfigListener,
|
||||
ISopSettingListener, IViewControlListener, IMoGoGetParamResponseListener{
|
||||
ISopSettingListener, IViewControlListener, IMoGoGetParamResponseListener, IMoGoAutopilotStatusListener{
|
||||
private var v2xIsShow: Boolean = false
|
||||
private var operatePaneIsShow = true
|
||||
private var prevIpcConnectStatus = false
|
||||
private var customToast: Toast? = null
|
||||
companion object {
|
||||
private const val TAG = "VehiclesPreferenceFragmentCompat"
|
||||
private const val IS_CHECKED_DRIVING_STYLE = "is_checked_driving_style"
|
||||
|
||||
private const val WHAT_UPDATE_ENABLE = 0x00//更新按钮状态
|
||||
|
||||
private const val KEY_PNC_PARK_INTERSECTION_CAR = "pnc_park_intersection_car"
|
||||
private const val KEY_PNC_PARK_OVERTAKE_CAR = "pnc_park_overtake_car"
|
||||
private const val KEY_DETOUR_RETARD_PARK = "detour_retard_park"
|
||||
@@ -1530,6 +1537,8 @@ class OperatePanelLayout : LinearLayout {
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
||||
Logger.d(TAG, "--- onCreateView --- 1 ---")
|
||||
prevIpcConnectStatus = AppConfigInfo.isConnectAutopilot
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerAutopilotGetParamResponseDispatcher.addListener(TAG, this)
|
||||
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
|
||||
CallerSopSettingManager.addListener(TAG, this)
|
||||
@@ -1565,9 +1574,136 @@ class OperatePanelLayout : LinearLayout {
|
||||
CallerAutopilotCarConfigListenerManager.removeListener(TAG)
|
||||
CallerSopSettingManager.removeListener(TAG)
|
||||
CallerHmiViewControlListenerManager.removeListener(TAG)
|
||||
CallerAutoPilotStatusListenerManager.removeListener(TAG)
|
||||
handler.removeCallbacksAndMessages(null)
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
override fun operatePanelDisplayStatus(isShow: Boolean) {
|
||||
super.operatePanelDisplayStatus(isShow)
|
||||
operatePaneIsShow = isShow
|
||||
if (isShow) {
|
||||
if (v2xIsShow) {
|
||||
handler.sendEmptyMessage(WHAT_UPDATE_ENABLE)
|
||||
}
|
||||
} else {
|
||||
handler.removeMessages(WHAT_UPDATE_ENABLE)
|
||||
customToast?.cancel()
|
||||
customToast = null
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
prevIpcConnectStatus = AppConfigInfo.isConnectAutopilot
|
||||
v2xIsShow = true
|
||||
if (operatePaneIsShow) {
|
||||
handler.sendEmptyMessage(WHAT_UPDATE_ENABLE)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
v2xIsShow = false
|
||||
handler.removeMessages(WHAT_UPDATE_ENABLE)
|
||||
customToast?.cancel()
|
||||
customToast = null
|
||||
}
|
||||
|
||||
private val handler = object : Handler(Looper.getMainLooper()) {
|
||||
override fun handleMessage(msg: Message) {
|
||||
super.handleMessage(msg)
|
||||
if (msg.what == WHAT_UPDATE_ENABLE) {
|
||||
if (this.hasMessages(WHAT_UPDATE_ENABLE)) {
|
||||
this.removeMessages(WHAT_UPDATE_ENABLE)
|
||||
}
|
||||
setEnableStatus(AppConfigInfo.isConnectAutopilot)
|
||||
if (AppConfigInfo.isConnectAutopilot) {
|
||||
customToast?.cancel()
|
||||
customToast = null
|
||||
} else {
|
||||
showConnectToast()
|
||||
this.sendEmptyMessageDelayed(WHAT_UPDATE_ENABLE, 5000)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun showConnectToast() {
|
||||
try {
|
||||
AppStateManager.currentActivity()?.let {
|
||||
val customToastView =
|
||||
it.layoutInflater.inflate(R.layout.view_ipc_connect_status_toast, null)
|
||||
customToast = Toast(MainMoGoApplication.getApp().applicationContext)
|
||||
customToast!!.duration = Toast.LENGTH_SHORT
|
||||
customToast!!.view = customToastView
|
||||
customToast!!.setGravity(
|
||||
Gravity.START,
|
||||
AutoSizeUtils.dp2px(MainMoGoApplication.getApp().applicationContext, 280f),
|
||||
0
|
||||
)
|
||||
customToast!!.show()
|
||||
}
|
||||
} catch (_: Exception) {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAutopilotIpcConnectStatusChanged(
|
||||
status: AdasConstants.IpcConnectionStatus,
|
||||
reason: String?
|
||||
) {
|
||||
if (prevIpcConnectStatus != AppConfigInfo.isConnectAutopilot) {
|
||||
if (operatePaneIsShow && v2xIsShow) {
|
||||
handler.sendEmptyMessage(WHAT_UPDATE_ENABLE)
|
||||
}
|
||||
}
|
||||
prevIpcConnectStatus = AppConfigInfo.isConnectAutopilot
|
||||
}
|
||||
|
||||
private fun setEnableStatus(isEnable: Boolean){
|
||||
if(preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_PNC_PARK_INTERSECTION_CAR)?.isEnabled == isEnable){
|
||||
return
|
||||
}
|
||||
//PNC-Park-会车
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_PNC_PARK_INTERSECTION_CAR)?.isEnabled = isEnable
|
||||
//PNC-Park-超车
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_PNC_PARK_OVERTAKE_CAR)?.isEnabled = isEnable
|
||||
//绕障减速停车
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_DETOUR_RETARD_PARK)?.isEnabled = isEnable
|
||||
//雨天模式
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_RAIN_DAY)?.isEnabled = isEnable
|
||||
//故障减速停车
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_FAULT_DECELERATION_PARK)?.isEnabled = isEnable
|
||||
//弱网减速停车
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_WEAK_NET_DECELERATION_PARK)?.isEnabled = isEnable
|
||||
//考试功能面板
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_EXAM_FUNCTION_PANEL)?.isEnabled = isEnable
|
||||
//融合模式 - 全融合模式
|
||||
preferenceScreen.findPreferenceReal<CheckBoxPreference>(KEY_ALL_MERGE_MODE)?.isEnabled = isEnable
|
||||
//融合模式 - 盲区模式
|
||||
preferenceScreen.findPreferenceReal<CheckBoxPreference>(KEY_BLIND_AREA_MODE)?.isEnabled = isEnable
|
||||
//融合模式 - 超视距模式
|
||||
preferenceScreen.findPreferenceReal<CheckBoxPreference>(KEY_BEYOND_VISUAL_RANGE_MODE)?.isEnabled = isEnable
|
||||
//融合模式 - 透传模式
|
||||
preferenceScreen.findPreferenceReal<CheckBoxPreference>(KEY_TRANSPARENT_TRANSFER_MODE)?.isEnabled = isEnable
|
||||
//融合模式 - 纯路侧模式
|
||||
preferenceScreen.findPreferenceReal<CheckBoxPreference>(KEY_PURE_OBU_MODE)?.isEnabled = isEnable
|
||||
//AIP功能
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_AIP_FUNCTION)?.isEnabled = isEnable
|
||||
//驾驶模式 - 正常模式
|
||||
preferenceScreen.findPreferenceReal<CheckBoxPreference>(KEY_DRIVING_STYLE_NORMAL)?.isEnabled = isEnable
|
||||
//驾驶模式 - 安全模式
|
||||
preferenceScreen.findPreferenceReal<CheckBoxPreference>(KEY_DRIVING_STYLE_SAFETY)?.isEnabled = isEnable
|
||||
//驾驶模式 - 专业模式
|
||||
preferenceScreen.findPreferenceReal<CheckBoxPreference>(KEY_DRIVING_STYLE_PROFESSIONAL)?.isEnabled = isEnable
|
||||
//自动驾驶速度阈值
|
||||
preferenceScreen.findPreferenceReal<PreferenceWithSpeedSetting>(KEY_AUTO_PILOT_SPEED_THRESHOLDS)?.isEnabled = isEnable
|
||||
//变道速度阈值
|
||||
preferenceScreen.findPreferenceReal<PreferenceWithSpeedSetting>(KEY_CHANGE_LANE_SPEED_THRESHOLDS)?.isEnabled = isEnable
|
||||
//超车速度阈值
|
||||
preferenceScreen.findPreferenceReal<PreferenceWithSpeedSetting>(KEY_OVERTAKE_SPEED_THRESHOLDSS)?.isEnabled = isEnable
|
||||
}
|
||||
|
||||
override fun updateFuncMode(tag: String, boolean: Boolean) {
|
||||
super.updateFuncMode(tag, boolean)
|
||||
if (tag == FUNC_MODE_RAIN) {
|
||||
|
||||
@@ -92,8 +92,10 @@ class PreferenceWithSpeedSetting : Preference {
|
||||
return@doAfterTextChanged
|
||||
}
|
||||
cur = temp
|
||||
btnOk.isEnabled = true
|
||||
ll.isSelected = true
|
||||
btnOk.isEnabled = isEnabled
|
||||
// btnOk.isEnabled = true
|
||||
ll.isSelected = isEnabled
|
||||
// ll.isSelected = true
|
||||
cache[key] = cur
|
||||
enabled[key] = true
|
||||
holder.itemView.isEnabled = false
|
||||
@@ -102,9 +104,16 @@ class PreferenceWithSpeedSetting : Preference {
|
||||
speedLimit?.text = cur.toString()
|
||||
}
|
||||
val minus = holder.findViewById(R.id.iv_speed_minus)
|
||||
btnOk.isEnabled = enabled[key] ?: false
|
||||
if (isEnabled) {
|
||||
btnOk.isEnabled = enabled[key] ?: false
|
||||
ll.isSelected = enabled[key] ?: false
|
||||
} else {
|
||||
btnOk.isEnabled = false
|
||||
ll.isSelected = false
|
||||
}
|
||||
// btnOk.isEnabled = enabled[key] ?: false
|
||||
holder.itemView.isEnabled = enabled[key] ?: false
|
||||
ll.isSelected = enabled[key] ?: false
|
||||
// ll.isSelected = enabled[key] ?: false
|
||||
minus.setOnClickListener(null)
|
||||
minus.onClickWidthDuration(100) {
|
||||
val minusAfter = cur - step
|
||||
@@ -113,8 +122,10 @@ class PreferenceWithSpeedSetting : Preference {
|
||||
return@onClickWidthDuration
|
||||
}
|
||||
cur = minusAfter
|
||||
btnOk.isEnabled = true
|
||||
ll.isSelected = true
|
||||
btnOk.isEnabled = isEnabled
|
||||
// btnOk.isEnabled = true
|
||||
ll.isSelected = isEnabled
|
||||
// ll.isSelected = true
|
||||
cache[key] = cur
|
||||
enabled[key] = true
|
||||
holder.itemView.isEnabled = false
|
||||
@@ -135,8 +146,10 @@ class PreferenceWithSpeedSetting : Preference {
|
||||
holder.itemView.isEnabled = false
|
||||
cur = addAfter
|
||||
cache[key] = cur
|
||||
ll.isSelected = true
|
||||
btnOk.isEnabled = true
|
||||
ll.isSelected = isEnabled
|
||||
// ll.isSelected = true
|
||||
btnOk.isEnabled = isEnabled
|
||||
// btnOk.isEnabled = true
|
||||
enabled[key] = true
|
||||
if (speedLimit is EditText) {
|
||||
speedLimit.setText(addAfter.toString())
|
||||
|
||||
Reference in New Issue
Block a user