[Taxi Passenger v1.1.0]乘客端V2X预警时间呈现、隐藏监控icon

This commit is contained in:
pangfan
2022-03-16 17:22:06 +08:00
parent 59c43d901b
commit ffe754afe3
9 changed files with 160 additions and 0 deletions

View File

@@ -39,6 +39,7 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
private ImageView mAutopilotImage;
private ImageView mMapswitchBtn;
private TaxiPassengerTrafficLightView mTrafficLightView;
private TaxiPassengerV2XNotificationView mV2XNotificationView;
protected TaxiPassengerServingOrderFragment ochServingOrderFragment = null;
@@ -64,6 +65,8 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
mTrafficLightView = findViewById(R.id.traffic_light_view);
CallerHmiManager.INSTANCE.setProxyTrafficLightView(mTrafficLightView);
mV2XNotificationView = new TaxiPassengerV2XNotificationView(getContext());
CallerHmiManager.INSTANCE.setProxyNotificationView(mV2XNotificationView);
mMapswitchBtn = findViewById(R.id.module_och_taxi_swich_map_iv);
mMapswitchBtn.setOnClickListener(new View.OnClickListener() {

View File

@@ -0,0 +1,90 @@
package com.mogo.och.taxi.passenger.ui;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.widget.ImageView;
import android.widget.TextView;
import com.mogo.eagle.core.data.enums.SidePattern;
import com.mogo.eagle.core.function.api.hmi.view.IViewNotification;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.taxi.passenger.R;
import org.jetbrains.annotations.Nullable;
/**
* V2X预警事件view通过FloatWindow呈现无需加入到自定义layout中
*
* Created on 2022/3/16
*/
public class TaxiPassengerV2XNotificationView extends IViewNotification {
private ImageView mV2XNotificationIcon;
private TextView mV2XNotificationText;
public TaxiPassengerV2XNotificationView(@Nullable Context context) {
this(context, null, 0);
}
public TaxiPassengerV2XNotificationView(@Nullable Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public TaxiPassengerV2XNotificationView(@Nullable Context context, @Nullable AttributeSet attrs,
int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
LayoutInflater.from(context).inflate(R.layout.taxi_p_v2x_notification_view, this,
true);
mV2XNotificationIcon = findViewById(R.id.taxi_p_v2x_notification_icon_iv);
mV2XNotificationText = findViewById(R.id.taxi_p_v2x_notification_text_tv);
// 设置View的出场位置
setSidePattern(SidePattern.LEFT);
setLayoutGravity(Gravity.LEFT);
// 设置View的停留位置相对屏幕左上角的位置
setOffsetX(getResources().
getDimensionPixelSize(R.dimen.taxi_p_v2x_notification_view_margin_left));
setOffsetY(getResources().
getDimensionPixelSize(R.dimen.taxi_p_v2x_notification_view_margin_top));
}
@Override
public void setWarningIcon(int warningIcon) {
super.setWarningIcon(warningIcon);
UiThreadHandler.post(() -> {
mV2XNotificationIcon.setImageResource(warningIcon);
});
}
@Override
public void setWarningIcon(@Nullable Drawable drawable) {
super.setWarningIcon(drawable);
UiThreadHandler.post(() -> {
mV2XNotificationIcon.setImageDrawable(drawable);
});
}
@Override
public void setWarningContent(@Nullable CharSequence warningContent) {
super.setWarningContent(warningContent);
UiThreadHandler.post(() -> {
mV2XNotificationText.setText(warningContent);
});
}
@Override
public void setWarningContent(int warningContentId) {
super.setWarningContent(warningContentId);
UiThreadHandler.post(() -> {
mV2XNotificationText.setText(warningContentId);
});
}
}

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">
<solid android:color="@color/taxi_p_v2x_notification_bg_color"/>
<corners android:radius="@dimen/taxi_p_v2x_notification_bg_corner"/>
</shape>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/taxi_p_v2x_notification_view_padding"
android:background="@drawable/bg_taxi_p_v2x_notification_view">
<ImageView
android:id="@+id/taxi_p_v2x_notification_icon_iv"
android:layout_width="@dimen/taxi_p_v2x_notification_icon_size"
android:layout_height="@dimen/taxi_p_v2x_notification_icon_size"
android:src="@drawable/icon_warning_v2x_abnormal_vehicle"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/taxi_p_v2x_notification_text_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/taxi_p_v2x_notification_text_margin_left"
android:text="预警信息"
android:textColor="#FFFFFF"
android:textSize="@dimen/taxi_p_v2x_notification_text_size"
app:layout_constraintBottom_toBottomOf="@+id/taxi_p_v2x_notification_icon_iv"
app:layout_constraintLeft_toRightOf="@+id/taxi_p_v2x_notification_icon_iv"
app:layout_constraintTop_toTopOf="@+id/taxi_p_v2x_notification_icon_iv"
tools:text="前车碰撞预警" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -39,4 +39,12 @@
<dimen name="taxi_p_traffic_light_icon_size">154px</dimen>
<dimen name="taxi_p_traffic_light_time_view_width">127px</dimen>
<dimen name="taxi_p_traffic_light_time_size">60px</dimen>
<dimen name="taxi_p_v2x_notification_view_margin_left">31px</dimen>
<dimen name="taxi_p_v2x_notification_view_margin_top">110px</dimen> <!-- 距离Pad顶部 -->
<dimen name="taxi_p_v2x_notification_view_padding">10px</dimen>
<dimen name="taxi_p_v2x_notification_bg_corner">70px</dimen>
<dimen name="taxi_p_v2x_notification_icon_size">120px</dimen>
<dimen name="taxi_p_v2x_notification_text_size">39px</dimen>
<dimen name="taxi_p_v2x_notification_text_margin_left">20px</dimen>
</resources>

View File

@@ -102,4 +102,12 @@
<dimen name="taxi_p_traffic_light_icon_size">154px</dimen>
<dimen name="taxi_p_traffic_light_time_view_width">127px</dimen>
<dimen name="taxi_p_traffic_light_time_size">60px</dimen>
<dimen name="taxi_p_v2x_notification_view_margin_left">31px</dimen>
<dimen name="taxi_p_v2x_notification_view_margin_top">110px</dimen> <!-- 距离Pad顶部 -->
<dimen name="taxi_p_v2x_notification_view_padding">10px</dimen>
<dimen name="taxi_p_v2x_notification_bg_corner">70px</dimen>
<dimen name="taxi_p_v2x_notification_icon_size">120px</dimen>
<dimen name="taxi_p_v2x_notification_text_size">39px</dimen>
<dimen name="taxi_p_v2x_notification_text_margin_left">20px</dimen>
</resources>

View File

@@ -23,4 +23,6 @@
<color name="taxi_p_traffic_light_green_color_down">#006D43</color>
<color name="taxi_p_traffic_light_yellow_color_up">#FFE198</color>
<color name="taxi_p_traffic_light_yellow_color_down">#FF9B00</color>
<color name="taxi_p_v2x_notification_bg_color">#80000000</color>
</resources>

View File

@@ -100,4 +100,12 @@
<dimen name="taxi_p_traffic_light_icon_size">154px</dimen>
<dimen name="taxi_p_traffic_light_time_view_width">127px</dimen>
<dimen name="taxi_p_traffic_light_time_size">60px</dimen>
<dimen name="taxi_p_v2x_notification_view_margin_left">31px</dimen>
<dimen name="taxi_p_v2x_notification_view_margin_top">110px</dimen> <!-- 距离Pad顶部 -->
<dimen name="taxi_p_v2x_notification_view_padding">10px</dimen>
<dimen name="taxi_p_v2x_notification_bg_corner">70px</dimen>
<dimen name="taxi_p_v2x_notification_icon_size">120px</dimen>
<dimen name="taxi_p_v2x_notification_text_size">39px</dimen>
<dimen name="taxi_p_v2x_notification_text_margin_left">20px</dimen>
</resources>

View File

@@ -112,6 +112,8 @@ public class MogoApplication extends MainMoGoApplication {
HmiBuildConfig.isShowLimitingVelocityView = false;
//是否显示 红绿等
HmiBuildConfig.isShowTrafficLightView = false;
//是否显示 路侧监控
HmiBuildConfig.isShowCameraView = false;
}
//och模块
MogoModulePaths.addModuleFunction(new MogoModule("/och/api", "IMoGoFunctionProvider"));