Merge remote-tracking branch 'origin/dev_1.1.9' into dev_1.1.9
# Conflicts: # libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java # modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java
This commit is contained in:
@@ -133,4 +133,5 @@ public class V2XConst {
|
||||
* 绿波车速marker
|
||||
*/
|
||||
public static final String V2X_OPTIMAL_SPEED_MARKER = "V2X_OPTIMAL_SPEED_MARKER";
|
||||
|
||||
}
|
||||
|
||||
@@ -102,6 +102,9 @@ public class V2XRoadEventAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
|
||||
if (holder instanceof V2XOtherSeekHelpVH) {
|
||||
((V2XOtherSeekHelpVH) holder).initView(itemList.get(position));
|
||||
}
|
||||
if (holder instanceof V2XRecommendRouteVH) {
|
||||
((V2XRecommendRouteVH) holder).initView(itemList.get(position));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.mogo.module.v2x.adapter.holder;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.mogo.module.common.entity.V2XEventShowEntity;
|
||||
import com.mogo.module.common.entity.V2XRecommendRouteEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
|
||||
/**
|
||||
* created by wujifei on 2020/12/29 20:39
|
||||
* describe:线路推荐
|
||||
*/
|
||||
public class V2XRecommendRouteVH extends V2XBaseViewHolder<V2XRecommendRouteEntity> {
|
||||
private TextView mTvAddress, mTvAddressDistance;
|
||||
private ImageView mIvToNav, mIvClose;
|
||||
|
||||
public V2XRecommendRouteVH(ViewGroup viewGroup, IV2XWindow v2XWindow) {
|
||||
super(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_v2x_fatigue_driving, viewGroup, false), v2XWindow);
|
||||
mTvAddress = itemView.findViewById(R.id.tvAddress);
|
||||
mTvAddressDistance = itemView.findViewById(R.id.tvAddressDistance);
|
||||
mIvToNav = itemView.findViewById(R.id.ivToNav);
|
||||
mIvClose = itemView.findViewById(R.id.ivClose);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initView(V2XRecommendRouteEntity viewData) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.mogo.module.v2x.adapter.holder
|
||||
|
||||
import android.content.Intent
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.commons.voice.VoicePreemptType
|
||||
import com.mogo.module.common.entity.MarkerExploreWay
|
||||
import com.mogo.module.common.entity.MarkerLocation
|
||||
import com.mogo.module.common.entity.V2XEventShowEntity
|
||||
import com.mogo.module.v2x.R
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow
|
||||
import com.mogo.module.v2x.utils.V2XUtils
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager.registerUnWakeVoice
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager.unRegisterUnWakeVoice
|
||||
import kotlinx.coroutines.MainScope
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
* created by wujifei on 2020/12/31 16:10
|
||||
* describe:
|
||||
*/
|
||||
class V2XRecommendRouteVH(viewGroup: ViewGroup, v2XWindow: IV2XWindow<*>) : V2XBaseViewHolder<V2XEventShowEntity>(
|
||||
LayoutInflater.from(viewGroup.context).inflate(R.layout.item_v2x_recommend_route, viewGroup, false), v2XWindow), V2XVoiceCallbackListener {
|
||||
private var mTvAddress: TextView? = null
|
||||
private var mIvToNav: ImageView? = null
|
||||
private var mIvClose: ImageView? = null
|
||||
private var mNoveltyInfo: MarkerExploreWay? = null
|
||||
private val mainScope = MainScope()
|
||||
|
||||
init {
|
||||
mTvAddress = itemView.findViewById<TextView>(R.id.tvAddress)
|
||||
mIvToNav = itemView.findViewById<ImageView>(R.id.ivToNav)
|
||||
mIvClose = itemView.findViewById<ImageView>(R.id.ivClose)
|
||||
mIvToNav?.setOnClickListener { triggerStartNavi(mNoveltyInfo) }
|
||||
mIvClose?.setOnClickListener { delayedCloseWindow() }
|
||||
itemView.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
|
||||
override fun onViewAttachedToWindow(view: View) {
|
||||
registerUnwakeNavi()
|
||||
mainScope.launch {
|
||||
delay(1000 * 20)
|
||||
delayedCloseWindow()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewDetachedFromWindow(view: View) {
|
||||
unRegisterUnwakeNavi()
|
||||
AIAssist.getInstance(V2XUtils.getApp()).breakOffSpeak()
|
||||
mainScope.cancel()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
override fun initView(viewData: V2XEventShowEntity?) {
|
||||
viewData?.let {
|
||||
val markerLocation = MarkerLocation()
|
||||
markerLocation.lon = it.getV2XRecommendRouteEntity().toPoint.get(0)
|
||||
markerLocation.lat = it.getV2XRecommendRouteEntity().toPoint.get(1)
|
||||
mNoveltyInfo = MarkerExploreWay()
|
||||
mNoveltyInfo?.setLocation(markerLocation)
|
||||
mTvAddress!!.text = "前往 ${it.getV2XRecommendRouteEntity().formatAddress}"
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(it.getV2XRecommendRouteEntity().tts, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, null)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onCallback(command: String?, intent: Intent?) {
|
||||
when (command) {
|
||||
V2XVoiceConstants.V2X_CONFIRM_ACTION -> triggerStartNavi(mNoveltyInfo)
|
||||
V2XVoiceConstants.V2X_CANCLE_ACTION -> delayedCloseWindow()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun registerUnwakeNavi() {
|
||||
registerUnWakeVoice(V2XVoiceConstants.V2X_CONFIRM_ACTION, this)
|
||||
registerUnWakeVoice(V2XVoiceConstants.V2X_CANCLE_ACTION, this)
|
||||
}
|
||||
|
||||
private fun unRegisterUnwakeNavi() {
|
||||
unRegisterUnWakeVoice(V2XVoiceConstants.V2X_CONFIRM_ACTION)
|
||||
unRegisterUnWakeVoice(V2XVoiceConstants.V2X_CANCLE_ACTION)
|
||||
}
|
||||
}
|
||||
@@ -249,7 +249,7 @@ public class V2XAlarmServer {
|
||||
LocationUtils.geoCodeSearch(location, new IMogoGeoSearchListener() {
|
||||
@Override
|
||||
public void onRegeocodeSearched(MogoRegeocodeResult regeocodeResult) {
|
||||
//Logger.i(MODULE_NAME, "根据经纬度查询结果为:" + regeocodeResult.getRegeocodeAddress().getFormatAddress());
|
||||
Logger.i(MODULE_NAME, "根据经纬度查询结果为:" + regeocodeResult.getRegeocodeAddress().getFormatAddress());
|
||||
String keyword = "停车场";
|
||||
boolean isHighWay = false;
|
||||
if (regeocodeResult == null || regeocodeResult.getRegeocodeAddress() == null ||
|
||||
|
||||
@@ -30,20 +30,18 @@ public class V2XRoadDataRes extends BaseData {
|
||||
}
|
||||
|
||||
public static class ResultDTO {
|
||||
|
||||
private String formatAddress;
|
||||
private List<Double> fromPoint;
|
||||
private List<Double> topPoint;
|
||||
private List<PoiDataDTO> poiData;
|
||||
private List<IllegalParkingDataDTO> illegalParkingData;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ResultDTO{" +
|
||||
"fromPoint=" + fromPoint +
|
||||
", topPoint=" + topPoint +
|
||||
", poiData=" + poiData +
|
||||
", illegalParkingData=" + illegalParkingData +
|
||||
'}';
|
||||
public String getFormatAddress() {
|
||||
return formatAddress;
|
||||
}
|
||||
|
||||
public void setFormatAddress(String formatAddress) {
|
||||
this.formatAddress = formatAddress;
|
||||
}
|
||||
|
||||
public List<Double> getFromPoint() {
|
||||
|
||||
@@ -12,10 +12,16 @@ import com.mogo.commons.data.BaseData;
|
||||
import com.mogo.commons.network.ParamsProvider;
|
||||
import com.mogo.commons.network.SubscribeImpl;
|
||||
import com.mogo.commons.network.Utils;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.map.MogoLatLng;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.map.search.geo.IMogoGeoSearchListener;
|
||||
import com.mogo.map.search.geo.MogoGeocodeResult;
|
||||
import com.mogo.map.search.geo.MogoRegeocodeResult;
|
||||
import com.mogo.module.common.entity.MarkerResponse;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XPoiTypeEnum;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XRecommendRouteEntity;
|
||||
import com.mogo.module.service.ServiceConst;
|
||||
import com.mogo.module.service.network.RefreshBody;
|
||||
@@ -30,6 +36,7 @@ import com.mogo.module.v2x.entity.net.V2XRoadDataRes;
|
||||
import com.mogo.module.v2x.entity.net.V2XSeekHelpRes;
|
||||
import com.mogo.module.v2x.entity.net.V2XStrategyPushRes;
|
||||
import com.mogo.module.v2x.entity.net.V2XUserInfoRes;
|
||||
import com.mogo.module.v2x.utils.LocationUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.network.IMogoNetwork;
|
||||
@@ -40,9 +47,13 @@ import com.mogo.utils.network.utils.GsonUtil;
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.functions.Function;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import okhttp3.RequestBody;
|
||||
|
||||
import static com.mogo.module.v2x.V2XServiceManager.getContext;
|
||||
|
||||
|
||||
/**
|
||||
* 数据接口API
|
||||
@@ -676,34 +687,85 @@ public class V2XRefreshModel {
|
||||
@Override
|
||||
public void onNext(V2XRoadDataRes v2XRoadDataRes) {
|
||||
super.onNext(v2XRoadDataRes);
|
||||
Logger.d("queryRoadData:onSuccess", v2XRoadDataRes.toString());
|
||||
if (v2XRoadDataRes == null || v2XRoadDataRes.getResult() == null) {
|
||||
if (v2XRoadDataRes == null
|
||||
|| v2XRoadDataRes.getResult() == null
|
||||
|| v2XRoadDataRes.getResult().getTopPoint() == null
|
||||
|| v2XRoadDataRes.getResult().getTopPoint().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
if (v2XRoadDataRes.getResult().getPoiData() != null && v2XRoadDataRes.getResult().getPoiData().size() > 0) {
|
||||
V2XRecommendRouteEntity v2XRecommendRouteEntity = new V2XRecommendRouteEntity();
|
||||
V2XMessageEntity<V2XRecommendRouteEntity> v2xMessageEntity = new V2XMessageEntity<>();
|
||||
// 控制类型
|
||||
v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE);
|
||||
// 设置数据
|
||||
v2xMessageEntity.setContent(v2XRecommendRouteEntity);
|
||||
// 控制展示状态
|
||||
v2xMessageEntity.setShowState(true);
|
||||
MogoLocation mogoLocation = new MogoLocation();
|
||||
mogoLocation.setLongitude(v2XRoadDataRes.getResult().getTopPoint().get(0));
|
||||
mogoLocation.setLatitude(v2XRoadDataRes.getResult().getTopPoint().get(1));
|
||||
LocationUtils.geoCodeSearch(mogoLocation, new IMogoGeoSearchListener() {
|
||||
@Override
|
||||
public void onRegeocodeSearched(MogoRegeocodeResult regeocodeResult) {
|
||||
if (regeocodeResult == null || regeocodeResult.getRegeocodeAddress() == null) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
String province = regeocodeResult.getRegeocodeAddress().getProvince();
|
||||
String city = regeocodeResult.getRegeocodeAddress().getCity();
|
||||
v2XRoadDataRes.getResult().setFormatAddress(regeocodeResult.getRegeocodeAddress().getFormatAddress().replaceAll(province, "").replaceAll(city, ""));
|
||||
sendBroadcast(v2XRoadDataRes);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
} else if (v2XRoadDataRes.getResult().getIllegalParkingData() != null && v2XRoadDataRes.getResult().getIllegalParkingData().size() > 0) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
super.onError(e);
|
||||
Logger.d("queryRoadData:onError", e.toString());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void sendBroadcast(V2XRoadDataRes v2XRoadDataRes) {
|
||||
boolean isSendRecommendRoute = false;
|
||||
if (v2XRoadDataRes.getResult().getPoiData() != null && v2XRoadDataRes.getResult().getPoiData().size() > 0) {
|
||||
for (V2XRoadDataRes.ResultDTO.PoiDataDTO poiDataDTO : v2XRoadDataRes.getResult().getPoiData()) {
|
||||
if (!V2XPoiTypeEnum.FOURS_LIVING.equals(poiDataDTO.getPoiType())) {
|
||||
isSendRecommendRoute = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isSendRecommendRoute) {
|
||||
V2XMessageEntity<V2XRecommendRouteEntity> v2xMessageEntity = new V2XMessageEntity<>();
|
||||
// 控制类型
|
||||
v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE);
|
||||
// 设置数据
|
||||
v2xMessageEntity.setContent(new V2XRecommendRouteEntity(v2XRoadDataRes.getResult().getTopPoint(), v2XRoadDataRes.getResult().getFormatAddress()));
|
||||
// 控制展示状态
|
||||
v2xMessageEntity.setShowState(true);
|
||||
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
}
|
||||
|
||||
if (!isSendRecommendRoute && v2XRoadDataRes.getResult().getIllegalParkingData() != null && v2XRoadDataRes.getResult().getIllegalParkingData().size() > 0) {
|
||||
try {
|
||||
V2XMessageEntity<V2XPushMessageEntity> v2XMessageEntity = new V2XMessageEntity<>();
|
||||
v2XMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_PARKING);
|
||||
// 设置数据
|
||||
V2XRoadDataRes.ResultDTO.IllegalParkingDataDTO parkingDataDTO = v2XRoadDataRes.getResult().getIllegalParkingData().get(0);
|
||||
V2XPushMessageEntity pushMessageEntity = new V2XPushMessageEntity();
|
||||
pushMessageEntity.setAddress(parkingDataDTO.getAddr());
|
||||
pushMessageEntity.setAlarmContent("停车场推荐");
|
||||
pushMessageEntity.setLat(parkingDataDTO.getLat());
|
||||
pushMessageEntity.setLon(parkingDataDTO.getLon());
|
||||
String tts = "主人,我发现" + v2XRoadDataRes.getResult().getFormatAddress() + "停车容易违章,推荐你导航到附近停车场,开始导航吗?";
|
||||
AIAssist.getInstance(getContext()).speakTTSVoice(tts);
|
||||
pushMessageEntity.setExpireTime(20000);
|
||||
// 控制展示状态
|
||||
v2XMessageEntity.setContent(pushMessageEntity);
|
||||
v2XMessageEntity.setShowState(true);
|
||||
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.utils.TipToast;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_PARKING;
|
||||
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
|
||||
|
||||
/**
|
||||
@@ -74,7 +75,8 @@ public class V2XScenarioManager implements IV2XScenarioManager {
|
||||
case V2XMessageEntity.V2XTypeEnum.ALERT_SEEK_WARNING:
|
||||
mV2XScenario = new V2XSeekHelpScenario();
|
||||
break;
|
||||
case V2XMessageEntity.V2XTypeEnum.ALERT_FATIGUE_DRIVING:
|
||||
case V2XMessageEntity.V2XTypeEnum.ALERT_FATIGUE_DRIVING :
|
||||
case ALERT_RECOMMEND_PARKING :
|
||||
mV2XScenario = new V2XFatigueDrivingScenario();
|
||||
break;
|
||||
case V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_WINDOW_WARNING:
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.mogo.module.v2x.scenario.scene.destination;
|
||||
|
||||
/**
|
||||
* 基于目的地违章高发情况的停车推荐
|
||||
* http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48958095
|
||||
*/
|
||||
public class V2XRecommendParkingLotScenario {
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.mogo.module.v2x.scenario.scene.destination
|
||||
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.mogo.module.common.entity.V2XMessageEntity
|
||||
import com.mogo.module.common.entity.V2XRecommendRouteEntity
|
||||
@@ -8,7 +7,6 @@ import com.mogo.module.v2x.R
|
||||
import com.mogo.module.v2x.V2XServiceManager
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario
|
||||
import com.mogo.module.v2x.utils.V2XUtils
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener
|
||||
|
||||
/**
|
||||
* created by wujifei on 2020/12/29 17:57
|
||||
@@ -24,11 +22,9 @@ class V2XRecommendRouteScenario : AbsV2XScenario<V2XRecommendRouteEntity>() {
|
||||
v2XMessageEntity?.content?.let {
|
||||
if (v2XMessageEntity!!.isShowState) {
|
||||
if (!isSameScenario(v2XMessageEntity)) {
|
||||
// 更新要提醒的数据
|
||||
setV2XMessageEntity(v2XMessageEntity)
|
||||
show()
|
||||
} else {
|
||||
// 更新要提醒的数据
|
||||
setV2XMessageEntity(v2XMessageEntity)
|
||||
}
|
||||
} else {
|
||||
@@ -76,23 +72,5 @@ class V2XRecommendRouteScenario : AbsV2XScenario<V2XRecommendRouteEntity>() {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
val mogoTopViewStatusListener: IMogoTopViewStatusListener = object : IMogoTopViewStatusListener {
|
||||
override fun onViewAdded(view: View?) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun onViewRemoved(view: View?) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun beforeViewAddAnim(view: View?) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun beforeViewRemoveAnim(view: View?) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -47,17 +47,6 @@ class V2XRecommendRouteWindow @JvmOverloads constructor(
|
||||
// 配置列表朝向
|
||||
val layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
|
||||
rvRoadEventList?.setLayoutManager(layoutManager)
|
||||
rvRoadEventList?.addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
||||
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
|
||||
super.onScrollStateChanged(recyclerView, newState)
|
||||
if (recyclerView.childCount > 0) {
|
||||
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
||||
// 用户处于交互的时候延后隐藏时间
|
||||
// countDownV2XEvent()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -70,7 +59,9 @@ class V2XRecommendRouteWindow @JvmOverloads constructor(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun setWindowStatusListener(listener: V2XWindowStatusListener) {}
|
||||
override fun setWindowStatusListener(listener: V2XWindowStatusListener) {
|
||||
|
||||
}
|
||||
|
||||
override fun show(entity: V2XRecommendRouteEntity?) {
|
||||
entity.let {
|
||||
|
||||
@@ -25,7 +25,8 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
|
||||
* author : donghongyu
|
||||
* e-mail : 1358506549@qq.com
|
||||
* date : 2020/5/15 5:37 PM
|
||||
* desc : 疲劳驾驶场景
|
||||
* desc : 疲劳驾驶/目的地停车场推荐场景
|
||||
* 目的地停车场他推荐:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48958095
|
||||
* version: 1.0
|
||||
*/
|
||||
public class V2XFatigueDrivingScenario extends AbsV2XScenario<V2XPushMessageEntity> implements IMogoTopViewStatusListener {
|
||||
|
||||
@@ -57,7 +57,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
|
||||
private Button mBtnTriggerCallUserInfo;
|
||||
private Button mBtnTriggerEventUgc;
|
||||
private Button mBtnTriggerTrafficSearch;
|
||||
private Button mBtnTriggerPrejectedRoadEvent;
|
||||
private Button mBtnTriggerRecommendRouteEvent;
|
||||
private Button nBtnTriggerVR;
|
||||
|
||||
private Button btnTriggerRearVIPCarTip,
|
||||
@@ -118,7 +118,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
|
||||
mBtnTriggerEventUgc = findViewById(R.id.btnTriggerEventUgc);
|
||||
mBtnTriggerCallUserInfo = findViewById(R.id.btnTriggerCallUserInfo);
|
||||
mBtnTriggerTrafficSearch = findViewById(R.id.btnTriggerTrafficSearch);
|
||||
mBtnTriggerPrejectedRoadEvent = findViewById(R.id.btnTriggerPrejectedRoadEvent);
|
||||
mBtnTriggerRecommendRouteEvent = findViewById(R.id.btnTriggerRecommendRouteEvent);
|
||||
nBtnTriggerVR = findViewById(R.id.btnTriggerVR);
|
||||
|
||||
switch (showType) {
|
||||
@@ -279,7 +279,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
|
||||
|
||||
mBtnTriggerTrafficSearch.setOnClickListener(v -> V2XServiceManager.getIMogoTrafficUploadProvider().verifyCurrentTrafficStatus());
|
||||
|
||||
mBtnTriggerPrejectedRoadEvent.setOnClickListener(view -> {
|
||||
mBtnTriggerRecommendRouteEvent.setOnClickListener(view -> {
|
||||
V2XServiceManager.getV2XRefreshModel().queryRoadData("ZD802C1938L10797");
|
||||
});
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.annotation.LayoutRes;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
@@ -366,6 +367,7 @@ public final class ToastUtils {
|
||||
|
||||
static class SystemToast extends AbsToast {
|
||||
|
||||
@Keep
|
||||
SystemToast(Toast toast) {
|
||||
super(toast);
|
||||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.mogo.module.v2x.view;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Canvas;
|
||||
@@ -8,19 +7,11 @@ import android.graphics.Path;
|
||||
import android.graphics.RectF;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatCallback;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.skin.support.IMogoSkinCompatSupportable;
|
||||
import com.mogo.skin.support.IMogoSkinSupportInstaller;
|
||||
import com.mogo.skin.support.MogoSkinManager;
|
||||
import com.mogo.skin.support.SkinMode;
|
||||
import com.mogo.skin.support.helper.MogoSkinCompatBackgroundHelperDelegate;
|
||||
import com.mogo.skin.support.helper.MogoSkinCompatHelperDelegate;
|
||||
import com.mogo.skin.support.helper.MogoSkinCompatTextHelperDelegate;
|
||||
|
||||
/**
|
||||
* author : donghongyu
|
||||
|
||||
@@ -283,6 +283,13 @@ public class V2XVoiceConstants {
|
||||
public static final String COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP";
|
||||
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP_WORDS = {"没注意", "没看到", "没有施工","无施工", "很正常", "取消", "关闭"};
|
||||
|
||||
//免唤醒词
|
||||
public static final String V2X_CONFIRM_ACTION = "V2X_CONFIRM_ACTION";
|
||||
public static final String[] UNWAKE_NAVI_CONFIRM = {"开始导航", "开启导航", "好的", "开始", "导航", "确定", "确认", "好"};
|
||||
|
||||
public static final String V2X_CANCLE_ACTION = "V2X_CANCLE_ACTION";
|
||||
public static final String[] UNWAKE_NAVI_CANCLE = {"取消", "关闭", "不要", "不导航"};
|
||||
|
||||
|
||||
static {
|
||||
// 免唤醒 默认
|
||||
@@ -321,6 +328,9 @@ public class V2XVoiceConstants {
|
||||
sVoiceCmds.put(COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_YES_UN_WAKEUP, COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_YES_UN_WAKEUP_WORDS);
|
||||
sVoiceCmds.put(COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP, COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP_WORDS);
|
||||
|
||||
sVoiceCmds.put(V2X_CONFIRM_ACTION, UNWAKE_NAVI_CONFIRM);
|
||||
sVoiceCmds.put(V2X_CANCLE_ACTION, UNWAKE_NAVI_CANCLE);
|
||||
|
||||
|
||||
//2020-6-24 顺义演示需求添加,现合并至launcher 更新时间:2020-08-25
|
||||
sVoiceCmds.put(COMMAND_ZHIDAO_V2X_CALL_FRONT_CAR_DEMO_UN_WAKEUP, COMMAND_ZHIDAO_V2X_CALL_FRONT_CAR_DEMO_UN_WAKEUP_WORDS);
|
||||
|
||||
Reference in New Issue
Block a user