修复首次进入VR模式效果会先从2D过度的问题

This commit is contained in:
董宏宇
2021-06-18 20:03:25 +08:00
parent 6fa24af593
commit 5a339383e9
4 changed files with 17 additions and 26 deletions

View File

@@ -353,6 +353,9 @@ public class AMapViewWrapper implements IMogoMapView,
setUIMode(ui);
break;
case Type_VR:
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
mMapView.getMapAutoViewHelper().setScaleVRMode(true);
}
mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_VR);
return;
case Type_Light:

View File

@@ -380,10 +380,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
mSwitchMapModeImage = (ImageView) findViewById(R.id.module_switch_model_icon);
mSwitchMapModeLayout.setOnClickListener(clickListener);
mSwitchText = (TextView) findViewById(R.id.module_switch_model_text);
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
enterVrMode();
}
}
private int debugPanelClickCount = 0;
@@ -393,7 +389,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
private Group groupFix;
private void enterVrMode() {
if (!localIsVrMode) {
tvEnterVrMode.setVisibility(View.GONE);
mMove2CurrentLocation.setVisibility(View.GONE);
mUploadRoadCondition.setVisibility(View.GONE);
@@ -415,11 +410,9 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
flSpeed.setVisibility(View.VISIBLE);
mSwitchMapModeLayout.setVisibility(View.VISIBLE);
mApis.getV2XListenerManager().changeTipWindowStatusForListener(ACTION_V2X_REMOVE_TIP_WINDOW);
}
}
private void exitVrMode() {
if (localIsVrMode) {
EntranceViewHolder.getInstance().forceHideNoticeView();
tvEnterVrMode.setVisibility(View.VISIBLE);
mMove2CurrentLocation.setVisibility(View.VISIBLE);
@@ -443,7 +436,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
flSpeed.setVisibility(View.GONE);
mSwitchMapModeLayout.setVisibility(View.GONE);
clTrafficLight.setVisibility(View.GONE);
}
}
private void debugCrashWarn() {
@@ -722,29 +714,21 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
TopViewAnimHelper.getInstance().setIMogoMapUIController(mMApUIController);
TopViewNoLinkageAnimHelper.getInstance().setIMogoMapUIController(mMApUIController);
// 进入vr模式不可缩放地图
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
UiThreadHandler.postDelayed(this::stepIntoVrMode, 3_500L);
}
mClickShareVoiceStrings =
getContext().getResources().getStringArray(R.array.click_share_voice_guide_array);
mInnerGuideVoiceStrings =
getContext().getResources().getStringArray(R.array.search_voice_guide_inner_array);
mOuterGuideVoiceStrings =
getContext().getResources().getStringArray(R.array.search_voice_guide_outer_array);
}
/**
* 进入鹰眼模式,设置手势缩放地图失效
*/
private void stepIntoVrMode() {
Logger.d(TAG, "进入vr模式");
MogoApisHandler.getInstance()
.getApis()
.getMapServiceApi()
.getMapUIController()
.openVrMode(false);
//TODO 因为衡阳6.30交付没有2D模式临时方案进入vr模式不可缩放地图
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
// 进入鹰眼模式,设置手势缩放地图失效
Logger.d(TAG, "进入vr模式");
mMApUIController.changeMapMode(EnumMapUI.Type_VR);
MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, true );
}
}
@Override

View File

@@ -437,7 +437,9 @@ public class MogoServices implements IMogoMapListener,
// isNeedUploadCoordinatesDurationInTime() ) { //todo 实时在线车辆需要注释否则在2D模式下不能展示
// }
//请求在线车辆数据,刷新地图在线车辆
MapMarkerManager.getInstance().getOnlineCarDataByAutoRefreshStrategy( ro.mLonLat );
if (!mLastStatusIsVr){
MapMarkerManager.getInstance().getOnlineCarDataByAutoRefreshStrategy( ro.mLonLat );
}
Logger.i( TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, ro.mLonLat, mLastZoomLevel, ro.mAmount );
}
@@ -938,6 +940,8 @@ public class MogoServices implements IMogoMapListener,
@Override
public void onMapModeChanged( EnumMapUI ui ) {
Log.i(TAG, "onMapModeChanged:" + ui);
clearAllData();
if ( ui == EnumMapUI.Type_VR ) {
if ( !mLastStatusIsVr ) {
MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, true );

View File

@@ -159,7 +159,7 @@ public class MogoStatusManager implements IMogoStatusManager {
private boolean get_bool_val(StatusDescriptor descriptor ) {
Boolean val = mStatus.get( descriptor );
return val == null ? false : val;
return val != null && val;
}
@Override