[6.4.0][启自驾指引] 适配ui

This commit is contained in:
renwj
2024-04-17 18:22:21 +08:00
parent 26eb87434c
commit ca2ca9d039
19 changed files with 173 additions and 184 deletions

View File

@@ -74,7 +74,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
private FrameLayout flStationPanelContainer;
private BizMapView mapBizView;
private Group groupTestPanel;
private TrafficDataView mTrafficDataView;
// private TrafficDataView mTrafficDataView;
// private BusTrafficLightView mTrafficLightView;
//远景和中景的切换
@@ -526,15 +526,15 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
}
}
/**
* 迈速表实时更新
*/
public void updateSpeedView(float newSpeed) {
int speed = (int) (Math.abs(newSpeed) * 3.6F); // 倒车时工控机反馈定位信息中speed为负值
if (mTrafficDataView != null) {
mTrafficDataView.updateSpeedWithValue(speed);
}
}
// /**
// * 迈速表实时更新
// */
// public void updateSpeedView(float newSpeed) {
// int speed = (int) (Math.abs(newSpeed) * 3.6F); // 倒车时工控机反馈定位信息中speed为负值
// if (mTrafficDataView != null) {
// mTrafficDataView.updateSpeedWithValue(speed);
// }
// }
@Override
public void onDestroy() {

View File

@@ -201,9 +201,9 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void onCarLocationChanged(MogoLocation location) {
if (null != location) {
runOnUIThread(() -> mView.updateSpeedView((float) location.getGnssSpeed()));
}
// if (null != location) {
// runOnUIThread(() -> mView.updateSpeedView((float) location.getGnssSpeed()));
// }
}
@Override

View File

@@ -37,12 +37,9 @@
<!-- </FrameLayout>-->
<FrameLayout
android:id="@+id/fl_speed"
android:layout_width="@dimen/dp_560"
android:layout_height="@dimen/dp_200"
android:layout_marginLeft="@dimen/dp_39"
android:layout_marginTop="@dimen/dp_36"
android:elevation="@dimen/dp_10"
android:visibility="visible"
android:layout_width="@dimen/dp_624"
android:layout_height="@dimen/dp_269"
android:layout_marginStart="@dimen/dp_10"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"/>

View File

@@ -1,16 +1,17 @@
package com.magic.mogo.och.charter.base
import android.animation.ObjectAnimator
import android.annotation.SuppressLint
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.animation.LinearInterpolator
import android.widget.*
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.constraintlayout.widget.Group
import com.magic.mogo.och.charter.R
import com.magic.mogo.och.charter.constant.CharterConst
import com.magic.mogo.och.charter.view.SlidePanelView
import com.magic.mogo.och.charter.view.autopilot.AutopilotStatusView
import com.mogo.commons.mvp.IView
@@ -18,8 +19,8 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager.attachAutopilotBeforeLaunchView
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager.initAiCollect
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager.initBadCase
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showToolsView
@@ -27,20 +28,16 @@ import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxBubbleView
import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView
import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView.ClickListener
import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxListView
import com.mogo.eagle.core.function.hmi.ui.widget.TrafficDataView
import com.mogo.eagle.core.function.smp.view.SmallMapView
import com.mogo.eagle.core.function.view.MapBizView
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener
import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.map.listener.IMogoMapListener
import com.mogo.map.listener.MogoMapListenerHandler.Companion.mogoMapListenerHandler
import com.mogo.map.uicontroller.VisualAngleMode
import com.mogo.och.common.module.utils.SoundPoolHelper
import kotlinx.android.synthetic.main.charter_base_fragment.*
import kotlinx.android.synthetic.main.charter_base_fragment.module_mogo_och_arrived_tv
import org.greenrobot.eventbus.EventBus
import kotlin.math.abs
/**
* @author: wangmingjun
@@ -92,6 +89,13 @@ abstract class CharterBaseFragment<V : IView?, P : Presenter<V>?>() :
slidePanelView?.setText(resources.getString(R.string.charter_back_car))
slidePanelView?.setOnSlidePanelMoveToEndListener(onSlideToEndListener)
// mTrafficDataView = (TrafficDataView) findViewById(R.id.bus_arc);
val flSpeed = findViewById<FrameLayout>(R.id.fl_speed)
if (flSpeed != null) {
attachAutopilotBeforeLaunchView(flSpeed.context, flSpeed)
}
LayoutInflater.from(context).inflate(getStationPanelViewId(), flStationPanelContainer)
mSwitchMapModeLayout = findViewById(R.id.bus_switch_model_layout)
mSwitchMapModeImage = findViewById(R.id.bus_switch_model_icon)

View File

@@ -31,16 +31,12 @@
<!--车速档位加速度-->
<FrameLayout
android:id="@+id/fl_speed"
android:layout_width="@dimen/dp_560"
android:layout_height="@dimen/dp_200"
android:layout_marginLeft="@dimen/dp_39"
android:layout_marginTop="@dimen/dp_36"
android:elevation="@dimen/dp_10"
android:visibility="visible"
android:layout_width="@dimen/dp_624"
android:layout_height="@dimen/dp_269"
android:layout_marginStart="@dimen/dp_10"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<!--V2X预警红色边框-->
<com.mogo.eagle.core.function.hmi.ui.widget.V2XWarningView
android:layout_width="match_parent"

View File

@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/module_och_bus_order_status_stationInfo"
android:layout_width="@dimen/dp_618"
android:layout_width="@dimen/dp_624"
android:layout_height="wrap_content"
android:minHeight="@dimen/dp_754"
android:background="@drawable/charter_line_panel_bg"

View File

@@ -536,17 +536,17 @@ public abstract class BaseShuttleTabFragment<V extends IView, P extends Presente
}
}
/**
* 迈速表实时更新
*
* @param newSpeed
*/
public void updateSpeedView(float newSpeed) {
int speed = (int) (Math.abs(newSpeed) * 3.6F); // 倒车时工控机反馈定位信息中speed为负值
if (mTrafficDataView != null) {
mTrafficDataView.updateSpeedWithValue(speed);
}
}
// /**
// * 迈速表实时更新
// *
// * @param newSpeed
// */
// public void updateSpeedView(float newSpeed) {
// int speed = (int) (Math.abs(newSpeed) * 3.6F); // 倒车时工控机反馈定位信息中speed为负值
// if (mTrafficDataView != null) {
// mTrafficDataView.updateSpeedWithValue(speed);
// }
// }
@Override
public void onDestroy() {

View File

@@ -195,9 +195,9 @@ public class BusPresenter extends Presenter<ShuttleFragment>
@Override
public void onCarLocationChanged(MogoLocation location) {
if (null != location) {
runOnUIThread(() -> mView.updateSpeedView(location.getGnssSpeed()));
}
// if (null != location) {
// runOnUIThread(() -> mView.updateSpeedView(location.getGnssSpeed()));
// }
}
@Override

View File

@@ -38,12 +38,9 @@
<FrameLayout
android:id="@+id/fl_speed"
android:layout_width="@dimen/dp_560"
android:layout_height="@dimen/dp_200"
android:layout_marginLeft="@dimen/dp_39"
android:layout_marginTop="@dimen/dp_36"
android:elevation="@dimen/dp_10"
android:visibility="visible"
android:layout_width="@dimen/dp_62"
android:layout_height="@dimen/dp_269"
android:layout_marginStart="@dimen/dp_10"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"/>

View File

@@ -23,13 +23,11 @@
<FrameLayout
android:id="@+id/taxi_speed_contain"
android:layout_width="@dimen/dp_560"
android:layout_height="@dimen/dp_200"
android:layout_marginLeft="@dimen/dp_39"
android:layout_marginTop="@dimen/dp_36"
android:elevation="@dimen/dp_10"
android:layout_width="@dimen/dp_624"
android:layout_height="@dimen/dp_269"
android:layout_marginStart="@dimen/dp_10"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"/>
<RelativeLayout
android:id="@+id/module_mogo_och_autopilot_status"

View File

@@ -31,54 +31,16 @@
<FrameLayout
android:id="@+id/module_mogo_och_speed_layout"
android:layout_width="@dimen/dp_560"
android:layout_height="@dimen/dp_200"
android:layout_marginLeft="@dimen/dp_39"
android:layout_marginTop="@dimen/dp_36"
android:elevation="@dimen/dp_10"
android:visibility="visible"
android:layout_width="@dimen/dp_624"
android:layout_height="@dimen/dp_269"
android:layout_marginStart="@dimen/dp_10"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/module_mogo_och_autopilot_status"/>
<!--<LinearLayout
android:id="@+id/module_mogo_och_speed_layout"
android:layout_width="@dimen/taxi_tab_speed_width_height"
android:layout_height="@dimen/taxi_tab_speed_width_height"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:background="@drawable/taxi_speed_bg"
android:elevation="@dimen/dp_10"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/module_mogo_och_speed_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:paddingTop="6dp"
android:text="0"
android:textColor="#FFFFFF"
android:textSize="74dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-10dp"
android:text="KM/H"
android:textColor="#FFFFFF"
android:textSize="32dp" />
</LinearLayout>-->
app:layout_constraintTop_toTopOf="parent"/>
<RelativeLayout
android:id="@+id/module_mogo_och_autopilot_status"
android:layout_width="0dip"
android:layout_height="@dimen/taxi_tab_autoaploit_height"
android:layout_marginTop="20dp"
android:background="@drawable/taxi_autopilot_bg_selector"
app:layout_constraintLeft_toLeftOf="@+id/module_mogo_och_speed_layout"
app:layout_constraintRight_toRightOf="@+id/module_mogo_och_speed_layout"

View File

@@ -477,6 +477,7 @@ class DevaToolsProvider : IDevaToolsProvider {
}
override fun attachAutopilotStatusView(ctx: Context, group: ViewGroup) {
StatusManager.init(ctx)
if (group.childCount > 0) {
if (group.visibility != View.VISIBLE) {
group.visibility = View.VISIBLE

View File

@@ -310,6 +310,24 @@ data class SteerStatus(val angle: Float, var isError: Boolean = false): Status()
override fun isException(): Boolean {
return isError
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as SteerStatus
if (angle != other.angle) return false
if (isError != other.isError) return false
return true
}
override fun hashCode(): Int {
var result = angle.hashCode()
result = 31 * result + isError.hashCode()
return result
}
}
/**
@@ -320,6 +338,26 @@ data class AcceleratorStatus(val angle: Float, var isError: Boolean = false): St
override fun isException(): Boolean {
return isError
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as AcceleratorStatus
if (angle != other.angle) return false
if (isError != other.isError) return false
return true
}
override fun hashCode(): Int {
var result = angle.hashCode()
result = 31 * result + isError.hashCode()
return result
}
}
/**
@@ -330,6 +368,24 @@ data class BrakeStatus(val angle: Float, var isError: Boolean = false): Status()
override fun isException(): Boolean {
return isError
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as BrakeStatus
if (angle != other.angle) return false
if (isError != other.isError) return false
return true
}
override fun hashCode(): Int {
var result = angle.hashCode()
result = 31 * result + isError.hashCode()
return result
}
}
@@ -341,6 +397,24 @@ data class DoubleFlashStatus(val type: Int, var isError: Boolean = false): Statu
override fun isException(): Boolean {
return isError
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as DoubleFlashStatus
if (type != other.type) return false
if (isError != other.isError) return false
return true
}
override fun hashCode(): Int {
var result = type
result = 31 * result + isError.hashCode()
return result
}
}
/**
@@ -351,6 +425,24 @@ data class GearStatus(val value: Int, var isError: Boolean = false): Status(), I
override fun isException(): Boolean {
return isError
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as GearStatus
if (value != other.value) return false
if (isError != other.isError) return false
return true
}
override fun hashCode(): Int {
var result = value
result = 31 * result + isError.hashCode()
return result
}
}

View File

@@ -31,6 +31,7 @@ import kotlinx.android.synthetic.main.layout_autopilot_launch_before.view.iv_dou
import kotlinx.android.synthetic.main.layout_autopilot_launch_before.view.iv_steer
import kotlinx.android.synthetic.main.layout_autopilot_launch_before.view.speed
import kotlinx.android.synthetic.main.layout_autopilot_launch_before.view.tv_brake_or_accelerator
import me.jessyan.autosize.utils.AutoSizeUtils
class AutoPilotLaunchBeforeView: LinearLayout, IStatusListener {
@@ -38,11 +39,12 @@ class AutoPilotLaunchBeforeView: LinearLayout, IStatusListener {
private const val TAG = "AutoPilotLaunchBeforeView"
}
constructor(context: Context?) : this(context, null)
constructor(context: Context?, attrs: AttributeSet?) : this(context, attrs, 0)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
constructor(context: Context) : this(context, null)
constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
LayoutInflater.from(context).inflate(R.layout.layout_autopilot_launch_before, this, true)
background = ContextCompat.getDrawable(context!!, R.drawable.bg_autopilot_launch_before)
background = ContextCompat.getDrawable(context, R.drawable.icon_bg_autopilot_status)
setPadding(AutoSizeUtils.dp2px(context, 27f), AutoSizeUtils.dp2px(context, 33f), AutoSizeUtils.dp2px(context, 30f), AutoSizeUtils.dp2px(context, 30f))
}
@@ -84,13 +86,13 @@ class AutoPilotLaunchBeforeView: LinearLayout, IStatusListener {
val isError = status.isError
val angle = status.angle
iv_brake_or_accelerator?.isSelected = isError
tv_brake_or_accelerator?.text = "a: $angle"
tv_brake_or_accelerator?.text = "a:${angle.toInt()}"
}
is BrakeStatus -> {
val isError = status.isError
val angle = status.angle
iv_brake_or_accelerator?.isSelected = isError
tv_brake_or_accelerator?.text = "a: -$angle"
tv_brake_or_accelerator?.text = "a:-${angle.toInt()}"
}
is DoubleFlashStatus -> {
val isError = status.isError

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="@dimen/dp_560" android:height="@dimen/dp_200">
<shape
android:shape="rectangle">
<gradient
android:startColor="#387BD4"
android:centerColor="#0D1578"
android:endColor="#387BD4"
android:angle="-45"/>
<corners
android:topLeftRadius="@dimen/dp_66"
android:bottomRightRadius="@dimen/dp_66"
android:topRightRadius="@dimen/dp_26"
android:bottomLeftRadius="@dimen/dp_26"/>
</shape>
</item>
<item android:width="@dimen/dp_556" android:height="@dimen/dp_196" android:left="@dimen/dp_2" android:top="@dimen/dp_2">
<shape
android:shape="rectangle">
<solid android:color="#000936" />
<corners
android:topLeftRadius="@dimen/dp_66"
android:bottomRightRadius="@dimen/dp_66"
android:topRightRadius="@dimen/dp_26"
android:bottomLeftRadius="@dimen/dp_26"/>
</shape>
</item>
</layer-list>

View File

@@ -1,34 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="@dimen/dp_184" android:height="@dimen/dp_200">
<shape
android:shape="rectangle">
<corners
android:topLeftRadius="@dimen/dp_66"
android:bottomRightRadius="@dimen/dp_66"
android:topRightRadius="@dimen/dp_26"
android:bottomLeftRadius="@dimen/dp_26"/>
<gradient
android:startColor="#9FC8FF"
android:centerColor="#1F318E"
android:endColor="#9FC8FF"
android:angle="-90"/>
</shape>
</item>
<item android:width="@dimen/dp_180" android:height="@dimen/dp_196" android:left="@dimen/dp_2" android:top="@dimen/dp_2">
<shape
android:shape="rectangle">
<corners
android:topLeftRadius="@dimen/dp_65"
android:bottomRightRadius="@dimen/dp_65"
android:topRightRadius="@dimen/dp_25"
android:bottomLeftRadius="@dimen/dp_25"/>
<gradient
android:startColor="#231CDE"
android:centerColor="#000936"
android:endColor="#892B5AD7"
android:angle="-90"/>
</shape>
</item>
</layer-list>

View File

@@ -2,10 +2,14 @@
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:parentTag="android.widget.LinearLayout"
tools:layout_width="wrap_content"
tools:layout_height="wrap_content"
tools:layout_width="@dimen/dp_624"
tools:layout_height="@dimen/dp_269"
tools:orientation="horizontal"
tools:background="@drawable/bg_autopilot_launch_before">
tools:background="@drawable/icon_bg_autopilot_status"
tools:paddingTop="@dimen/dp_33"
tools:paddingBottom="@dimen/dp_30"
tools:paddingStart="@dimen/dp_27"
tools:paddingEnd="@dimen/dp_30">
<LinearLayout
android:id="@+id/speed_chart_parent"
@@ -13,7 +17,7 @@
android:layout_height="@dimen/dp_200"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/bg_speed_chart">
android:background="@drawable/icon_bg_speed">
<TextView
android:id="@+id/speed"
android:layout_width="wrap_content"
@@ -21,8 +25,8 @@
android:textSize="@dimen/dp_74"
android:textColor="@color/white"
tools:text="65"
android:text="0"
android:layout_marginBottom="@dimen/dp_2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -36,13 +40,15 @@
android:layout_height="@dimen/dp_200"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center_vertical">
android:gravity="center_vertical"
android:paddingEnd="@dimen/dp_34">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dp_34"
android:layout_marginTop="@dimen/dp_10"
android:background="@drawable/bg_geer_position"
android:paddingStart="@dimen/dp_53"
android:paddingEnd="@dimen/dp_53"
@@ -120,7 +126,7 @@
android:textSize="@dimen/dp_34"
android:layout_marginTop="-1dp"
android:textColor="@color/white"
tools:text="a:0.0"/>
android:text="a:-0.0"/>
</LinearLayout>
</LinearLayout>
</merge>