Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
tongchenfei
2020-11-24 17:29:17 +08:00
32 changed files with 232 additions and 152 deletions

View File

@@ -62,7 +62,9 @@ public class MogoApplication extends AbsMogoApplication {
crashSystem.setDebug( BuildConfig.DEBUG );
Logger.init( BuildConfig.DEBUG ? LogLevel.VERBOSE : LogLevel.VERBOSE );
MogoModulePaths.addModule( new MogoModule( PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME ) );
if( DebugConfig.isMapBased() ){
MogoModulePaths.addModule( new MogoModule( PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME ) );
}
MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_AGREEMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME ) );
if ( DebugConfig.isLauncher() ) {
@@ -72,7 +74,7 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addModule( new MogoModule( ServiceConst.PATH_TTS_CONFIG, ServiceConst.PATH_TTS_CONFIG ) );
MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS ) );
if ( DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD ) {
if ( DebugConfig.isMapBased() ) {
MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) );
}

View File

@@ -338,11 +338,13 @@ public class NaviClient implements IMogoNavi {
return;
}
if ( mAimlessModeStatus && !isNaviing() ) {
mAMapNavi.startSpeak();
mAMapNavi.startAimlessMode( AimLessMode.CAMERA_AND_SPECIALROAD_DETECTED );
mAimlessStatus = true;
Logger.d( TAG, "开启巡航成功" );
} else {
mAimlessStatus = false;
mAMapNavi.stopSpeak();
Logger.d( TAG, "开启巡航失败" );
}
}
@@ -353,6 +355,7 @@ public class NaviClient implements IMogoNavi {
return;
}
mAMapNavi.stopAimlessMode();
mAMapNavi.stopSpeak();
mAimlessStatus = false;
Logger.d( TAG, "关闭巡航成功" );
}

View File

@@ -75,9 +75,9 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi
mAnim = new AnimWrapper( mAIAssist );
boolean naviStatus = AppServiceHandler.getApis().getMapServiceApi().getNavi( getContext() ).isNaviing();
if ( naviStatus ) {
setCurrentXiaoZhiEmoji( AnimRes.EmojiType.Navigation );
}
// if ( naviStatus ) {
// setCurrentXiaoZhiEmoji( AnimRes.EmojiType.Navigation );
// }
mAIAssist.setOnClickListener( new OnAiAssistClickListener() );
mAIAssistContainer.setOnClickListener( view -> {
@@ -109,12 +109,12 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi
@Override
public void setCurrentXiaoZhiEmoji( AnimRes.EmojiType type ) {
boolean started = mAnim.isStarted();
mAnim.stop();
mAnim.setCurrentAnim( type );
if ( started ) {
mAnim.start();
}
// boolean started = mAnim.isStarted();
// mAnim.stop();
// mAnim.setCurrentAnim( type );
// if ( started ) {
// mAnim.start();
// }
}
@Override

View File

@@ -4,9 +4,6 @@ import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_LAUNCHER_MAIN
import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager
import com.mogo.module.common.utils.CarSeries
import com.mogo.module.common.utils.CarSeries.CAR_SERIES_C80X
import com.mogo.module.common.utils.CarSeries.CAR_SERIES_F80X
import com.mogo.module.guide.GuideConstant.Companion.PATH_GUIDE_MODULE_NAME
import com.mogo.module.guide.fragment.GuideFragment
import com.mogo.module.guide.util.SharedPreferenceUtil.hasGuide
@@ -50,9 +47,7 @@ object GuideBizManager {
Logger.d("GuideBizManager", "removeGuideFragmentToStack")
setGuideFinish()
setGuideRecord()
serviceApi?.let {
it.fragmentManagerApi.pop()
}
serviceApi?.fragmentManagerApi?.pop()
serviceApi?.adasControllerApi?.showADAS()
}

View File

@@ -39,6 +39,7 @@ dependencies {
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.arouter
implementation rootProject.ext.dependencies.callchatprovider
annotationProcessor rootProject.ext.dependencies.aroutercompiler
compileOnly rootProject.ext.dependencies.adasapi
compileOnly rootProject.ext.dependencies.adasconfigapi

View File

@@ -21,6 +21,7 @@ import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.api.CallChatApi;
import com.mogo.module.common.map.MapCenterPointStrategy;
import com.mogo.module.common.map.Scene;
import com.mogo.module.main.cards.MogoModulesManager;
@@ -111,6 +112,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
FloatingViewHandler.init( mFloatingLayout );
mServiceApis.getOnlineCarPanelApi().initContainer( R.id.module_main_id_message_history_fragment_container, this );
CallChatApi.getInstance().getApiProvider().initVehicleTeamContainer("init", R.id.module_main_id_message_history_fragment_container, this);
}
// 隐藏布局
@@ -277,7 +279,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
protected void onResume() {
super.onResume();
mMogoStatusManager.setMainPageResumeStatus( TAG, true );
mMogoStatusManager.setMainPageLaunchedStatus( TAG, true );
mMogoStatusManager.setMainPageIsBackgroundStatus( TAG, false );
if ( mCoverUpLayout.getVisibility() != View.VISIBLE ) {
mServiceApis.getAdasControllerApi().showADAS();
@@ -291,8 +292,10 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
protected void onPause() {
super.onPause();
mMogoStatusManager.setMainPageResumeStatus( TAG, false );
mMogoStatusManager.setMainPageLaunchedStatus( TAG, false );
mServiceApis.getAuthManagerApi().dismiss();
if ( shouldCloseADASPanelWhenPause() ) {
mServiceApis.getAdasControllerApi().closeADAS();
}
if ( mServiceApis.getLauncherApi() != null ) {
mServiceApis.getLauncherApi().setFloatButtonVisible( true );
}
@@ -309,9 +312,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
protected void onStop() {
super.onStop();
mMogoStatusManager.setMainPageIsBackgroundStatus( TAG, true );
if ( shouldCloseADASPanelWhenPause() ) {
mServiceApis.getAdasControllerApi().closeADAS();
}
}
@Override
@@ -368,6 +368,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mServiceApis.getRefreshStrategyControllerApi().clearAllData();
AIAssist.getInstance( this ).release();
mServiceApis.getOnlineCarPanelApi().clear();
CallChatApi.getInstance().getApiProvider().initVehicleTeamContainer("init", 0, null);
ContextHolderUtil.releaseContext();
MogoModulesManager.getInstance().onDestroy();
SchemeIntent.getInstance().clear();

View File

@@ -755,6 +755,10 @@ public class MogoServices implements IMogoMapListener,
return;
}
if (!mStatusManager.isMainPageOnResume()) {
return;
}
if (mStatusManager.isV2XShow()) {
return;
}

View File

@@ -6,7 +6,7 @@ public enum LauncherCardRefreshType {
Weather( "News", "weather", "天气" ),
News( "NearRoads", "news", "新闻" ),
NearRoads( "ExplorerWay", "nearRoads", "近路" ),
// TrafficRestriction( "NearRoads", "trafficRestriction" ),
TrafficRestriction( "NearRoads", "trafficRestriction", "限行" ),
ExplorerWay( "OnlineCar", "friendAndPois", "道路事件" ),
OnlineCar( "Weather", "friendAndPois", "车友" );

View File

@@ -33,6 +33,7 @@ import com.mogo.utils.storage.SharedPrefsMgr;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -455,6 +456,9 @@ class LauncherCardRefresher {
if ( trafficRestriction == null || TextUtils.isEmpty( trafficRestriction.tts ) ) {
continue;
}
final Map< String, Object > properties = new HashMap<>();
properties.put( "type", LauncherCardRefreshType.TrafficRestriction.name() );
MogoApisHandler.getInstance().getApis().getAnalyticsApi().track( "v2x_play", properties );
speakTTS( trafficRestriction.tts, false );
return;
}
@@ -618,6 +622,10 @@ class LauncherCardRefresher {
*/
private void writeNextLoadType( LauncherCardRefreshType type ) {
SharedPrefsMgr.getInstance( mContext ).putString( KEY_LAST_LOAD_TTS_TYPE, type.getNext() );
final Map< String, Object > properties = new HashMap<>();
properties.put( "type", type.name() );
MogoApisHandler.getInstance().getApis().getAnalyticsApi().track( "v2x_play", properties );
Logger.d( TAG, "本次播报:%s下次播报%s", type.name(), LauncherCardRefreshType.valueOf( type.getNext() ).name() );
SharedPrefsMgr.getInstance( mContext ).putLong( KEY_LAST_LOAD_TTS_DATE, System.currentTimeMillis() );
}

View File

@@ -75,30 +75,37 @@ public class GlobalUnwakeManager implements IProvider, IMogoIntentListener, IMog
break;
case VOICE_QUERY_HISTORY_INDEX:
Log.d("语音指令","VOICE_QUERY_HISTORY_INDEX");
Intent startForHis = new Intent( Intent.ACTION_VIEW );
startForHis.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
startForHis.setData( Uri.parse( "mogo://launcher/main/switch2?type=showHistoryPanel" ) );
context.startActivity( startForHis );
showPanelByStatus("showHistoryPanel", 0);
break;
case VOICE_QUERY_SURROUNDING_INDEX:
Log.d("语音指令","VOICE_QUERY_SURROUNDING_INDEX");
Intent startForSurrounding = new Intent( Intent.ACTION_VIEW );
startForSurrounding.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
startForSurrounding.setData( Uri.parse( "mogo://launcher/main/switch2?type=showSurroundingPanel" ) );
context.startActivity( startForSurrounding );
showPanelByStatus("showSurroundingPanel", 1);
break;
case VOICE_QUERY_HEART_INDEX:
Log.d("语音指令","VOICE_QUERY_HEART_INDEX");
Intent start = new Intent( Intent.ACTION_VIEW );
start.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
start.setData( Uri.parse( "mogo://launcher/main/switch2?type=showSharePanel" ) );
context.startActivity( start );
showPanelByStatus("showSharePanel", 2);
break;
default:
break;
}
}
/**
* 根据主页状态调用不同打开方式
* @param target 面板类型
* @param type 面板位置索引
*/
private void showPanelByStatus(String target, int type){
if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageOnResume() ) {
MogoApisHandler.getInstance().getApis().getEventPanelManager().showPanelWithSelectedItem(type);
} else {
Intent start = new Intent( Intent.ACTION_VIEW );
start.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
start.setData( Uri.parse( "mogo://launcher/main/switch2?type="+target ) );
context.startActivity( start );
}
}
@Override
public void onCmdSelected(String cmd) {
Logger.d(TAG, "收到免唤醒词指令: " + cmd);

View File

@@ -77,17 +77,31 @@ public class V2XSurroundingDetailAdapter extends RecyclerView.Adapter<V2XSurroun
mAddressTv.setText(exploreWay.getAddr());
mTimeTv.setText(DateTimeUtils.getTimeText(exploreWay.getGenerateTime(), DateTimeUtils.MM_Yue_dd_Ri_HH_mm));
showView(exploreWay.isFabulous());
mHeartLikeView.setOnClickCallListener(v -> {
Logger.d(V2XConst.MODULE_NAME, "反馈有用");
Logger.d(V2XConst.MODULE_NAME, "反馈有用 position = " + position);
roadReportTrue(exploreWay);
showView(true);
});
mUnHeartLikeView.setOnClickCallListener(v -> {
Logger.d(V2XConst.MODULE_NAME, "反馈无用");
Logger.d(V2XConst.MODULE_NAME, "反馈无用 position = " + position);
roadReportErr(exploreWay);
showView(true);
});
}
private void showView(boolean isAlreadyShow) {
if (isAlreadyShow) {
mHeartLikeView.setVisibility(View.GONE);
mUnHeartLikeView.setVisibility(View.GONE);
} else {
mHeartLikeView.setVisibility(View.VISIBLE);
mUnHeartLikeView.setVisibility(View.VISIBLE);
}
}
/**
* 反馈路况正确
*/

View File

@@ -32,7 +32,7 @@ import com.mogo.module.v2x.voice.V2XVoiceManager;
public class V2XFatigueDrivingVH extends V2XBaseViewHolder<V2XEventShowEntity> {
private TextView mTvAddress, mTvAddressDistance;
private ImageView mIvToNav;
private ImageView mIvToNav, mIvClose;
private MarkerExploreWay mNoveltyInfo;
private V2XPushMessageEntity mV2XPushMessageEntity;
@@ -45,7 +45,9 @@ public class V2XFatigueDrivingVH extends V2XBaseViewHolder<V2XEventShowEntity> {
mTvAddress = itemView.findViewById(R.id.tvAddress);
mTvAddressDistance = itemView.findViewById(R.id.tvAddressDistance);
mIvToNav = itemView.findViewById(R.id.ivToNav);
mIvClose = itemView.findViewById(R.id.ivClose);
mIvToNav.setOnClickListener(v -> triggerStartNavi(mNoveltyInfo));
mIvClose.setOnClickListener(v -> V2XFatigueDrivingScenario.getInstance().close());
// 设置视图状态监听
itemView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {

View File

@@ -0,0 +1,10 @@
package com.mogo.module.v2x.entity.panel;
import java.io.Serializable;
/**
* 返回刷新
*/
public class BackRefreshInfo implements Serializable {
}

View File

@@ -9,7 +9,6 @@ import android.text.Spanned
import android.text.style.AbsoluteSizeSpan
import android.text.style.ForegroundColorSpan
import android.text.style.StyleSpan
import android.util.Log
import android.view.View
import android.widget.ImageView
import android.widget.RadioButton
@@ -31,6 +30,7 @@ import com.mogo.module.v2x.V2XConst.MODULE_NAME
import com.mogo.module.v2x.V2XServiceManager
import com.mogo.module.v2x.adapter.V2XEventPagerAdapter
import com.mogo.module.v2x.adapter.V2XSurroundingDetailAdapter
import com.mogo.module.v2x.entity.panel.BackRefreshInfo
import com.mogo.module.v2x.entity.panel.SurroundingConstruction
import com.mogo.module.v2x.presenter.EventPanelPresenter
import com.mogo.module.v2x.utils.TrackUtils
@@ -211,6 +211,7 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
}
mBackImage?.setOnClickListener {
EventBus.getDefault().post(BackRefreshInfo())
showBaseUi(true)
}
@@ -257,23 +258,11 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
* 语音查询热心指数需求
* */
fun showPanelWithSelectedItem(item: Int) {
if (isPanelShow()) {
try {
when (item) {
0 -> mV2XScenarioHistoryFragment.ttsForVoiceCheckout()
1 -> mV2XSurroundingFragment.ttsForVoiceCheckout()
else -> mV2XShareEventsFragment.ttsForVoiceCheckout()
}
} catch (e: java.lang.Exception) {
}
} else {
showPanel()
selectWithItem(item)
}
showPanel()
selectWithItem(item)
}
private fun initDetail() {
mDetailRecyclerView!!.addItemDecoration(SpacesItemDecoration(resources.getDimension(R.dimen.share_item_padding).toInt()))
mSurroundingDetailAdapter = V2XSurroundingDetailAdapter(activity, markerExploreWays)
@@ -355,7 +344,11 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
0 -> {
try {
mV2XScenarioHistoryFragment.fromVoice = true
mRbScenarioHistory?.isChecked = true
if (mRbScenarioHistory?.isChecked == true) {
mV2XScenarioHistoryFragment.ttsForVoiceCheckout()
} else {
mRbScenarioHistory?.isChecked = true
}
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
@@ -363,7 +356,11 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
1 -> {
try {
mV2XSurroundingFragment.fromVoice = true
mRbSurroundingEvent?.isChecked = true
if (mRbSurroundingEvent?.isChecked == true) {
mV2XSurroundingFragment.ttsForVoiceCheckout()
} else {
mRbSurroundingEvent?.isChecked = true
}
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
@@ -371,7 +368,11 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
2 -> {
try {
mV2XShareEventsFragment.fromVoice = true
mRbShareEvents?.isChecked = true
if (mRbShareEvents?.isChecked == true) {
mV2XShareEventsFragment.ttsForVoiceCheckout()
} else {
mRbShareEvents?.isChecked = true
}
} catch (e: java.lang.Exception) {
e.printStackTrace()
}

View File

@@ -42,6 +42,7 @@ import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.adapter.V2XShareEventAdapter;
import com.mogo.module.v2x.adapter.V2XSurroundingAdapter;
import com.mogo.module.v2x.adapter.V2XSurroundingDetailAdapter;
import com.mogo.module.v2x.entity.panel.BackRefreshInfo;
import com.mogo.module.v2x.entity.panel.SurroundingConstruction;
import com.mogo.module.v2x.listener.SurroundingItemClickListener;
import com.mogo.module.v2x.presenter.SurroundingEventPresenter;
@@ -55,6 +56,8 @@ import com.mogo.utils.WorkThreadHandler;
import com.mogo.utils.logger.Logger;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.Collection;
@@ -125,7 +128,6 @@ public class V2XSurroundingFragment extends MvpFragment<SurroundingEventView, Su
mRecyclerView.setAdapter(mAdapter);
initData();
}
@NonNull
@@ -137,6 +139,7 @@ public class V2XSurroundingFragment extends MvpFragment<SurroundingEventView, Su
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
EventBus.getDefault().register(this);
surroundingEventPresenter = new SurroundingEventPresenter(getContext(), this);
mApis = (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(getContext());
@@ -304,6 +307,15 @@ public class V2XSurroundingFragment extends MvpFragment<SurroundingEventView, Su
return poiTypes;
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onBackRefresh(final BackRefreshInfo event) {
if (event == null) {
return;
}
initData();
}
/**
* 处理marker的显示
*
@@ -445,6 +457,7 @@ public class V2XSurroundingFragment extends MvpFragment<SurroundingEventView, Su
@Override
public void onDestroyView() {
super.onDestroyView();
EventBus.getDefault().unregister(this);
}

View File

@@ -16,6 +16,9 @@ import com.mogo.module.common.entity.MarkerLocation;
import com.mogo.module.common.entity.MarkerNoveltyInfo;
import com.mogo.module.common.entity.MarkerOnlineCar;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.common.entity.V2XPoiTypeEnum;
import com.mogo.module.common.entity.V2XRoadEventEntity;
import com.mogo.module.common.utils.CarSeries;
import com.mogo.module.service.ServiceConst;
import com.mogo.module.service.Utils;
import com.mogo.module.service.marker.IMarkerView;
@@ -25,8 +28,6 @@ import com.mogo.module.v2x.MoGoV2XServicePaths;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.entity.net.V2XSpecialCarRes.V2XMarkerEntity;
import com.mogo.module.common.entity.V2XPoiTypeEnum;
import com.mogo.module.common.entity.V2XRoadEventEntity;
import com.mogo.module.v2x.listener.V2XMarkerClickListener;
import com.mogo.module.v2x.manager.IMoGoV2XMarkerManager;
import com.mogo.module.v2x.marker.V2XMarkerAdapter;
@@ -250,7 +251,13 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager {
optionsRipple.anchor(0.5f, 0.5f);
// 由于性能问题D车机不使用事件扩散动画
optionsRipple.icon(V2XMarkerAdapter.getV2XRoadEventViewPng(context, roadEventEntity));
if (!CarSeries.isF8xxSeries()) {
optionsRipple.icon(V2XMarkerAdapter.getV2XRoadEventViewPng(context, roadEventEntity));
} else {
optionsRipple.icons(V2XMarkerAdapter.getV2XRoadEventViewGif(context, roadEventEntity));
optionsRipple.period(3);
}
mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple);
// 当前Marker设置为最上面
mAlarmInfoMarker.setToTop();
@@ -526,7 +533,12 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager {
optionsRipple.anchor(0.5f, 0.5f);
// 由于性能问题D车机不使用事件扩散动画
optionsRipple.icon(V2XMarkerAdapter.getV2XRoadEventViewPng(context, roadEventEntity));
if (!CarSeries.isF8xxSeries()) {
optionsRipple.icon(V2XMarkerAdapter.getV2XRoadEventViewPng(context, roadEventEntity));
} else {
optionsRipple.icons(V2XMarkerAdapter.getV2XRoadEventViewGif(context, roadEventEntity));
optionsRipple.period(3);
}
mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple);
// 当前Marker设置为最上面

View File

@@ -6,6 +6,7 @@ import android.graphics.Bitmap
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.module.common.entity.MarkerExploreWay
import com.mogo.module.common.entity.V2XPoiTypeEnum
import com.mogo.module.common.entity.V2XRoadEventEntity
import com.mogo.module.service.utils.ViewUtils
@@ -101,17 +102,14 @@ class V2XMarkerRoadEventView(context: Context, alarmInfo: V2XRoadEventEntity) :
// 故障车辆
V2XPoiTypeEnum.ALERT_CAR_TROUBLE_WARNING.toString() -> {
ivCar.setImageResource(R.drawable.icon_car_red)
ivCarTop.visibility = View.VISIBLE
}
// 取快递
V2XPoiTypeEnum.ALERT_TRAFFIC_EXPRESS -> {
ivCar.setImageResource(R.drawable.v_to_x_marker_express)
ivBg.visibility = View.GONE
}
// 顺风车
V2XPoiTypeEnum.ALERT_TRAFFIC_TAXI -> {
ivCar.setImageResource(R.drawable.v_to_x_marker_taxi)
ivBg.visibility = View.GONE
}
}
}

View File

@@ -41,7 +41,7 @@ public class V2XAnimationScenario extends AbsV2XScenario<V2XPushMessageEntity> {
@Override
public void init(@Nullable V2XMessageEntity<V2XPushMessageEntity> v2XMessageEntity) {
if (!isSameScenario(v2XMessageEntity)
&& V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
&& V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
boolean isV2XAnimationShow = V2XServiceManager.getMoGoV2XStatusManager().isV2XAnimationShow();
if (isV2XAnimationShow) {
close();

View File

@@ -59,7 +59,7 @@ public class V2XFatigueDrivingScenario extends AbsV2XScenario<V2XPushMessageEnti
.registerWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_NAVI, mNaviCb)
.registerUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_NAVI_UN_WAKEUP, mNaviCb);
if (v2XMessageEntity.isShowState()
&& V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
&& V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
show();
}
}

View File

@@ -49,7 +49,7 @@ public class V2XPushLiveCarScenario extends AbsV2XScenario<V2XPushMessageEntity>
@Override
public void init(@Nullable V2XMessageEntity<V2XPushMessageEntity> v2XMessageEntity) {
if (!isSameScenario(v2XMessageEntity)
&& V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
&& V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
boolean isWindowShow = V2XServiceManager.getMoGoV2XStatusManager().isLeftLiveVideoShow();
if (isWindowShow) {
close();

View File

@@ -51,7 +51,7 @@ public class V2XIllegalParkScenario extends AbsV2XScenario<List<MarkerExploreWay
@Override
public void show() {
if (V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
if (V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
drawPOI();
}
showWindow();
@@ -75,7 +75,7 @@ public class V2XIllegalParkScenario extends AbsV2XScenario<List<MarkerExploreWay
v2XRoadEventEntity.setAlarmContent("违章停车");
v2XRoadEventEntity.setExpireTime(20000);
v2XRoadEventEntity.setPoiType(V2XPoiTypeEnum.ALERT_ILLEGAL_PARK);
if (V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
if (V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
v2XRoadEventEntity.setTts(markerExploreWay.getAddr() + "可能被罚违章停车,您可以说,有用或没用来帮助其它车友。");
((V2XIllegalParkWindow) getV2XWindow()).show(markerExploreWay, true);
TrackUtils.trackV2xRoadShow(markerExploreWay.getInfoId(), V2XPoiTypeEnum.ALERT_ILLEGAL_PARK, "1");

View File

@@ -51,7 +51,7 @@ public class V2XPushEventScenario extends AbsV2XScenario<V2XPushMessageEntity> i
Logger.w(MODULE_NAME, "处理推送场景:" + GsonUtil.jsonFromObject(v2XMessageEntity));
if (!isSameScenario(v2XMessageEntity)
&& V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
&& V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
setV2XMessageEntity(v2XMessageEntity);
show();
} else {

View File

@@ -96,7 +96,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
saveLocalStory(V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING,
getV2XMessageEntity().getContent().getNoveltyInfo());
if (V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
if (V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
showWindow();
}
@@ -197,7 +197,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
@Override
public void onViewAdded(View view) {
Logger.d(MODULE_NAME, "展示 Window 动画结束");
if (V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
if (V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
if (getV2XMessageEntity() != null && getV2XMessageEntity().isNeedAddLine() == true) {
drawPOI();
}

View File

@@ -81,7 +81,7 @@ public class V2XSeekHelpScenario extends AbsV2XScenario<List<V2XMarkerEntity>> i
saveLocalStory(V2XMessageEntity.V2XTypeEnum.ALERT_SEEK_WARNING, mV2XPushMessageEntity);
if (V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
if (V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
if (getV2XMessageEntity() != null &&
!V2XServiceManager.getMoGoV2XStatusManager().isOtherSeekHelpWindowShow()) {
show();

View File

@@ -51,7 +51,7 @@ public class V2XEventUgcScenario extends AbsV2XScenario<V2XRoadEventEntity> impl
setV2XMessageEntity(v2XMessageEntity);
if (v2XMessageEntity != null) {
if (v2XMessageEntity.isShowState()
&& V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) {
&& V2XServiceManager.getMoGoStatusManager().isMainPageOnResume()) {
show();
}
}

View File

@@ -10,7 +10,8 @@
android:paddingTop="@dimen/dp_42"
android:paddingEnd="@dimen/dp_62"
android:paddingBottom="@dimen/dp_42"
app:roundLayoutRadius="@dimen/dp_40">
app:roundLayoutRadius="@dimen/dp_40"
tools:layout_height="wrap_content">
<ImageView
android:id="@+id/ivIconP"
@@ -26,12 +27,12 @@
android:layout_width="@dimen/v2x_driving_width"
android:layout_height="@dimen/v2x_driving_heigt"
android:layout_marginStart="@dimen/dp_30"
android:gravity="center"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/bg_fatigue_driving"
android:gravity="center"
android:text="@string/recommended_route"
android:textColor="@color/v2x_item_white"
android:textSize="@dimen/v2x_recommond_route_size"
android:layout_marginTop="@dimen/dp_20"
android:text="@string/recommended_route"
app:layout_constraintBottom_toTopOf="@+id/tvAddress"
app:layout_constraintStart_toEndOf="@+id/ivIconP"
app:layout_constraintTop_toTopOf="parent" />
@@ -40,6 +41,7 @@
android:id="@+id/tvAddress"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_30"
android:layout_marginBottom="@dimen/dp_20"
android:textColor="@color/v2x_FFF_333"
@@ -69,8 +71,18 @@
android:id="@+id/ivToNav"
android:layout_width="@dimen/module_v2x_event_button_size"
android:layout_height="@dimen/module_v2x_event_button_size"
android:layout_marginEnd="@dimen/dp_40"
android:src="@drawable/selector_nav_btn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/ivClose"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/ivClose"
android:layout_width="@dimen/module_v2x_event_button_size"
android:layout_height="@dimen/module_v2x_event_button_size"
android:src="@drawable/v2x_selector_icon_report_err"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View File

@@ -8,69 +8,79 @@
android:paddingStart="@dimen/dp_62"
android:paddingTop="@dimen/dp_42"
android:paddingEnd="@dimen/dp_62"
android:paddingBottom="@dimen/dp_42">
android:paddingBottom="@dimen/dp_42"
tools:layout_height="wrap_content">
<TextView
android:id="@+id/tvImgTextContent"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="@dimen/dp_7"
android:background="@drawable/bg_v2x_event_type_orange"
android:gravity="center_vertical"
android:paddingStart="@dimen/dp_23"
android:paddingTop="@dimen/dp_5"
android:paddingEnd="@dimen/dp_23"
android:paddingBottom="@dimen/dp_5"
android:text="求助信息"
android:textColor="@android:color/white"
android:textSize="@dimen/module_v2x_event_type_title_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
app:layout_constraintTop_toTopOf="parent">
<com.mogo.service.imageloader.MogoImageView
android:id="@+id/ivFaultHelpHead"
android:layout_width="@dimen/module_v2x_event_help_head_size"
android:layout_height="@dimen/module_v2x_event_help_head_size"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginTop="@dimen/dp_21"
android:layout_marginEnd="@dimen/dp_31"
app:layout_constraintEnd_toEndOf="@+id/rlRoadEventList"
app:layout_constraintStart_toStartOf="@+id/tvImgTextContent"
app:layout_constraintTop_toBottomOf="@+id/tvImgTextContent"
app:miv_borderColor="#4cffffff"
app:miv_failureHolder="@drawable/icon_default_user_head"
app:miv_overlayImageId="@drawable/icon_default_user_head"
app:miv_placeHolder="@drawable/icon_default_user_head"
app:miv_shape="circle"
app:miv_shapeBorderWidth="@dimen/dp_4" />
<TextView
android:id="@+id/tvImgTextContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="@dimen/dp_7"
android:background="@drawable/bg_v2x_event_type_orange"
android:gravity="center_vertical"
android:paddingStart="@dimen/dp_23"
android:paddingTop="@dimen/dp_5"
android:paddingEnd="@dimen/dp_23"
android:paddingBottom="@dimen/dp_5"
android:text="求助信息"
android:textColor="@android:color/white"
android:textSize="@dimen/module_v2x_event_type_title_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/tvFaultHelpName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:textColor="@color/v2x_FFF_333"
android:textSize="@dimen/module_v2x_event_help_title_text_size"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@id/ivFaultHelpHead"
app:layout_constraintTop_toTopOf="@+id/ivFaultHelpHead"
app:layout_constraintVertical_chainStyle="packed"
app:layout_goneMarginStart="@dimen/dp_22"
tools:text="车主昵称" />
<com.mogo.service.imageloader.MogoImageView
android:id="@+id/ivFaultHelpHead"
android:layout_width="@dimen/module_v2x_event_help_head_size"
android:layout_height="@dimen/module_v2x_event_help_head_size"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginTop="@dimen/dp_21"
android:layout_marginEnd="@dimen/dp_31"
app:layout_constraintEnd_toEndOf="@+id/rlRoadEventList"
app:layout_constraintStart_toStartOf="@+id/tvImgTextContent"
app:layout_constraintTop_toBottomOf="@+id/tvImgTextContent"
app:miv_borderColor="#4cffffff"
app:miv_failureHolder="@drawable/icon_default_user_head"
app:miv_overlayImageId="@drawable/icon_default_user_head"
app:miv_placeHolder="@drawable/icon_default_user_head"
app:miv_shape="circle"
app:miv_shapeBorderWidth="@dimen/dp_4" />
<TextView
android:id="@+id/tvFaultHelpEventTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.59"
android:textColor="@color/v2x_FFF_999"
android:textSize="@dimen/module_v2x_event_help_sub_title_text_size"
app:layout_constraintStart_toStartOf="@id/tvFaultHelpName"
app:layout_constraintTop_toBottomOf="@id/tvFaultHelpName"
tools:text="15:30发布求助信息" />
<TextView
android:id="@+id/tvFaultHelpName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:textColor="@color/v2x_FFF_333"
android:textSize="@dimen/module_v2x_event_help_title_text_size"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@id/ivFaultHelpHead"
app:layout_constraintTop_toTopOf="@+id/ivFaultHelpHead"
app:layout_constraintVertical_chainStyle="packed"
app:layout_goneMarginStart="@dimen/dp_22"
tools:text="车主昵称" />
<TextView
android:id="@+id/tvFaultHelpEventTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.59"
android:textColor="@color/v2x_FFF_999"
android:textSize="@dimen/module_v2x_event_help_sub_title_text_size"
app:layout_constraintStart_toStartOf="@id/tvFaultHelpName"
app:layout_constraintTop_toBottomOf="@id/tvFaultHelpName"
tools:text="15:30发布求助信息" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tvFaultHelpDistance"

View File

@@ -87,7 +87,7 @@
android:layout_width="@dimen/dp_79"
android:layout_height="@dimen/dp_79"
android:layout_marginRight="@dimen/dp_50"
android:background="@drawable/v2x_selector_colse"
android:background="@drawable/v2x_selector_close"
app:layout_constraintBottom_toBottomOf="@+id/rgTabSelect"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/rgTabSelect" />

View File

@@ -24,24 +24,11 @@
android:id="@+id/ivCar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rotation="90"
android:rotation="45"
app:layout_constraintBottom_toBottomOf="@+id/ivBg"
app:layout_constraintEnd_toEndOf="@+id/ivBg"
app:layout_constraintStart_toStartOf="@+id/ivBg"
app:layout_constraintTop_toTopOf="@+id/ivBg"
tools:src="@drawable/v_to_x_warning_car_red" />
<ImageView
android:id="@+id/ivCarTop"
android:layout_width="@dimen/dp_88"
android:layout_height="@dimen/dp_138"
android:layout_gravity="center"
android:src="@drawable/v_to_x_marker_car_error"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/ivBg"
app:layout_constraintEnd_toEndOf="@+id/ivBg"
app:layout_constraintStart_toStartOf="@+id/ivBg"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -24,9 +24,9 @@
android:id="@+id/btnCloseWindow"
android:layout_width="@dimen/dp_88"
android:layout_height="@dimen/dp_88"
android:layout_marginEnd="@dimen/dp_28"
android:layout_marginEnd="@dimen/dp_32"
android:layout_marginBottom="@dimen/dp_40"
android:background="@drawable/v2x_panel_close"
android:background="@drawable/v2x_selector_close"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent" />