This commit is contained in:
wangcongtao
2020-12-08 14:08:53 +08:00
840 changed files with 31903 additions and 11168 deletions

View File

@@ -4,6 +4,7 @@ import android.content.Intent;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.utils.logger.Logger;
public
@@ -92,6 +93,12 @@ class MapControlCommandHandler {
break;
case VoiceConstants.CMD_MAP_SPEAK_REMAIN:
break;
case VoiceConstants.CMD_MAP_OPEN_VR_UN_WAKEUP:
MogoApisHandler.getInstance().getApis().getMapFrameControllerApi().changeToVRMode();
break;
case VoiceConstants.CMD_MAP_CLOSE_VR_UN_WAKEUP:
MogoApisHandler.getInstance().getApis().getMapFrameControllerApi().changeTo2dMode();
break;
default:
break;

View File

@@ -1,5 +1,6 @@
package com.mogo.module.map;
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
@@ -14,7 +15,10 @@ import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.map.MyLocationUtil;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.map.MapCenterPointStrategy;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.map.IMogoMapFrameController;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.statusmanager.StatusDescriptor;
@@ -27,7 +31,7 @@ import com.mogo.utils.storage.SharedPrefsMgr;
* <p>
* 地图图层,地图操作都在这个图层完成
*/
public class MapFragment extends MvpFragment< MapView, MapPresenter > implements MapView {
public class MapFragment extends MvpFragment< MapView, MapPresenter > implements MapView, IMogoMapFrameController {
private static final String TAG = "MapFragment";
@@ -36,6 +40,8 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
private boolean mIsControllerByOthersStatus = false;
private boolean mIsFirstLoadCustomMap = true;
@Override
protected int getLayoutId() {
return R.layout.module_map_fragment_map;
@@ -43,6 +49,60 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
@Override
protected void initViews() {
MogoApisHandler.getInstance().getApis().getMapFrameControllerApi().initDelegate( this );
}
@Override
public void initDelegate( IMogoMapFrameController controller ) {
// do not implement
}
@Override
public void changeTo2dMode() {
if ( !isVrMode() ) {
return;
}
mMogoMapView.display2DMap( false, true );
afterMapModeChanged();
MogoApisHandler.getInstance().getApis().getAdasControllerApi().showADAS();
MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, false );
}
@Override
public void changeToVRMode() {
if ( isVrMode() ) {
return;
}
mMogoMapView.displayVRMap( mIsFirstLoadCustomMap, true );
if ( mIsFirstLoadCustomMap ) {
// initMapView();
// mMogoMap = mMogoMapView.getMap();
// if ( mMogoMap.getUIController() != null ) {
// mMogoMap.getUIController().showMyLocation( true );
// mMogoMap.getUIController().recoverLockMode();// 启动锁车
// }
// mIsFirstLoadCustomMap = false;
}
afterMapModeChanged();
MogoApisHandler.getInstance().getApis().getAdasControllerApi().closeADAS();
MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, true );
}
private void afterMapModeChanged() {
MapCenterPointStrategy.resetByChangeMode();
final EnumMapUI mapUI = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getCurrentSkinMode();
MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().changeMapMode( mapUI );
MogoApisHandler.getInstance().getApis().getRefreshStrategyControllerApi().restartAutoRefreshAtTime( 0 );
}
@Override
public boolean isVrMode() {
return mMogoMapView.isVrMode();
}
@Override
public void init( Context context ) {
// do not implement
}
@Override
@@ -111,32 +171,34 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
}
private void initMapView() {
if ( mMogoMap != null ) {
IMogoUiSettings uiSettings = mMogoMap.getUiSettings();
if ( uiSettings != null ) {
//设置所有手势是否可用
uiSettings.setAllGesturesEnabled( true );
//设置指南针是否可见。
uiSettings.setCompassEnabled( false );
//设置室内地图楼层切换控件是否可见。
uiSettings.setIndoorSwitchEnabled( true );
//设置定位按钮是否可见。
uiSettings.setMyLocationButtonEnabled( false );
//设置旋转手势是否可用。
uiSettings.setRotateGesturesEnabled( false );
//设置比例尺控件是否可见
uiSettings.setScaleControlsEnabled( true );
//设置拖拽手势是否可用。
uiSettings.setScrollGesturesEnabled( true );
//设置倾斜手势是否可用。
uiSettings.setTiltGesturesEnabled( true );
//设置缩放按钮是否可见。
uiSettings.setZoomControlsEnabled( false );
//设置双指缩放手势是否可用。
uiSettings.setZoomGesturesEnabled( true );
if ( mMogoMap.getUIController() != null ) {
mMogoMap.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
}
mMogoMap = mMogoMapView.getMap();
if ( mMogoMap == null ) {
return;
}
IMogoUiSettings uiSettings = mMogoMap.getUiSettings();
if ( uiSettings != null ) {
//设置所有手势是否可用
uiSettings.setAllGesturesEnabled( true );
//设置指南针是否可见。
uiSettings.setCompassEnabled( false );
//设置室内地图楼层切换控件是否可见。
uiSettings.setIndoorSwitchEnabled( true );
//设置定位按钮是否可见。
uiSettings.setMyLocationButtonEnabled( false );
//设置旋转手势是否可用。
uiSettings.setRotateGesturesEnabled( false );
//设置比例尺控件是否可见
uiSettings.setScaleControlsEnabled( true );
//设置拖拽手势是否可用。
uiSettings.setScrollGesturesEnabled( true );
//设置倾斜手势是否可用。
uiSettings.setTiltGesturesEnabled( true );
//设置缩放按钮是否可见。
uiSettings.setZoomControlsEnabled( false );
//设置双指缩放手势是否可用。
uiSettings.setZoomGesturesEnabled( true );
if ( mMogoMap.getUIController() != null ) {
mMogoMap.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
}
@@ -150,6 +212,11 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
return mMogoMap.getUIController();
}
@Override
public void destroy() {
MogoApisHandler.getInstance().getApis().getMapFrameControllerApi().destroy();
}
@Override
public void onDestroyView() {
super.onDestroyView();
@@ -157,5 +224,6 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
mMogoMapView.onDestroy();
}
MapBroadCastHelper.getInstance( getContext() ).release();
destroy();
}
}

View File

@@ -0,0 +1,59 @@
package com.mogo.module.map;
import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.google.gson.internal.$Gson$Preconditions;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.map.IMogoMapFrameController;
public
/**
* @author congtaowang
* @since 2020/10/23
*
* 描述
*/
@Route( path = MogoServicePaths.PATH_MAP_FRAME_CONTROLLER )
class MapFrameController implements IMogoMapFrameController {
private IMogoMapFrameController mController;
@Override
public void initDelegate( IMogoMapFrameController controller ) {
mController = controller;
}
@Override
public void changeTo2dMode() {
if ( mController != null ) {
mController.changeTo2dMode();
}
}
@Override
public void changeToVRMode() {
if ( mController != null ) {
mController.changeToVRMode();
}
}
@Override
public void init( Context context ) {
}
@Override
public boolean isVrMode() {
if ( mController != null ) {
return mController.isVrMode();
}
return false;
}
@Override
public void destroy() {
mController = null;
}
}

View File

@@ -57,6 +57,20 @@ public class VoiceConstants {
public static final String CMD_MAP_2D_UN_WAKEUP = "CMD_MAP_2D_UN_WAKEUP";
public static final String[] CMD_MAP_2D_TRIGGER_WORDS = {"二地模式"};
/**
* 打开vr
*/
public static final String CMD_MAP_OPEN_VR = "com.ileja.navi.mode.vr.open";
public static final String CMD_MAP_OPEN_VR_UN_WAKEUP = "CMD_MAP_OPEN_VR_UN_WAKEUP";
public static final String[] CMD_MAP_OPEN_VR_TRIGGER_WORDS = {"打开VR模式", "VR模式", "切换到VR模式"};
/**
* 关闭vr
*/
public static final String CMD_MAP_CLOSE_VR = "com.ileja.navi.mode.vr.close";
public static final String CMD_MAP_CLOSE_VR_UN_WAKEUP = "CMD_MAP_CLOSE_VR_UN_WAKEUP";
public static final String[] CMD_MAP_CLOSE_VR_TRIGGER_WORDS = {"关闭VR模式", "切换到地图模式"};
/**
* 3D模式
*/
@@ -191,6 +205,8 @@ public class VoiceConstants {
sUnRegisterVoiceCmds.put( VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP, VoiceConstants.CMD_MAP_DAY_TIME_MODE_TRIGGER_WORDS );
sUnRegisterVoiceCmds.put( VoiceConstants.CMD_MAP_NIGHT_MODE_UN_WAKEUP, VoiceConstants.CMD_MAP_NIGHT_MODE_TRIGGER_WORDS );
sUnRegisterVoiceCmds.put( VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE_UN_WAKEUP, VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE_TRIGGER_WORDS );
sUnRegisterVoiceCmds.put( VoiceConstants.CMD_MAP_OPEN_VR_UN_WAKEUP, VoiceConstants.CMD_MAP_OPEN_VR_TRIGGER_WORDS );
sUnRegisterVoiceCmds.put( VoiceConstants.CMD_MAP_CLOSE_VR_UN_WAKEUP, VoiceConstants.CMD_MAP_CLOSE_VR_TRIGGER_WORDS );
// 唤醒
sCmds.add( VoiceConstants.CMD_MAP_ZOOM_IN );