Merge branch 'dev_robotaxi-d-app-module_280_220608_2.8.0' of gitlab.zhidaoauto.com:zhjt/AndroidApp/MoGoEagleEye into dev_robotaxi-d-app-module_280_220608_2.8.0
This commit is contained in:
@@ -149,6 +149,7 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
|
||||
if (TaxiPassengerOrderStatusEnum.Cancel.getCode() == order.orderStatus){
|
||||
runOnUIThread(() -> {
|
||||
mView.showOrHideServingOrderFragment(false);
|
||||
mView.showOrHideStartAutopilotBtn(false);
|
||||
mView.showOrHidePressengerCheckPager(false, "",
|
||||
"", "", "", "");
|
||||
mView.showOrHideArrivedEndLayout(false,"","");
|
||||
@@ -165,13 +166,28 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
|
||||
});
|
||||
return;
|
||||
}
|
||||
// TODO: 2022/6/10 若乘客端确认已经上车,则显示开始行程按钮 并且不可点击 暗
|
||||
// TODO: 2022/6/10 若司机端已经确认,则显示开始行程按钮 并且可点击
|
||||
//TODO: 2022/6/10 若订单取消或者隐藏则隐藏开始行程按钮
|
||||
if (TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus){
|
||||
mView.showOrHideStartAutopilotBtn(true);
|
||||
}
|
||||
if (TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){
|
||||
mView.showOrHideStartAutopilotBtn(false);
|
||||
}
|
||||
// 30 用户到达上车点 并通过了手机号后四位验证
|
||||
// 40 服务中
|
||||
if (TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus
|
||||
|| TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){
|
||||
runOnUIThread(() -> mView.showOrHideServingOrderFragment(true));
|
||||
runOnUIThread(() -> {
|
||||
mView.showOrHideArrivedEndLayout(false,"","");
|
||||
mView.showOrHidePressengerCheckPager(false, "",
|
||||
"", "", "", "");
|
||||
mView.showOrHideServingOrderFragment(true);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 50 到达终点 乘客可以评价
|
||||
if (TaxiPassengerOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus){
|
||||
TaxiPassengerModel.getInstance().recoverNaviInfo();
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.os.Looper;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
@@ -16,12 +17,14 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerSmpManager;
|
||||
import com.mogo.eagle.core.utilcode.util.OverlayViewUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
||||
import com.mogo.map.MogoMapUIController;
|
||||
import com.mogo.map.MogoMarkerManager;
|
||||
import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.uicontroller.VisualAngleMode;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.constants.DataTypes;
|
||||
import com.mogo.och.common.module.wigets.OCHBorderShadowLayout;
|
||||
import com.mogo.och.taxi.passenger.R;
|
||||
import com.mogo.och.taxi.passenger.presenter.BaseTaxiPassengerPresenter;
|
||||
|
||||
@@ -45,6 +48,8 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
|
||||
private ImageView mMapswitchBtn;
|
||||
private TaxiPassengerTrafficLightView mTrafficLightView;
|
||||
private TaxiPassengerV2XNotificationView mV2XNotificationView;
|
||||
private OCHBorderShadowLayout mStartAutopilotBtnView;
|
||||
private TextView mStartAutopilotBtn;
|
||||
|
||||
// private ConstraintLayout mArrivedEndCL;
|
||||
private WeakReference<TaxiPassengerArrivedView> mArrivedEndView;
|
||||
@@ -72,6 +77,9 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
|
||||
mAutopilotImage = findViewById(R.id.module_och_autopilot_iv);
|
||||
flNaviPanelContainer = findViewById(R.id.module_mogo_och_navi_panel_container);
|
||||
|
||||
mStartAutopilotBtnView = findViewById(R.id.taxi_p_start_autopilot_shadow);
|
||||
mStartAutopilotBtn = findViewById(R.id.taxi_p_start_autopilot);
|
||||
|
||||
mTrafficLightView = findViewById(R.id.traffic_light_view);
|
||||
CallerHmiManager.INSTANCE.setProxyTrafficLightView(mTrafficLightView);
|
||||
|
||||
@@ -123,6 +131,10 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
|
||||
//showOrHidePressengerCheckPager(true, "开始站点开", "开始站点开始站点开始", "2", "京A888888", "18811539480");
|
||||
//CallerHmiManager.INSTANCE.showToolsView();
|
||||
});
|
||||
|
||||
mStartAutopilotBtn.setOnClickListener(view -> {
|
||||
ToastUtils.showShort("等待接口。。。。");
|
||||
});
|
||||
}
|
||||
|
||||
private void initArrivedView(){
|
||||
@@ -264,6 +276,18 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示或者隐藏 "点击开始按钮"
|
||||
* @param isShow
|
||||
*/
|
||||
public void showOrHideStartAutopilotBtn(boolean isShow){
|
||||
if (isShow){
|
||||
mStartAutopilotBtnView.setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
mStartAutopilotBtnView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示或者隐藏到达乘客站点的洁面
|
||||
* ① 取消订单 可有可无
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="80px"/>
|
||||
<gradient
|
||||
android:angle="180"
|
||||
android:type="linear"
|
||||
android:startColor="#E61980FF"
|
||||
android:endColor="#E65D8BFF" />
|
||||
|
||||
</shape>
|
||||
@@ -130,4 +130,32 @@
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.mogo.och.common.module.wigets.OCHBorderShadowLayout
|
||||
android:id="@+id/taxi_p_start_autopilot_shadow"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:bgColor="@color/taxi_p_map_bg"
|
||||
app:blurRadius="@dimen/dp_80"
|
||||
app:shadowColor="@color/taxi_p_start_autopilot_bg_shadow"
|
||||
app:shadowRadius="@dimen/dp_80"
|
||||
app:shadow_position="outer"
|
||||
app:xOffset="0px"
|
||||
app:yOffset="0px"
|
||||
android:visibility="gone"
|
||||
android:layout_marginBottom="@dimen/dp_120"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent">
|
||||
<TextView
|
||||
android:id="@+id/taxi_p_start_autopilot"
|
||||
android:layout_width="@dimen/taxi_p_start_autopilot_btn_width"
|
||||
android:layout_height="@dimen/taxi_p_start_autopilot_btn_height"
|
||||
android:gravity="center"
|
||||
android:text="@string/taxi_p_start_autopilot_txt"
|
||||
android:textSize="@dimen/taxi_p_start_autopilot_txt_size"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@android:color/white"
|
||||
android:elevation="5dp"
|
||||
android:background="@drawable/taxi_p_start_autopilot_txt_btn_bg"/>
|
||||
</com.mogo.och.common.module.wigets.OCHBorderShadowLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -61,4 +61,8 @@
|
||||
<dimen name="taxi_p_order_route_size">50px</dimen>
|
||||
<dimen name="taxi_p_progress_des_size">34px</dimen>
|
||||
<dimen name="taxi_p_route_txt_unit_size">28px</dimen>
|
||||
|
||||
<dimen name="taxi_p_start_autopilot_txt_size">60px</dimen>
|
||||
<dimen name="taxi_p_start_autopilot_btn_width">560px</dimen>
|
||||
<dimen name="taxi_p_start_autopilot_btn_height">158px</dimen>
|
||||
</resources>
|
||||
@@ -125,4 +125,8 @@
|
||||
<dimen name="taxi_p_progress_des_size">34px</dimen>
|
||||
<dimen name="taxi_p_route_txt_unit_size">28px</dimen>
|
||||
|
||||
<dimen name="taxi_p_start_autopilot_txt_size">60px</dimen>
|
||||
<dimen name="taxi_p_start_autopilot_btn_width">560px</dimen>
|
||||
<dimen name="taxi_p_start_autopilot_btn_height">158px</dimen>
|
||||
|
||||
</resources>
|
||||
@@ -49,6 +49,7 @@
|
||||
<color name="taxi_p_check_keyboard_bg">#B630347D</color>
|
||||
<color name="taxi_p_check_keyboard_samll_mogo_color">#151937</color>
|
||||
|
||||
<color name="taxi_p_start_autopilot_bg_shadow">#80141D45</color>
|
||||
|
||||
|
||||
</resources>
|
||||
@@ -119,4 +119,8 @@
|
||||
<dimen name="taxi_p_order_route_size">50px</dimen>
|
||||
<dimen name="taxi_p_progress_des_size">34px</dimen>
|
||||
<dimen name="taxi_p_route_txt_unit_size">28px</dimen>
|
||||
|
||||
<dimen name="taxi_p_start_autopilot_txt_size">60px</dimen>
|
||||
<dimen name="taxi_p_start_autopilot_btn_width">560px</dimen>
|
||||
<dimen name="taxi_p_start_autopilot_btn_height">158px</dimen>
|
||||
</resources>
|
||||
@@ -31,4 +31,6 @@
|
||||
<string name="taxi_p_check_input_phone_tail_title">请输出手机号后4位:</string>
|
||||
<string name="taxi_p_check_small_mogo">小蘑菇</string>
|
||||
<string name="tv_delete">删除</string>
|
||||
|
||||
<string name="taxi_p_start_autopilot_txt">点击开始</string>
|
||||
</resources>
|
||||
@@ -50,6 +50,14 @@ public class OrderQueryRespBean extends BaseData {
|
||||
//订单多少乘客
|
||||
public String passengerNum;
|
||||
|
||||
//线路轨迹相关字段
|
||||
public long lineId; //路线id,默认-1
|
||||
public String trajUrl; //轨迹文件下载的cos url,默认“”
|
||||
public String trajMd5; //轨迹文件md5,默认“”
|
||||
public String stopUrl; //打点文件下载的cos url,默认“”
|
||||
public String stopMd5; //轨迹文件md5,默认“”
|
||||
public long timestamp; //上传轨迹完成时间戳ms:用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖
|
||||
public String vehicleModel; //[optional] 车型号(如红旗H9),默认“”,暂不加入校验逻辑、用于人工排查问题
|
||||
|
||||
// !!!接口中暂无此字段,仅用于本地实现逻辑使用:起始站目的站距离km
|
||||
public double travelDistance;
|
||||
|
||||
@@ -406,13 +406,13 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
|
||||
NaviToDestinationModel.getInstance(getContext()).destroyAmaNavi();
|
||||
}
|
||||
|
||||
private void startOrEndService(String step) {
|
||||
if (step.equals(getResources().getString(R.string.module_och_taxi_order_server_end))) {//点击了完成服务,结束订单并更新订单信息
|
||||
// isHaveBeingOrder(false);
|
||||
private void startOrEndService() {
|
||||
if (mCurrentOrder == null) return;
|
||||
if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == mCurrentOrder.orderStatus) {//点击了完成服务,结束订单并更新订单信息
|
||||
mTaxiFragment.completeOrderService(TaxiOrderStatusEnum.JourneyCompleted);
|
||||
showNotice(getResources().getString(R.string.module_och_taxi_order_server_completed_tip));
|
||||
return;
|
||||
} else if (step.equals(getResources().getString(R.string.module_och_taxi_order_server_start))) {//点击服务,开启自动驾驶
|
||||
} else if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == mCurrentOrder.orderStatus) {//点击服务,开启自动驾驶
|
||||
mTaxiFragment.startAutoPilot();
|
||||
showNotice(getResources().getString(R.string.module_och_taxi_order_server_start_auto_tip));
|
||||
}
|
||||
@@ -524,7 +524,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
|
||||
case "开始服务":
|
||||
case "服务完成":
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, mOrderServerStatus.getText().toString());
|
||||
startOrEndService(mOrderServerStatus.getText().toString().trim());
|
||||
startOrEndService();
|
||||
break;
|
||||
}
|
||||
} else if (v.getId() == R.id.module_och_taxi_order_cancel_iv) {
|
||||
|
||||
@@ -22,10 +22,9 @@
|
||||
<string name="module_och_taxi_order_server_start_wait_check">等待乘客验证</string>
|
||||
<string name="module_och_taxi_order_server_end">服务完成</string>
|
||||
<string name="module_och_taxi_order_server_completed_tip">车辆已停稳,请携带好随身物品,下车请注意安全</string>
|
||||
<string name="module_och_taxi_order_server_start_auto_tip">无人驾驶已启动,请您系好安全带</string>
|
||||
<string name="module_och_taxi_order_server_start_auto_tip">您好,本次自动驾驶体验里程共%1$s公里,预计需要%2$d分钟,我们即将出发。出于安全考虑,建议您尽量不要与安全员交谈,后排落座,并系好安全带</string>
|
||||
<string name="module_och_taxi_order_arrive_end_200m_tip">即将到达目的地,请拿好随身物品,准备下车</string>
|
||||
<string name="module_och_taxi_order_auto_arrive_end_tip">已到达目的地,感谢乘坐\'蘑菇车联\'无人驾驶车,期待下次相遇</string>
|
||||
|
||||
<string name="module_och_taxi_order_auto_arrive_end_tip">您好,我们已到达目的地,本次体验结束。车辆停稳,请带好随身物品,谨防遗漏。感谢您的乘坐</string>
|
||||
<string name="module_och_taxi_auto_disable_tip">自动驾驶状态为0不可用</string>
|
||||
|
||||
<string name="network_error_tip">网络异常,请稍后重试</string>
|
||||
|
||||
@@ -64,10 +64,7 @@ import com.mogo.service.statusmanager.StatusDescriptor.SEEK_HELPING
|
||||
import com.mogo.v2x.V2XManager
|
||||
import com.mogo.v2x.callback.IV2XCallback
|
||||
import com.mogo.v2x.config.V2XConfig
|
||||
import com.mogo.v2x.data.V2XAdvanceWarning
|
||||
import com.mogo.v2x.data.V2XMarkerCardResult
|
||||
import com.mogo.v2x.data.V2XOptimalRoute
|
||||
import com.mogo.v2x.data.V2XWarningTarget
|
||||
import com.mogo.v2x.data.*
|
||||
import com.mogo.v2x.event.V2XEvent
|
||||
import com.shuyu.gsyvideoplayer.GSYVideoManager
|
||||
import com.shuyu.gsyvideoplayer.cache.CacheFactory
|
||||
@@ -78,6 +75,7 @@ import com.shuyu.gsyvideoplayer.player.PlayerFactory
|
||||
import com.shuyu.gsyvideoplayer.utils.GSYVideoType
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.android.asCoroutineDispatcher
|
||||
import roadwork.Road.RW_PB
|
||||
import tv.danmaku.ijk.media.player.IjkMediaPlayer
|
||||
import java.util.concurrent.TimeUnit
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
@@ -452,9 +450,27 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb
|
||||
is V2XEvent.Warning -> {
|
||||
handleWarningTargetEvent(event.data)
|
||||
}
|
||||
is V2XEvent.RoadAI -> {
|
||||
handleRoadMarkerEvent(event.data.toRoadMarker)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val RW_PB.toRoadMarker: V2XMarkerCardResult
|
||||
get() = V2XMarkerCardResult().also { l1 ->
|
||||
l1.exploreWay = ArrayList<V2XMarkerExploreWay>().also { l2 ->
|
||||
l2.add(V2XMarkerExploreWay().also { l3 ->
|
||||
l3.poiType = this.roadwork?.poiType?.toString()
|
||||
l3.generateTime = this.roadwork?.detectTime ?: 0L
|
||||
l3.location = V2XMarkerLocation().also { l4 ->
|
||||
l4.lat = this.roadwork?.center?.point?.lat ?: 0.0
|
||||
l4.lon = this.roadwork?.center?.point?.lon ?: 0.0
|
||||
l4.angle = -1.0
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleWarningTargetEvent(data: V2XWarningTarget) {
|
||||
val v2xMessageEntity = V2XMessageEntity<V2XWarningTarget>()
|
||||
v2xMessageEntity.type = V2XTypeEnum.ALERT_THE_FRONT_WEAKNESS
|
||||
|
||||
@@ -48,7 +48,8 @@ public class V2XAlarmServer {
|
||||
// 因为集合是按照距离排序后的所以这里检索出来第一个就发出警告
|
||||
for (V2XRoadEventEntity v2XRoadEventEntity : v2XRoadEventEntityList) {
|
||||
// 0、道路事件必须有朝向,角度>=0;
|
||||
if (v2XRoadEventEntity.getLocation().getAngle() >= 0) {
|
||||
boolean ignoreAngle = v2XRoadEventEntity.getLocation().getAngle() < 0;
|
||||
if (v2XRoadEventEntity.getLocation().getAngle() >= 0 || ignoreAngle) {
|
||||
// 计算车辆距离指定气泡的距离
|
||||
MarkerLocation eventLocation = v2XRoadEventEntity.getLocation();
|
||||
// 1、判断是否到达了触发距离,20 ~ 500,
|
||||
@@ -63,7 +64,7 @@ public class V2XAlarmServer {
|
||||
double carBearing = currentLocation.getBearing();
|
||||
double eventBearing = eventLocation.getAngle();
|
||||
double diffAngle = DrivingDirectionUtils.getAngleDiff(carBearing, eventBearing);
|
||||
if (diffAngle < 20) {
|
||||
if (ignoreAngle || diffAngle < 20) {
|
||||
// 3、计算当前车辆行驶方向与事件位置之间夹角《20度,保证道路事件在车辆前方
|
||||
double eventAngle = DrivingDirectionUtils.getDegreeOfCar2Poi(
|
||||
currentLocation.getLongitude(),
|
||||
@@ -72,7 +73,7 @@ public class V2XAlarmServer {
|
||||
eventLocation.getLat(),
|
||||
(int) currentLocation.getBearing()
|
||||
);
|
||||
if (0 <= eventAngle && eventAngle <= 20) {
|
||||
if (ignoreAngle || 0 <= eventAngle && eventAngle <= 20) {
|
||||
// 判断是否已经提示过道路事件
|
||||
boolean isAlreadyAlert = false;
|
||||
String lastTime = mAlertRoadEventList.get(v2XRoadEventEntity);
|
||||
|
||||
@@ -63,23 +63,23 @@ SERVICE_CHAIN_VERSION=1.1.0
|
||||
LOGLIB_VERSION=1.3.0
|
||||
######## MogoAiCloudSDK Version ########
|
||||
# 网络请求LOGLIB_VERSION
|
||||
MOGO_NETWORK_VERSION=1.3.59
|
||||
MOGO_NETWORK_VERSION=1.4.1
|
||||
# 鉴权
|
||||
MOGO_PASSPORT_VERSION=1.3.59
|
||||
MOGO_PASSPORT_VERSION=1.4.1
|
||||
# 常链接
|
||||
MOGO_SOCKET_VERSION=1.3.59
|
||||
MOGO_SOCKET_VERSION=1.4.1
|
||||
# 数据采集
|
||||
MOGO_REALTIME_VERSION=1.3.59
|
||||
MOGO_REALTIME_VERSION=1.4.1
|
||||
# 探路,道路事件发布,获取
|
||||
MOGO_TANLU_VERSION=1.3.59
|
||||
MOGO_TANLU_VERSION=1.4.1
|
||||
# 直播推流
|
||||
MOGO_LIVE_VERSION=1.3.59
|
||||
MOGO_LIVE_VERSION=1.4.1
|
||||
# 直播拉流
|
||||
MOGO_TRAFFICLIVE_VERSION=1.3.59
|
||||
MOGO_TRAFFICLIVE_VERSION=1.4.1
|
||||
# 定位服务
|
||||
MOGO_LOCATION_VERSION=1.3.59
|
||||
MOGO_LOCATION_VERSION=1.4.1
|
||||
# 远程通讯模块
|
||||
MOGO_TELEMATIC_VERSION=1.3.59
|
||||
MOGO_TELEMATIC_VERSION=1.4.1
|
||||
######## MogoAiCloudSDK Version ########
|
||||
# 自研地图
|
||||
MAP_SDK_VERSION=2.2.0.7
|
||||
@@ -155,7 +155,7 @@ MOGO_OCH_TAXI_VERSION=2.0.66
|
||||
# mogoAiCloud sdk services
|
||||
MOGO_AICLOUD_SERVICES_SDK_VERSION=2.1.16.10
|
||||
# v2x-sdk
|
||||
MOGO_V2X_SDK_VERSION=1.3.59
|
||||
MOGO_V2X_SDK_VERSION=1.4.1
|
||||
################# 旧版本架构模块版本 #################
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user