Merge remote-tracking branch 'origin/dev_robobus-d_230322_3.0.0' into dev_robobus-d_230322_3.0.0

This commit is contained in:
donghongyu
2023-04-13 13:11:53 +08:00
63 changed files with 296 additions and 107 deletions

View File

@@ -1,7 +1,13 @@
# 网约车(Online Car Hailing)
1. mogo-och-busBus司机端Bus
2. mogo-och-bus-passengerBus乘客端BusPassenger
3. mogo-och-taxiTaxi司机端Taxi
4. mogo-och-taxi-passengerTaxi乘客端TaxiPassenger
5. mogo-och-noop空实现用于独立鹰眼打包
6. mogo-och-sweeper: 清扫车Sweeper
1. mogo-och-bus 公交车模式司机端
2. mogo-och-bus-passenger 公交车模式乘客端
3. mogo-och-charter 包车模式司机端
4. mogo-och-charter-passenger 包车模式乘客端
5. mogo-och-common-module 公用代码
6. mogo-och-data 数据
7. mogo-och-noop 空实现,用于独立鹰眼打包
8. mogo-och-shuttle 接驳模式司机端
9. mogo-och-shuttle-passenger 接驳模式乘客屏
10. mogo-och-sweeper: 清扫车
11. mogo-och-taxi 出租车模式司机端
12. mogo-och-taxi-passenger 出租车乘客端

View File

@@ -232,6 +232,7 @@ object CharterPassengerModel {
override fun onAutopilotSNRequest() {}
override fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) {
mADASStatusCallback?.onAutopilotArriveEnd()
CallerLogger.d(SceneConstant.M_BUS_P + TAG,"底盘给到站信息")
arriveDest()
}
@@ -403,6 +404,7 @@ object CharterPassengerModel {
)
// 小于15m到站
if (calculateLineDistance < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG,"小于15米到站1")
arriveDest()
}
}
@@ -708,6 +710,7 @@ object CharterPassengerModel {
+ " thread = " + Thread.currentThread().name
)
if (lastSumLength < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG,"小于15米到站2")
arriveDest()
}
iDistanceTimeCallback?.setDistancecAndTime(lastSumLength.toLong(), lastTime.toLong())

View File

@@ -9,5 +9,6 @@ import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse
interface DriverM1OrderCallback {
fun updateOrderUI(orderStatus: QueryCurrentOrderResponse.Result) // 到达站
fun updateOverCountDown(minutes: Long) //倒计时ms
fun clearCountDown() //清除倒计时
fun updateReturnCarStatus(returnSuccess: Boolean)
}

View File

@@ -186,7 +186,7 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
}.start()
}
private fun clearCountDownTimer() {
fun clearCountDownTimer() {
if (countDownTimer != null){
countDownTimer?.cancel()
countDownTimer = null

View File

@@ -517,6 +517,7 @@ class DriverM1Model {
DriverM1LooperManager.starCountDownLoop()
}else{
DriverM1LooperManager.stopCountDownLoop()
mOrderCallback?.clearCountDown()
}
}

View File

@@ -105,6 +105,10 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
mView?.updateCountDown(minutes)
}
override fun clearCountDown() {
mView?.clearCountDownTimer()
}
override fun updateReturnCarStatus(returnSuccess: Boolean) {
mView?.updateReturnCarStatus(returnSuccess)
}

View File

@@ -37,16 +37,13 @@ object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() {
}
loginCallback?.loginSuccess(data)
updateLoginLocalStatus(isLogin())
data?.data?.driverStatus?.let { updateLoginLocalStatus(it) }
}
private fun updateLoginLocalStatus(isLogin: Boolean) {
var loginCacheStatus = LoginCacheStatus(if (isLogin){
1
}else {
0
},DateTimeUtil.getCurrentTimeStamp())
private fun updateLoginLocalStatus(loginStatus: Int = 0) {
var loginCacheStatus = LoginCacheStatus(loginStatus,DateTimeUtil.getCurrentTimeStamp())
CacheDataManager.instance.putCacheData(mContext, BusCacheKey.BUS_LOGIN_STATUS_CACHE,
GsonUtils.toJson(loginCacheStatus))
}
@@ -60,7 +57,7 @@ object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() {
}
loginCallback?.loginFail(isLogin)
updateLoginLocalStatus(isLogin)
updateLoginLocalStatus(0)
}
}

View File

@@ -1,5 +1,7 @@
package com.mogo.och.data.bean;
import java.util.Objects;
/**
* 单个网约车小巴车站信息
*
@@ -93,6 +95,28 @@ public class BusStationBean {
this.leaving = leaving;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
BusStationBean that = (BusStationBean) o;
return siteId == that.siteId
&& seq == that.seq
&& Double.compare(that.gcjLon, gcjLon) == 0
&& Double.compare(that.gcjLat, gcjLat) == 0
&& Double.compare(that.lon, lon) == 0
&& Double.compare(that.lat, lat) == 0
&& drivingStatus == that.drivingStatus
&& leaving == that.leaving
&& name.equals(that.name)
&& nameKr.equals(that.nameKr);
}
@Override
public int hashCode() {
return Objects.hash(siteId, name, nameKr, seq, gcjLon, gcjLat, lon, lat, drivingStatus, leaving);
}
@Override
public String toString() {
return "BusStationBean{" +
@@ -107,4 +131,6 @@ public class BusStationBean {
", leaving=" + leaving +
'}';
}
}

View File

@@ -273,7 +273,7 @@ public class BusPassengerModel {
clearLocalRouteResult();
return;
}
CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = update");
routesResult = result;
if (mRouteLineInfoCallback != null){
@@ -578,6 +578,7 @@ public class BusPassengerModel {
public void dynamicCalculateRouteInfo() {
//计算当前位置和下一站的剩余点集合
//计算剩余点总里程和时间
CallerLogger.INSTANCE.d(M_BUS_P + TAG, "轨迹排查==mTwoStationsRouts.size() = " + mTwoStationsRouts.size());
if (mTwoStationsRouts.size() == 0){
calculateTwoStationsRoute();
}

View File

@@ -161,4 +161,13 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@+id/bus_p_route_panel" />
<com.mogo.eagle.core.function.hmi.ui.msgbox.BusPassengerMsgBoxBubbleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintRight_toLeftOf="@+id/bus_p_route_panel"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginRight="@dimen/dp_40"
android:layout_marginTop="@dimen/dp_100"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

Binary file not shown.

Binary file not shown.

View File

@@ -421,7 +421,7 @@ class PM2DrivingModel private constructor() {
updateLocalOrder()
return
}
d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate= update")
routesResult = result
mDrivingInfoCallback?.updateLine(result.name, result.runningDur)
@@ -445,6 +445,7 @@ class PM2DrivingModel private constructor() {
mNextStationIndex = i + 1
return
} else if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && !station.isLeaving) {
d(SceneConstant.M_BUS_P+TAG,"och-rotting--arrived ")
mPreRouteIndex = 0
isGoingToNextStation = false
startOrStopCalculateRouteInfo(false)
@@ -484,7 +485,7 @@ class PM2DrivingModel private constructor() {
fun dynamicCalculateRouteInfo(){
//计算当前位置和下一站的剩余点集合
//计算剩余点总里程和时间
d(SceneConstant.M_BUS_P + TAG, "och-rotting==mTwoStationsRouts.size() = " + mTwoStationsRouts.size)
//计算当前位置和下一站的剩余点集合
//计算剩余点总里程和时间
if (mTwoStationsRouts.size == 0) {

View File

@@ -1,6 +1,7 @@
package com.mogo.och.bus.passenger.ui
import android.graphics.BitmapFactory
import android.graphics.drawable.AnimationDrawable
import android.os.Bundle
import android.view.View
import androidx.core.content.ContextCompat
@@ -176,7 +177,7 @@ class PM2DrivingInfoFragment :
context?.let { auto_tv.setTextColor(ContextCompat.getColor(it,R.color.m2_p_white_color)) }
context?.let { auto_tv.background = ContextCompat.getDrawable(it,R.drawable.auto_button_bg) }
}else{
context?.let { auto_tv.setTextColor(ContextCompat.getColor(it,R.color.m2_button_auto_tv_color)) }
context?.let { auto_tv.setTextColor(ContextCompat.getColor(it,R.color.shuttle_color_7094ad)) }
context?.let { auto_tv.background = ContextCompat.getDrawable(it,R.drawable.bg_p_m2_auto) }
}
}
@@ -206,9 +207,13 @@ class PM2DrivingInfoFragment :
tv_distance.text = resources.getString(R.string.m2_p_empty_remain_km)
tv_left_time.text = resources.getString(R.string.m2_p_empty_remain_minute)
tv_next_station_title.text = resources.getString(R.string.m2_p_station_title_arrived_tv)
iv_animal_list.visibility = View.VISIBLE
val animationDrawable = iv_animal_list.drawable as AnimationDrawable
animationDrawable.start()
haveLineAndArrivedStation()
}else{ //前往目的地中
tv_next_station_title.text = resources.getString(R.string.shuttle_p_next_station_title)
iv_animal_list.visibility = View.GONE
haveLineAndArriveingStation()
}
}

View File

@@ -20,8 +20,8 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer {
init {
hideWidget()
GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL)
//GSYVideoType.setRenderType(GSYVideoType.GLSURFACE)
GSYVideoType.setShowType(GSYVideoType.SCREEN_TYPE_16_9)
GSYVideoType.setRenderType(GSYVideoType.GLSURFACE)
}
override fun hideAllWidget() {

View File

@@ -30,6 +30,11 @@ class AdvanceVideoView @JvmOverloads constructor(
private var videoRelativeLayout: RelativeLayout? = null
private var cacheImage: ImageView? = null
private var connerTopLeft: ImageView? = null
private var connerTopRight: ImageView? = null
private var connerBottomLeft: ImageView? = null
private var connerBottomRight: ImageView? = null
private var videoViewPlayer: AdvanceGSYVideoPlayer? = null
private var gsyVideoOptionBuilder: GSYVideoOptionBuilder? = null
private var mOnCompletionListener: GSYSampleCallBack? = null
@@ -57,24 +62,56 @@ class AdvanceVideoView @JvmOverloads constructor(
private fun initVideoView() {
videoRelativeLayout = RelativeLayout(context)
addView(videoRelativeLayout, LayoutParams(-1, -1))
val outLayout = LayoutParams(-1, -1)
addView(videoRelativeLayout,outLayout)
if (videoViewPlayer === null) {
//视频播放控件
videoViewPlayer = AdvanceGSYVideoPlayer(context)
}
var layoutParams = LayoutParams(-1, -1)
val layoutParams = LayoutParams(-1, -1)
//设置videoview占满父view播放
layoutParams.addRule(ALIGN_PARENT_LEFT)
layoutParams.addRule(ALIGN_PARENT_RIGHT)
layoutParams.addRule(ALIGN_PARENT_TOP)
layoutParams.addRule(ALIGN_PARENT_BOTTOM)
val dp2px = AutoSizeUtils.dp2px(context, 16f)
videoRelativeLayout?.outlineProvider = TextureVideoViewOutlineProvider(dp2px.toFloat())
videoRelativeLayout?.clipToOutline = true
videoRelativeLayout?.addView(videoViewPlayer, layoutParams)
val imageSize = AutoSizeUtils.dp2px(context, 25f)
if(connerTopLeft==null){
connerTopLeft = ImageView(context)
connerTopLeft?.setImageResource(R.drawable.m2_video_top_left)
}
val layoutParentTopLeft = LayoutParams(imageSize, imageSize)
layoutParentTopLeft.addRule(ALIGN_PARENT_TOP)
layoutParentTopLeft.addRule(ALIGN_PARENT_LEFT)
videoRelativeLayout?.addView(connerTopLeft, layoutParentTopLeft)
if(connerTopRight==null){
connerTopRight = ImageView(context)
connerTopRight?.setImageResource(R.drawable.m2_video_top_right)
}
val layoutParentTopRight = LayoutParams(imageSize, imageSize)
layoutParentTopRight.addRule(ALIGN_PARENT_TOP)
layoutParentTopRight.addRule(ALIGN_PARENT_RIGHT)
videoRelativeLayout?.addView(connerTopRight, layoutParentTopRight)
if(connerBottomLeft==null){
connerBottomLeft = ImageView(context)
connerBottomLeft?.setImageResource(R.drawable.m2_video_bottom_left)
}
val layoutParentBottomLeft = LayoutParams(imageSize, imageSize)
layoutParentBottomLeft.addRule(ALIGN_PARENT_BOTTOM)
layoutParentBottomLeft.addRule(ALIGN_PARENT_LEFT)
videoRelativeLayout?.addView(connerBottomLeft, layoutParentBottomLeft)
if(connerBottomRight==null){
connerBottomRight = ImageView(context)
connerBottomRight?.setImageResource(R.drawable.m2_video_bottom_right)
}
val layoutParentBottomRight = LayoutParams(imageSize, imageSize)
layoutParentBottomRight.addRule(ALIGN_PARENT_RIGHT)
layoutParentBottomRight.addRule(ALIGN_PARENT_BOTTOM)
videoRelativeLayout?.addView(connerBottomRight, layoutParentBottomRight)
}
fun setVideoPath(path: String,cacheImageUrl: String) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 899 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 KiB

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 569 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:visible="true"
android:oneshot="false">
<item android:drawable="@drawable/m2_arrived_an_0" android:duration="300"/>
<item android:drawable="@drawable/m2_arrived_an_1" android:duration="300"/>
<item android:drawable="@drawable/m2_arrived_an_2" android:duration="300"/>
</animation-list>

View File

@@ -19,17 +19,28 @@
app:mapStylePath="@string/m2_over_map_style_path"
app:resetDrawableMarginBottom="@dimen/dp_54"
app:resetDrawableMarginRight="@dimen/dp_34"
app:compassDrawable="@drawable/amap_custom_corner_m2"
app:arrivedDrawable="@drawable/m2_amap_arrived_road"
app:unArrivedDrawable="@drawable/m2_amap_arriving_road"
app:mapTilt="0"
app:leftPadding="200"
app:startPointDrawable="@drawable/m2_map_start_icon" />
<androidx.constraintlayout.widget.ConstraintLayout
<ImageView
android:id="@+id/cl_left_container_back"
android:layout_width="0dp"
android:scaleType="fitXY"
android:layout_height="match_parent"
android:src="@drawable/bg_driving_info_image"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_percent="0.516"/>
<View
android:id="@+id/cl_left_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@drawable/bg_driving_info"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_percent="0.5">
</androidx.constraintlayout.widget.ConstraintLayout>
app:layout_constraintWidth_percent="0.5"/>
<ImageView
android:id="@+id/iv_line_name_container"
@@ -56,7 +67,7 @@
android:id="@+id/line_name_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_20"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:maxWidth="@dimen/dp_600"
@@ -121,6 +132,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
app:layout_constraintTop_toTopOf="@+id/tv_next_station_title"
app:layout_constraintBottom_toBottomOf="@+id/tv_next_station_title"
app:layout_constraintStart_toEndOf="@+id/tv_next_station_title"
android:id="@+id/iv_animal_list"
android:layout_width="@dimen/dp_25"
android:layout_height="@dimen/dp_30"
android:src="@drawable/bg_p_m2_arrived_station"
android:visibility="gone"
android:layout_marginStart="@dimen/dp_7" />
<com.mogo.och.common.module.wigets.MarqueeTextView
android:id="@+id/station_name_tv"
android:layout_width="0dp"
@@ -215,6 +237,7 @@
android:id="@+id/aciv_speed_time_bg"
android:layout_width="0dp"
android:layout_height="@dimen/dp_181"
android:scaleType="fitXY"
android:src="@drawable/shuttle_p_card_split"
app:layout_constraintEnd_toEndOf="@+id/cl_left_container"
app:layout_constraintBottom_toBottomOf="parent"
@@ -227,13 +250,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_27"
android:text="0"
android:textColor="@color/m2_p_speed_tv_color"
android:textSize="@dimen/dp_60"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="@+id/aciv_speed_time_bg"
app:layout_constraintTop_toTopOf="@+id/aciv_speed_time_bg" />
app:layout_constraintTop_toTopOf="@+id/viewTextClockHouerMin"
app:layout_constraintBottom_toBottomOf="@+id/viewTextClockHouerMin"/>
<TextView
android:id="@+id/tv_speed_unit"
@@ -255,7 +278,7 @@
android:background="@drawable/bg_p_m2_auto"
android:gravity="center"
android:text="@string/m2_p_auto_tv"
android:textColor="@color/m2_button_auto_tv_color"
android:textColor="@color/shuttle_color_7094ad"
android:layout_marginBottom="@dimen/dp_34"
android:textSize="@dimen/dp_18"
app:layout_constraintLeft_toLeftOf="@+id/speed_tv"
@@ -270,7 +293,7 @@
app:day_light_mode="true"
app:layout_constraintLeft_toRightOf="@+id/auto_tv"
app:layout_constraintTop_toTopOf="@+id/auto_tv"
app:visible="true" />
app:visible="false" />
<!-- 红绿灯-->
<!-- <com.mogo.och.bus.passenger.ui.widget.M2PTrafficLightView-->
@@ -330,9 +353,8 @@
android:gravity="center"
app:layout_constraintBottom_toTopOf="@+id/viewTextClockWeek"
app:layout_constraintStart_toEndOf="@+id/view_split"
android:layout_marginEnd="@dimen/dp_90"
android:textColor="@color/shuttle_color_17417B"
android:layout_marginBottom="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_5"
android:includeFontPadding="false"
android:textSize="@dimen/dp_18" />

View File

@@ -29,7 +29,7 @@
app:layout_constraintEnd_toEndOf="parent"
android:scaleType="fitXY"
android:layout_width="1080dp"
android:layout_height="@dimen/dp_563"/>
android:layout_height="@dimen/dp_630"/>
@@ -41,10 +41,10 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="@dimen/dp_61"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_25"
android:layout_marginEnd="@dimen/dp_25"
app:blurRadius="@dimen/dp_15"
app:shadowColor="#80000000"
app:shadowColor="#802F3E67"
app:shadowRadius="@dimen/dp_16"
app:shadow_position="outer"
app:xOffset="0dp"
@@ -54,11 +54,11 @@
<FrameLayout
android:id="@+id/driving_fragment"
android:layout_width="match_parent"
android:layout_marginStart="@dimen/dp_35"
android:layout_marginEnd="@dimen/dp_35"
android:layout_height="@dimen/dp_490"
android:layout_marginStart="@dimen/dp_40"
android:layout_marginEnd="@dimen/dp_40"
android:layout_height="@dimen/dp_492"
android:layout_marginTop="@dimen/dp_13"
app:layout_constraintTop_toTopOf="@+id/och_shadow_layout"
app:layout_constraintBottom_toBottomOf="@+id/och_shadow_layout"
app:layout_constraintEnd_toEndOf="@+id/och_shadow_layout"
app:layout_constraintStart_toStartOf="@+id/och_shadow_layout"/>
@@ -88,11 +88,12 @@
<FrameLayout
android:id="@+id/video_fragment"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_560"
android:layout_marginBottom="@dimen/dp_44"
android:layout_marginEnd="@dimen/dp_42"
android:layout_marginStart="@dimen/dp_42"
android:layout_height="562.5dp"
android:layout_marginBottom="@dimen/dp_40"
android:layout_marginEnd="@dimen/dp_40"
android:layout_marginStart="@dimen/dp_40"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"/>
<!-- 16 9 -->
<!-- 1000 562.5 -->
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -35,4 +35,5 @@
<color name="shuttle_color_b9e7c0">#B9E7C0</color>
<color name="shuttle_color_43cefe">#43CEFE</color>
<color name="shuttle_color_1466fb">#1466FB</color>
<color name="shuttle_color_7094ad">#7094AD</color>
</resources>

View File

@@ -13,7 +13,7 @@
<string name="m2_over_map_style_path">m2_map_style.data</string>
<string name="m2_over_map_style_extra_path">m2_map_style_extra.data</string>
<string name="m2_p_auto_tv">Auto</string>
<string name="m2_p_auto_tv">AUTO</string>
<string name="m2_p_station_title_tv">下一站:</string>
<string name="m2_p_station_title_arrived_tv">已到站</string>
<string name="m2_p_empty_tv">暂无站点</string>
@@ -22,7 +22,7 @@
<string name="m2_p_empty_remain_km">—公里</string>
<string name="m2_p_empty_remain_minute">—分钟</string>
<string name="m2_p_arrived_station_title">请按秩序下车</string>
<string name="m2_p_not_select_line_content">路线加载中…</string>
<string name="m2_p_not_select_line_content">暂无路线</string>

View File

@@ -79,7 +79,6 @@ import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.common.module.bean.dpmsg.BusCacheKey;
import com.mogo.och.data.bean.BusTransferData;
import com.mogo.och.data.manager.cache.CacheDataManager;
import com.zhidao.socket.utils.LoginStatusUtil;
import org.jetbrains.annotations.NotNull;
@@ -829,6 +828,7 @@ public class OrderModel {
private void pushCacheTransferData(BusRoutesResult result) {
BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,result);
CallerLogger.INSTANCE.d(M_BUS + TAG, "pushCacheTransferData = " + GsonUtils.toJson(data));
CacheDataManager.Companion.getInstance().putCacheData(mContext,
BusCacheKey.BUS_LINE_CACHE,
GsonUtils.toJson(data));

View File

@@ -67,7 +67,7 @@
"shuttlepassengerm2": {
"ads": [
{
"path": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1678946244305/dalim2.mp4",
"path": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1681210902933/erhaim2.mp4",
"type": 1,
"cacheImgPath": "",
"title": "1"
@@ -143,7 +143,7 @@
"shuttlepassengerm2": {
"ads": [
{
"path": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1678946244305/dalim2.mp4",
"path": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1681210902933/erhaim2.mp4",
"type": 1,
"cacheImgPath": "",
"title": "1"
@@ -155,9 +155,9 @@
"shuttlepassenger": {
"ads": [
{
"path": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1680774790614/yangmadao_photo.jpg",
"path": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1681210971943/yangmadou.mp4",
"type": 1,
"cacheImgPath": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1680774847276/yangmadao_video.mp4",
"cacheImgPath": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1680774790614/yangmadao_photo.jpg",
"title": "1"
}
]
@@ -165,7 +165,7 @@
"shuttlepassengerm2": {
"ads": [
{
"path": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1678946244305/dalim2.mp4",
"path": "https://img.zhidaohulian.com/fileServer/online_car_hailing/1681210902933/erhaim2.mp4",
"type": 1,
"cacheImgPath": "",
"title": "1"

View File

@@ -31,7 +31,7 @@ project.android.productFlavors {
buildConfigField 'int', 'GPS_PROVIDER', "1"
// 构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则
buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Bus_Passenger_M2\""
buildConfigField 'String', 'APP_IDENTITY_MODE', "\"Shuttle_Passenger_M2\""
// 连接的工控机IP地址
buildConfigField 'String', 'ADAS_CONNECT_IP', "\"192.168.8.103\""
// 构建的是否是演示(美化)模式

View File

@@ -96,11 +96,14 @@ object ConfigStartUp {
HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache
} else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) {
HdMapBuildConfig.currentCarVrIconRes = R.raw.huanwei
} else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)){
}
if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)){
HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache
} else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){
}
if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){
HdMapBuildConfig.currentCarVrIconRes = R.raw.m1
}else if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
}
if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
HdMapBuildConfig.currentCarVrIconRes = R.raw.m2
}
@@ -164,6 +167,12 @@ object ConfigStartUp {
if (AppIdentityModeUtils.isBusPassenger(FunctionBuildConfig.appIdentityMode)) {
mapParams.setShadowEnable(false)
}
if(AppIdentityModeUtils.isShuttlePassenger(FunctionBuildConfig.appIdentityMode)) {
// shuttle m2 车需要偏移
if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
mapParams.setCarPosition(-0.5f)
}
}
MapAutoApi.init(context, mapParams)

View File

@@ -48,7 +48,7 @@ class BrakeViewStatus @JvmOverloads constructor(
if (brakeLight == 1) { //刹车灯亮
if (!isBrake) {
isBrake = true
CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(0, 500)
CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(4, 500)
GlobalScope.launch(Dispatchers.Main) {
var appearAnimation = AlphaAnimation(0f, 1f)
appearAnimation.duration = 300
@@ -63,7 +63,7 @@ class BrakeViewStatus @JvmOverloads constructor(
} else { //不踩刹车,就消失
if (isBrake) {
isBrake = false
CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(3, 500)
CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(0, 500)
GlobalScope.launch(Dispatchers.Main) {
// scaleImageAndTv()
var disappearAnimation = AlphaAnimation(1f, 0f)

View File

@@ -59,7 +59,7 @@ class TakeOverView @JvmOverloads constructor(
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_PLANNING,
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_LOCATION,
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS,
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_DISTANCE -> {
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_DISTANCE ->{
CallerHmiManager.warningV2X(
EventTypeEnumNew.TAKE_OVER_EVENT.poiType,
EventTypeEnumNew.TAKE_OVER_EVENT.content,
@@ -73,7 +73,38 @@ class TakeOverView @JvmOverloads constructor(
MsgBoxBean(
MsgBoxType.V2X, V2XMsg(
EventTypeEnumNew.TAKE_OVER_EVENT.poiType,
EventTypeEnumNew.TAKE_OVER_EVENT.poiTypeStrVr, ""
EventTypeEnumNew.TAKE_OVER_EVENT.content,
EventTypeEnumNew.TAKE_OVER_EVENT.tts
)
)
)
}
override fun onDismiss() {
takeOver = false
visibility = View.GONE
}
}
)
}
//弱网
MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_NETWORK_WEAK,
MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_CONNECTION_ERROR -> {
CallerHmiManager.warningV2X(
EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType,
EventTypeEnumNew.NETWORK_WEAK_EVENT.content,
EventTypeEnumNew.NETWORK_WEAK_EVENT.tts,
object : IMoGoWarningStatusListener {
override fun onShow() {
takeOver = true
visibility = View.VISIBLE
//加入消息盒子
saveMsgBox(
MsgBoxBean(
MsgBoxType.V2X, V2XMsg(
EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType,
EventTypeEnumNew.NETWORK_WEAK_EVENT.content,
EventTypeEnumNew.NETWORK_WEAK_EVENT.tts
)
)
)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<com.mogo.eagle.core.widget.RoundConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_393"
android:layout_width="@dimen/dp_400"
android:layout_height="@dimen/dp_80"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#CCFFFFFF"

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<com.mogo.eagle.core.widget.RoundConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_393"
android:layout_width="@dimen/dp_400"
android:layout_height="@dimen/dp_80"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#CCFFFFFF"

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<com.mogo.eagle.core.widget.RoundCanClickConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_393"
android:layout_width="@dimen/dp_400"
android:layout_height="@dimen/dp_80"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#CCFFFFFF"

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rvMBoxBubbleList"
android:layout_width="@dimen/dp_393"
android:layout_width="@dimen/dp_400"
android:layout_height="wrap_content"
>

View File

@@ -112,8 +112,8 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
private fun turn(lightNum: Int) {
if (currentLevel != lightNum) {
when (lightNum) {
0 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(3, 500)
1 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(4, 500)
0 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(0, 500)
1 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(1, 500)
2 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(2, 500)
}
currentLevel = lightNum

View File

@@ -145,6 +145,7 @@ class OverMapView @JvmOverloads constructor(
topPadding = typedArray.getInt(R.styleable.OverMapView_topPadding, 100)
rightPadding = typedArray.getInt(R.styleable.OverMapView_rightPadding, 100)
bottomPadding = typedArray.getInt(R.styleable.OverMapView_bottomPadding, 100)
mTilt = typedArray.getFloat(R.styleable.OverMapView_mapTilt, 30f)
typedArray.recycle()
initView(context)
} catch (e: Exception) {
@@ -296,7 +297,6 @@ class OverMapView @JvmOverloads constructor(
private fun initAMapView(context: Context) {
Log.d(TAG, "initAMapView")
mTilt = 30f
mCameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel.toFloat())
mAMap = mMapView!!.map
mCustomMapStyleOptions = CustomMapStyleOptions()

View File

@@ -29,5 +29,7 @@
<attr name="topPadding" format="integer" />
<attr name="rightPadding" format="integer" />
<attr name="bottomPadding" format="integer" />
<!-- 倾斜角 -->
<attr name="mapTilt" format="float" />
</declare-styleable>
</resources>

View File

@@ -107,16 +107,15 @@ enum class EventTypeEnumNew(
"前方盲区行人通行,请注意", "前方盲区即将有行人通过,请减速慢行"),
//接管
// TAKE_OVER_EVENT(
// "20000", "接管", "注意周围、立即接管", R.drawable.icon_warning_take_over,
// "注意周围、立即接管", "自动驾驶退出请立即接管"
// ),
TAKE_OVER_EVENT(
"20000", "接管", "注意周围、立即接管", R.drawable.icon_warning_take_over,
"注意周围、立即接管", "平行驾驶遇弱网已退出,注意随时接管"
"注意周围、立即接管", "自动驾驶退出请立即接管"
),
//弱网接管
NETWORK_WEAK_EVENT("20001", "接管", "注意周围、立即接管", R.drawable.icon_warning_take_over,
"注意周围、立即接管", "平行驾驶遇弱网已退出,注意随时接管"),
// 前方静止or慢速车辆报警
ALERT_FRONT_CAR("99999","前方预警"),
@@ -834,6 +833,10 @@ enum class EventTypeEnumNew(
TAKE_OVER_EVENT.poiType ->{
TAKE_OVER_EVENT.poiTypeStr
}
//弱网接管
NETWORK_WEAK_EVENT.poiType ->{
NETWORK_WEAK_EVENT.poiTypeStr
}
//机动车
TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType ->{
TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiTypeStr
@@ -1124,6 +1127,10 @@ enum class EventTypeEnumNew(
TAKE_OVER_EVENT.poiType -> {
R.drawable.icon_warning_take_over
}
//弱网接管
NETWORK_WEAK_EVENT.poiType -> {
R.drawable.icon_warning_take_over
}
//机动车
TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType -> {
R.drawable.icon_warning_v2x_motorcycle_collision

View File

@@ -117,6 +117,16 @@ object AppIdentityModeUtils {
}
return false
}
/**
* 是否是 接驳车(这里不细分具体是:司机、乘客等类型)
*
* @param appIdentityMode productFlavors 配置的类型
* @return true - 是小巴车端 false - 不是小巴车端
*/
@JvmStatic
fun isShuttlePassenger(appIdentityMode: String): Boolean {
return isShuttle(appIdentityMode) && isPassenger(appIdentityMode)
}
@JvmStatic
fun isM2(appIdentityMode: String): Boolean {
val (_, _, model) = getInfo(appIdentityMode)

View File

@@ -63,7 +63,7 @@ BIZCONFIG_VERSION=1.3.2
SERVICE_BIZ_VERSION=1.2.4
################ 外部依赖引用 ################
# loglib
LOGLIB_VERSION=1.5.22
LOGLIB_VERSION=1.5.25
######## MogoAiCloudSDK Version ########
# 网络请求LOGLIB_VERSION
MOGO_NETWORK_VERSION=1.4.6.6
@@ -85,7 +85,7 @@ MOGO_LOCATION_VERSION=1.4.6.6
MOGO_TELEMATIC_VERSION=1.4.6.6
######## MogoAiCloudSDK Version ########
# 自研地图
MAP_SDK_VERSION=2.11.0.12
MAP_SDK_VERSION=2.12.0.11
MAP_SDK_OPERATION_VERSION=1.1.4.1
# websocket
WEBSOCKET_VERSION=1.1.7

View File

@@ -155,6 +155,8 @@ public class MogoReport {
String EXIT_AUTOPILOT_FOR_LOCATION = "EMAP_EXIT_AUTOPILOT_FOR_LOCATION";//因location掉帧强退自动驾驶
String EXIT_AUTOPILOT_FOR_CHASSIS = "EMAP_EXIT_AUTOPILOT_FOR_CHASSIS";//因底盘消息掉帧强退自动驾驶
String EXIT_AUTOPILOT_FOR_DISTANCE = "EMAP_EXIT_AUTOPILOT_FOR_DISTANCE";//因planning起点距离当前过远强退自动驾驶
String EPARALLEL_AICLOUD_CONNECTION_ERROR = "EPARALLEL_AICLOUD_CONNECTION_ERROR";//断网(此时不符合平行驾驶条件) 平行驾驶退出到自驾,同时减速停车
String EPARALLEL_AICLOUD_NETWORK_WEAK = "EPARALLEL_AICLOUD_NETWORK_WEAK";//弱网,平行驾驶退出到自驾,同时减速停车
String EXIT_AUTOPILOT_FOR_BRAKE = "EMAP_EXIT_AUTOPILOT_FOR_BRAKE";//制动踏板干预而强退自动驾驶
String EXIT_AUTOPILOT_FOR_ACCEL = "EMAP_EXIT_AUTOPILOT_FOR_ACCEL";//加速踏板干预而强退自动驾驶
String EXIT_AUTOPILOT_FOR_STEER = "EMAP_EXIT_AUTOPILOT_FOR_STEER";//方向盘干预而强退自动驾驶

View File

@@ -194,7 +194,8 @@ public interface IMogoMapUIController {
void setCarCursorOption(@Nullable CarCursorOption option);
/**
* @param type :车尾灯类型 time: 闪烁时间 最小500ms 小于500ms 默认为500ms
* @param type :车尾灯类型 0=默认 1=左黄 2=右黄 3=双黄 4=双红
* @param time: 闪烁时间 最小500ms 小于500ms 默认为500ms
*/
void setCarLightsType(int type, int time);

File diff suppressed because one or more lines are too long

View File

@@ -143,6 +143,9 @@ public class AMapWrapper implements IMogoMap {
if (!checkAMap()) {
return;
}
if(optionsArrayList == null || optionsArrayList.size() == 0){
return;
}
ArrayList<MarkerSimpleData> markerOptionsArrayList = new ArrayList<>();
optionsArrayList.forEach((s, trackedObject) -> {
MarkerSimpleData markerOptions = ObjectUtils.fromAiData(trackedObject);
@@ -150,6 +153,9 @@ public class AMapWrapper implements IMogoMap {
markerOptionsArrayList.add(markerOptions);
}
});
if(markerOptionsArrayList.size() == 0){
return;
}
long time = markerOptionsArrayList.get(0).getTime();
// 最后一个参数,是否管理锚点的删除
MarkerHelper.INSTANCE.updateBatchMarkerPositon(markerOptionsArrayList, false, FunctionBuildConfig.isBeautyMode ? 8.0f : 0f, 1, time, 1);

View File

@@ -53,6 +53,7 @@ class IFlyTekTts : IMogoTTS, InitListener {
// 注意: appid 必须和下载的SDK保持一致否则会出现10407错误
SpeechUtility.createUtility(context, "appid=0c498b42")
ttsEngine = SpeechSynthesizer.createSynthesizer(context, this)
updateTtsParam()
voicerEntries = context.resources?.getStringArray(R.array.voicer_cloud_values)
}