Merge branch 'dev_robotaxi-d_240705_6.5.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_240705_6.5.0
This commit is contained in:
@@ -32,17 +32,30 @@ class VisualViewDirver : ConstraintLayout {
|
||||
iv_visual_angle_title_value_bg.enableCallback = object :SeekBarView.EnableCallback{
|
||||
override fun enableChangeListener(enable: Boolean) {
|
||||
if(enable){
|
||||
iv_visual_angle_title_head.setImageResource(R.drawable.commont_visual_head)
|
||||
iv_visual_angle_title_bottom.setImageResource(R.drawable.common_visual_bottom)
|
||||
iv_visual_angle_title_value_bg.setBgResource(R.drawable.common_visual_angle_bg)
|
||||
iv_visual_angle_title_value_bg.setHumbResource(R.drawable.common_visual_angle)
|
||||
iv_visual_angle_title_head.alpha = 1f
|
||||
iv_visual_angle_title_head.alpha = 1f
|
||||
iv_visual_angle_title_bottom.alpha = 1f
|
||||
iv_visual_angle_title_value_bg.alpha = 1f
|
||||
iv_visual_angle_title_value_bg.alpha = 1f
|
||||
iv_center_location_bg.alpha = 1f
|
||||
|
||||
// iv_visual_angle_title_head.setImageResource(R.drawable.commont_visual_head)
|
||||
// iv_visual_angle_title_bottom.setImageResource(R.drawable.common_visual_bottom)
|
||||
// iv_visual_angle_title_value_bg.setBgResource(R.drawable.common_visual_angle_bg)
|
||||
// iv_visual_angle_title_value_bg.setHumbResource(R.drawable.common_visual_angle)
|
||||
iv_center_location_bg.setImageResource(R.drawable.common_visualangle_bg)
|
||||
}else{
|
||||
iv_visual_angle_title_head.setImageResource(R.drawable.commont_visual_head_unable)
|
||||
iv_visual_angle_title_bottom.setImageResource(R.drawable.common_visual_bottom_unenable)
|
||||
iv_visual_angle_title_value_bg.setBgResource(R.drawable.common_visual_angle_bg_unenable)
|
||||
iv_visual_angle_title_value_bg.setHumbResource(R.drawable.common_visual_angle_unenable)
|
||||
iv_center_location_bg.setImageResource(R.drawable.common_visualangle_bg_unenable)
|
||||
iv_visual_angle_title_head.alpha = 0.5f
|
||||
iv_visual_angle_title_bottom.alpha = 0.5f
|
||||
iv_visual_angle_title_value_bg.alpha = 0.5f
|
||||
iv_visual_angle_title_value_bg.alpha = 0.5f
|
||||
iv_center_location_bg.alpha = 0.5f
|
||||
|
||||
// iv_visual_angle_title_head.setImageResource(R.drawable.commont_visual_head_unable)
|
||||
// iv_visual_angle_title_bottom.setImageResource(R.drawable.common_visual_bottom_unenable)
|
||||
// iv_visual_angle_title_value_bg.setBgResource(R.drawable.common_visual_angle_bg_unenable)
|
||||
// iv_visual_angle_title_value_bg.setHumbResource(R.drawable.common_visual_angle_unenable)
|
||||
// iv_center_location_bg.setImageResource(R.drawable.common_visualangle_bg_unenable)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.LinearInterpolator;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
@@ -15,6 +16,7 @@ import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.constraintlayout.widget.Group;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
@@ -39,8 +41,11 @@ import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.och.common.module.utils.ResourcesUtils;
|
||||
import com.mogo.och.common.module.wigets.map.orderstatus.OrderStatusView;
|
||||
import com.mogo.och.common.module.wigets.map.overmapview.OverMapDialog;
|
||||
import com.mogo.och.common.module.wigets.map.switchvisual.VisualViewDirver;
|
||||
import com.mogo.och.taxi.R;
|
||||
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils;
|
||||
|
||||
|
||||
/**
|
||||
* 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况
|
||||
@@ -68,6 +73,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
protected DriverMsgBoxButtonView driverMsgBoxButtonView;
|
||||
protected DriverMsgBoxListView viewDriverMsgBoxList;
|
||||
protected DriverMsgBoxBubbleView viewDriverMsgBoxBubble;
|
||||
protected VisualViewDirver visualViewDirver;
|
||||
|
||||
protected TaxiAmapNaviFragment ochAmapNaviFragment = null;
|
||||
protected TaxiRottingNaviFragment taxiRottingNaviFragment = null;
|
||||
@@ -97,6 +103,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
driverMsgBoxButtonView = findViewById(R.id.viewDriverMsgBoxButton);
|
||||
viewDriverMsgBoxList = findViewById(R.id.viewDriverMsgBoxList);
|
||||
viewDriverMsgBoxBubble = findViewById(R.id.viewDriverMsgBoxBubble);
|
||||
visualViewDirver = findViewById(R.id.vvd_change_angle);
|
||||
|
||||
mSpeedView = findViewById(R.id.taxi_speed_contain);
|
||||
if (mSpeedView != null) {
|
||||
@@ -426,6 +433,13 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
@Override
|
||||
public void run() {
|
||||
flStationPanelContainer.setVisibility(View.GONE);
|
||||
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) visualViewDirver.getLayoutParams();
|
||||
layoutParams.startToStart = ConstraintLayout.LayoutParams.PARENT_ID;
|
||||
layoutParams.bottomToTop = R.id.toolsView;
|
||||
if(getContext()!=null) {
|
||||
layoutParams.setMarginStart(AutoSizeUtils.dp2px(getContext(), 29));
|
||||
}
|
||||
visualViewDirver.setLayoutParams(layoutParams);
|
||||
}
|
||||
},UiThreadHandler.MODE.QUEUE);
|
||||
}
|
||||
@@ -435,6 +449,13 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
@Override
|
||||
public void run() {
|
||||
flStationPanelContainer.setVisibility(View.VISIBLE);
|
||||
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) visualViewDirver.getLayoutParams();
|
||||
layoutParams.startToStart = ConstraintLayout.LayoutParams.PARENT_ID;
|
||||
layoutParams.bottomToTop = R.id.toolsView;
|
||||
if(getContext()!=null) {
|
||||
layoutParams.setMarginStart(AutoSizeUtils.dp2px(getContext(), 618));
|
||||
}
|
||||
visualViewDirver.setLayoutParams(layoutParams);
|
||||
}
|
||||
},UiThreadHandler.MODE.QUEUE);
|
||||
}
|
||||
|
||||
@@ -256,9 +256,11 @@
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.mogo.och.common.module.wigets.map.switchvisual.VisualViewDirver
|
||||
app:layout_constraintStart_toEndOf="@+id/module_mogo_och_station_panel_container"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/module_mogo_och_station_panel_container"
|
||||
android:layout_marginBottom="@dimen/dp_32"
|
||||
android:id="@+id/vvd_change_angle"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@+id/toolsView"
|
||||
android:layout_marginBottom="@dimen/dp_48"
|
||||
android:layout_marginStart="@dimen/dp_618"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
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:layout_marginTop="@dimen/dp_165"
|
||||
android:visibility="gone"
|
||||
app:fusionLightUser="passenger"
|
||||
/>
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
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:layout_marginTop="@dimen/dp_165"
|
||||
android:visibility="gone"
|
||||
app:fusionLightUser="passenger"
|
||||
/>
|
||||
|
||||
@@ -52,6 +52,19 @@ class AutomaticExplorationAdapter(val context: Context,val user: Int): RecyclerV
|
||||
data?.let {
|
||||
val entity = it[position]
|
||||
holder.tvExplorationContent.text = entity.explorationContent
|
||||
if(user == 0){
|
||||
holder.ivExplorationLoading.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.icon_exploration_loading
|
||||
))
|
||||
}else{
|
||||
holder.ivExplorationLoading.setImageDrawable(
|
||||
ContextCompat.getDrawable(
|
||||
context,
|
||||
R.drawable.icon_exploration_loading_p
|
||||
))
|
||||
}
|
||||
val rotationAnim = ObjectAnimator.ofFloat(holder.ivExplorationLoading, "rotation", 0f, 360f)
|
||||
rotationAnim.repeatCount = entity.explorationDuration.toInt()/1000
|
||||
rotationAnim.repeatMode = ValueAnimator.RESTART
|
||||
|
||||
@@ -126,7 +126,7 @@ class AutomaticExplorationView @JvmOverloads constructor(
|
||||
}
|
||||
if(allComplete){
|
||||
//语音播放
|
||||
AIAssist.getInstance(context).speakTTSVoice("道路畅通一切正常蘑菇行车助手将持续守候您的出行")
|
||||
AIAssist.getInstance(context).speakTTSVoice("道路畅通一切正常蘑菇型车助手将持续守候您的出行")
|
||||
//5秒后关闭弹窗
|
||||
val hideViewTimer =object: CountDownTimer(EXPLORATION_HIDE_TIME,EXPLORATION_HIDE_TIME){
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.hmi.ui.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
@@ -15,6 +16,8 @@ import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import java.util.LinkedList
|
||||
|
||||
/**
|
||||
* 融合红绿灯View
|
||||
* 鹰眼6.5.0版本需求
|
||||
@@ -105,18 +108,16 @@ class FusionTrafficLightView @JvmOverloads constructor(
|
||||
AutopilotSummaryInfo.intersectionServicesNum++
|
||||
AutopilotSummaryInfo.lightServicesNum++
|
||||
//首次展示,需要将当前、下一、下二灯态的时间占比绘制出来,只绘制一次
|
||||
val proportionList = ArrayList<Int>(3)
|
||||
proportionList.add(0)
|
||||
proportionList.add(0)
|
||||
proportionList.add(0)
|
||||
val proportionList = intArrayOf(0, 0, 0)
|
||||
|
||||
//按照绿、黄、红的顺序将灯态时间添加到数组
|
||||
when (currentState) {
|
||||
TrafficLightEnum.GREEN -> {
|
||||
proportionList.add(0,currentDuration)
|
||||
proportionList[0] = currentDuration
|
||||
maxGreenDuration = currentDuration
|
||||
}
|
||||
TrafficLightEnum.YELLOW -> {
|
||||
proportionList.add(1,currentDuration)
|
||||
proportionList[1] = currentDuration
|
||||
maxYellowDuration = if(currentDuration < 3){
|
||||
3
|
||||
}else{
|
||||
@@ -124,17 +125,17 @@ class FusionTrafficLightView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
proportionList.add(2,currentDuration)
|
||||
proportionList[2] = currentDuration
|
||||
maxRedDuration = currentDuration
|
||||
}
|
||||
}
|
||||
when(nextState){
|
||||
TrafficLightEnum.GREEN -> {
|
||||
proportionList.add(0,nextDuration)
|
||||
proportionList[0] = nextDuration
|
||||
maxGreenDuration = nextDuration
|
||||
}
|
||||
TrafficLightEnum.YELLOW -> {
|
||||
proportionList.add(1,nextDuration)
|
||||
proportionList[1] = nextDuration
|
||||
maxYellowDuration = if(nextDuration<3){
|
||||
3
|
||||
}else{
|
||||
@@ -142,17 +143,17 @@ class FusionTrafficLightView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
proportionList.add(2,nextDuration)
|
||||
proportionList[2] = nextDuration
|
||||
maxRedDuration = nextDuration
|
||||
}
|
||||
}
|
||||
when(nextTwoState){
|
||||
TrafficLightEnum.GREEN -> {
|
||||
proportionList.add(0,nextTwoDuration)
|
||||
proportionList[0] = nextTwoDuration
|
||||
maxGreenDuration = nextTwoDuration
|
||||
}
|
||||
TrafficLightEnum.YELLOW -> {
|
||||
proportionList.add(1,nextTwoDuration)
|
||||
proportionList[1] = nextTwoDuration
|
||||
maxYellowDuration = if(nextTwoDuration<3){
|
||||
3
|
||||
}else{
|
||||
@@ -160,11 +161,11 @@ class FusionTrafficLightView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
proportionList.add(2,nextTwoDuration)
|
||||
proportionList[2] = nextTwoDuration
|
||||
maxRedDuration = nextTwoDuration
|
||||
}
|
||||
}
|
||||
fusionTrafficLightProportion?.updateProportion(proportionList)
|
||||
fusionTrafficLightProportion?.updateProportion(proportionList.asList())
|
||||
totalDuration = maxGreenDuration + maxYellowDuration + maxRedDuration
|
||||
}
|
||||
//根据当前灯态设置转盘、刻度、指针背景
|
||||
|
||||
@@ -27,7 +27,6 @@ public class ProportionChartView extends View {
|
||||
private static final int DEFAULT_RING_WIDTH = 8;
|
||||
private float mRingWidth = 0;
|
||||
private Paint mRingPaint;
|
||||
private float mRadius;
|
||||
private RectF mRectF;
|
||||
//红绿灯绿灯、黄灯、红灯灯色时间
|
||||
private List<Integer> proportionList = new ArrayList<>();
|
||||
@@ -125,7 +124,7 @@ public class ProportionChartView extends View {
|
||||
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
|
||||
super.onSizeChanged(w, h, oldw, oldh);
|
||||
//宽和高分别去掉padding值,取min的一半即圆的半径(这里demo没有用到,可自行做一些其他计算使用)
|
||||
mRadius = Math.min(w - getPaddingLeft() - getPaddingRight(), h - getPaddingTop() - getPaddingBottom()) / 2f;
|
||||
// mRadius = Math.min(w - getPaddingLeft() - getPaddingRight(), h - getPaddingTop() - getPaddingBottom()) / 2f;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvPromptContent"
|
||||
android:textSize="@dimen/sp_90"
|
||||
android:layout_marginLeft="@dimen/dp_30"
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
app:textType="DS_DIGIB_2"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
/>
|
||||
@@ -35,9 +35,10 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tvPromptContent"
|
||||
app:layout_constraintLeft_toRightOf="@id/tvTrafficNum"
|
||||
android:layout_marginLeft="@dimen/dp_2"
|
||||
android:layout_marginStart="@dimen/dp_2"
|
||||
android:textSize="@dimen/sp_48"
|
||||
app:textType="DS_DIGIB_2"
|
||||
android:layout_marginBottom="@dimen/dp_m_2"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
Reference in New Issue
Block a user