Merge branch 'feature/v1.0.3' of http://gitlab.zhidaoauto.com/ecos/yycp-service/Launcher into feature/v1.0.3

This commit is contained in:
unknown
2020-04-01 16:55:06 +08:00
18 changed files with 239 additions and 171 deletions

View File

@@ -60,7 +60,7 @@ MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT
# 视频引导接口
MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT
# 在线车辆F
MOGO_MODULE_ONLINECAR_VERSION=1.0.2-SNAPSHOT
MOGO_MODULE_ONLINECAR_VERSION=1.0.3-SNAPSHOT
# v2x
MOGO_MODULE_V2X_VERSION=1.0.3-SNAPSHOT
# 媒体卡片

View File

@@ -14,6 +14,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Interpolator;
import com.alibaba.idst.nls.internal.utils.L;
import com.amap.api.maps.AMap;
import com.amap.api.maps.AMapUtils;
import com.amap.api.maps.CameraUpdateFactory;
@@ -48,6 +49,7 @@ import com.mogo.map.listener.MogoMapListenerHandler;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
@@ -381,9 +383,20 @@ public class AMapNaviViewWrapper implements IMogoMapView,
}
@Override
public void changeZoom( boolean zoom ) {
public MapControlResult changeZoom( boolean zoom ) {
if ( checkAMapView() ) {
mDefaultZoomLevel = ( int ) ( getMap().getZoomLevel() + 0.5f );
if ( zoom ) {
if ( mDefaultZoomLevel >= 20 ) {
return MapControlResult.TARGET;
}
} else {
if ( mDefaultZoomLevel <= 3 ) {
return MapControlResult.TARGET;
}
}
if ( zoom ) {
mDefaultZoomLevel += 2f;
if ( mDefaultZoomLevel > 20 ) {
@@ -397,15 +410,17 @@ public class AMapNaviViewWrapper implements IMogoMapView,
}
changeZoom( ( int ) mDefaultZoomLevel );
}
return MapControlResult.SUCCESS;
}
@Override
public void changeZoom( float zoom ) {
public MapControlResult changeZoom( float zoom ) {
Logger.d( TAG, "changeZoom %s", zoom );
if ( DebugConfig.isDebug() ) {
Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
}
getMap().changeZoom( zoom );
return MapControlResult.SUCCESS;
}
@Override
@@ -448,8 +463,10 @@ public class AMapNaviViewWrapper implements IMogoMapView,
break;
case NorthUP_2D:
mMapView.setNaviMode( AMapNaviView.NORTH_UP_MODE );
break;
break;
}
Logger.d(TAG,"mCurrentUIMode--->"+mCurrentUIMode.name());
if ( options == null ) {
return;
}

View File

@@ -29,6 +29,7 @@ import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.marker.MogoMarkersHandler;
import com.mogo.map.navi.MogoCalculatePath;
import com.mogo.map.navi.OnCalculatePathItemClickInteraction;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
@@ -180,27 +181,17 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
return;
}
checkAMapInstance();
mAMap.animateCamera( CameraUpdateFactory.newLatLngBoundsRect(
mAMap.moveCamera( CameraUpdateFactory.newLatLngBoundsRect(
bounds,
mBoundRect.left,
mBoundRect.right,
mBoundRect.top,
mBoundRect.bottom ),
new AMap.CancelableCallback() {
@Override
public void onFinish() {
if ( after != null ) {
after.run();
}
}
@Override
public void onCancel() {
if ( after != null ) {
after.run();
}
}
} );
mBoundRect.bottom ));
UiThreadHandler.postDelayed( ()->{
if ( after != null ) {
after.run();
}
}, 2000 );
}
private void checkAMapInstance() {

View File

@@ -11,6 +11,7 @@ import com.mogo.map.MogoMap;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.utils.logger.Logger;
import java.util.List;
@@ -59,17 +60,19 @@ public class AMapUIController implements IMogoMapUIController {
}
@Override
public void changeZoom(boolean zoom) {
public MapControlResult changeZoom( boolean zoom) {
if (mClient != null) {
mClient.changeZoom(zoom);
return mClient.changeZoom(zoom);
}
return MapControlResult.ERROR;
}
@Override
public void changeZoom(float zoom) {
public MapControlResult changeZoom(float zoom) {
if (mClient != null) {
mClient.changeZoom(zoom);
return mClient.changeZoom(zoom);
}
return MapControlResult.ERROR;
}
@Override

View File

@@ -27,14 +27,14 @@ public interface IMogoMapUIController {
/**
* 地图缩放
*
* @param zoomIn true - 方法 false - 缩小
* @param zoomIn true - 放大 false - 缩小
*/
void changeZoom( boolean zoomIn );
MapControlResult changeZoom( boolean zoomIn );
/**
* 修改缩放级别
*/
void changeZoom( float zoom );
MapControlResult changeZoom( float zoom );
/**
* 切换2D/3D模式

View File

@@ -0,0 +1,30 @@
package com.mogo.map.uicontroller;
/**
* @author congtaowang
* @since 2020-04-01
* <p>
* 地图控制结果
*/
public enum MapControlResult {
/**
* 成功
*/
SUCCESS,
/**
* 当前已经为预期结果
*/
TARGET,
/**
* 失败
*/
FAIL,
/**
* 错误,未执行
*/
ERROR
}

View File

@@ -10,6 +10,7 @@ import com.mogo.map.impl.amap.uicontroller.AMapUIController;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.MapControlResult;
import java.util.List;
@@ -52,17 +53,19 @@ public class MogoMapUIController implements IMogoMapUIController {
}
@Override
public void changeZoom(boolean zoom) {
public MapControlResult changeZoom( boolean zoom) {
if (mDelegate != null) {
mDelegate.changeZoom(zoom);
return mDelegate.changeZoom(zoom);
}
return MapControlResult.ERROR;
}
@Override
public void changeZoom(float zoom) {
public MapControlResult changeZoom(float zoom) {
if (mDelegate != null) {
mDelegate.changeZoom(zoom);
return mDelegate.changeZoom(zoom);
}
return MapControlResult.ERROR;
}
@Override

View File

@@ -58,9 +58,6 @@ public enum AppEnum {
//"方控学习",
SteerProduct( "方控学习", "com.zd.steerproduct", R.drawable.module_apps_ic_stee_product ),
//"蓝牙音乐",
BTMusic( "蓝牙音乐", "com.nwd.bt.music", R.drawable.module_apps_ic_bt ),
//"车载设置",
CarSettings( "车载设置", "com.zhidao.settings", R.drawable.module_apps_ic_car_setting ),
@@ -75,6 +72,12 @@ public enum AppEnum {
// 个人中心
PersonCenter( "个人中心", "com.zhidao.auto.personal", R.drawable.module_apps_ic_personal_center ),
// 本地视频
LocalVideo( "本地视频", "com.zhidao.video", R.drawable.module_apps_ic_local_video ),
// 车辆信息
CanBus( "车辆信息", "com.zd.canbus", R.drawable.module_apps_ic_canbus ),
;
private String mName;

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -559,7 +559,7 @@ public class MogoModulesManager implements MogoModulesHandler,
}
}
}
Log.i( TAG, "onLocationChanged event cost " + ( System.currentTimeMillis() - start ) + "ms" );
Logger.i( TAG, "onLocationChanged event cost " + ( System.currentTimeMillis() - start ) + "ms" );
}
public void registerReceiver() {

View File

@@ -14,8 +14,10 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.commons.voice.VoicePreemptType;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
@@ -39,20 +41,20 @@ import java.util.Map;
* <p>
* 描述
*/
public class MapPresenter extends Presenter<MapView> implements
IMogoIntentListener,
IMogoVoiceCmdCallBack {
public class MapPresenter extends Presenter< MapView > implements
IMogoIntentListener,
IMogoVoiceCmdCallBack {
private static final String TAG = "MapPresenter";
private static final String AUTONAVI_STANDARD_BROADCAST_RECV =
"AUTONAVI_STANDARD_BROADCAST_RECV";
"AUTONAVI_STANDARD_BROADCAST_RECV";
private IMogoMapService mMogoMapService;
private IMogoIntentManager mMogoIntentManager;
private IMogoSearchManager mSearchManager;
private IMogoRefreshStrategyController mRefreshStrategyController;
public MapPresenter(MapView view) {
super(view);
public MapPresenter( MapView view ) {
super( view );
initBroadcast();
}
@@ -61,78 +63,68 @@ public class MapPresenter extends Presenter<MapView> implements
*/
private void initBroadcast() {
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override public void onReceive(Context context, Intent intent) {
@Override
public void onReceive( Context context, Intent intent ) {
String action = intent.getAction();
if (TextUtils.equals(action, AUTONAVI_STANDARD_BROADCAST_RECV)) {
int key_type = intent.getIntExtra("KEY_TYPE", 0);
int type = intent.getIntExtra("EXTRA_TYPE", -1);
int opera_type = intent.getIntExtra("EXTRA_OPERA", -1);
if ( TextUtils.equals( action, AUTONAVI_STANDARD_BROADCAST_RECV ) ) {
int key_type = intent.getIntExtra( "KEY_TYPE", 0 );
int type = intent.getIntExtra( "EXTRA_TYPE", -1 );
int opera_type = intent.getIntExtra( "EXTRA_OPERA", -1 );
Logger.d("NaviManager", "key_type" + key_type);
if (key_type == 10027) {
Logger.d( "NaviManager", "key_type" + key_type );
if ( key_type == 10027 ) {
if (type == 0) {
mView.getUIController().setTrafficEnabled(opera_type == 0);
} else if (type == 1) {
boolean isLocked = mMogoMapService.getMapUIController().isCarLocked();
mView.getUIController().changeZoom(opera_type == 0);
if ( isLocked ) {
// 保持锁车状态
UiThreadHandler.postDelayed( ()->{
mView.getUIController().setLockZoom( ( ( int ) mMogoMapService.getMapUIController().getZoomLevel() ) );
mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
}, 1_000 );
} else {
// 20s后锁车刷新
mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 );
}
} else if (type == 2) {
if ( type == 0 ) {
mView.getUIController().setTrafficEnabled( opera_type == 0 );
} else if ( type == 1 ) {
zoomMap( opera_type == 0 );
} else if ( type == 2 ) {
mMogoIntentManager.invoke(AUTONAVI_STANDARD_BROADCAST_RECV,intent);
if (opera_type == 0) {
mView.getUIController().changeMapMode(EnumMapUI.CarUp_2D);
} else if (opera_type == 1) {
mView.getUIController().changeMapMode(EnumMapUI.NorthUP_2D);
mMogoIntentManager.invoke( AUTONAVI_STANDARD_BROADCAST_RECV, intent );
if ( opera_type == 0 ) {
mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
} else if ( opera_type == 1 ) {
mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
//AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
} else if (opera_type == 2) {
mView.getUIController().changeMapMode(EnumMapUI.CarUp_3D);
} else if ( opera_type == 2 ) {
mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
//AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
}
}
} else if (key_type == 10048) {
} else if ( key_type == 10048 ) {
//* @param type 0:自动; 1白天; 2黑夜
int day_night_mode = intent.getIntExtra("EXTRA_DAY_NIGHT_MODE", -1);
if (day_night_mode == 0) {
mView.getUIController().changeMapMode(EnumMapUI.Type_AUTO_LIGHT_Night);
} else if (day_night_mode == 1) {
mView.getUIController().changeMapMode(EnumMapUI.Type_Light);
} else if (day_night_mode == 2) {
mView.getUIController().changeMapMode(EnumMapUI.Type_Night);
int day_night_mode = intent.getIntExtra( "EXTRA_DAY_NIGHT_MODE", -1 );
if ( day_night_mode == 0 ) {
mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night );
} else if ( day_night_mode == 1 ) {
mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
} else if ( day_night_mode == 2 ) {
mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
}
//intent.setAction("AUTONAVI_STANDARD_BROADCAST_RECV");
//intent.putExtra("KEY_TYPE", 10049);
//intent.putExtra("EXTRA_ENDURANCE_DATA", continueNavi);
//继续导航
} else if (key_type == 10049) {
} else if ( key_type == 10049 ) {
boolean extra_endurance_data =
intent.getBooleanExtra("EXTRA_ENDURANCE_DATA", false);
if (extra_endurance_data) {
intent.getBooleanExtra( "EXTRA_ENDURANCE_DATA", false );
if ( extra_endurance_data ) {
mView.getUIController().recoverLockMode();
}
} else if (key_type == 10006) {
} else if ( key_type == 10006 ) {
int extra_is_show = intent.getIntExtra("EXTRA_IS_SHOW", 0);
int extra_is_show = intent.getIntExtra( "EXTRA_IS_SHOW", 0 );
//if (extra_is_show == 0) {
// mView.getUIController().displayOverview();
//} else {
// mView.getUIController().recoverLockMode();
//}
}else if (key_type == 10005){
int navi_route_prefer = intent.getIntExtra("NAVI_ROUTE_PREFER", type);
} else if ( key_type == 10005 ) {
int navi_route_prefer = intent.getIntExtra( "NAVI_ROUTE_PREFER", type );
}
@@ -159,13 +151,38 @@ public class MapPresenter extends Presenter<MapView> implements
};
IntentFilter inputFilter = new IntentFilter();
inputFilter.addAction(AUTONAVI_STANDARD_BROADCAST_RECV);
getContext().registerReceiver(broadcastReceiver, inputFilter);
inputFilter.addAction( AUTONAVI_STANDARD_BROADCAST_RECV );
getContext().registerReceiver( broadcastReceiver, inputFilter );
}
private void zoomMap( boolean zoomIn ) {
boolean isLocked = mMogoMapService.getMapUIController().isCarLocked();
MapControlResult result = mView.getUIController().changeZoom( zoomIn );
if ( result == MapControlResult.TARGET ) {
UiThreadHandler.postDelayed( () -> {
if ( zoomIn ) {
AIAssist.getInstance( getContext() ).speakTTSVoice( "地图已是最大", VoicePreemptType.PREEMPT_TYPE_NEXT, null );
} else {
AIAssist.getInstance( getContext() ).speakTTSVoice( "地图已是最小", VoicePreemptType.PREEMPT_TYPE_NEXT, null );
}
}, 1_000L ); // 避免小智障播放完毕之前播报
return;
}
if ( isLocked ) {
// 保持锁车状态
UiThreadHandler.postDelayed( () -> {
mView.getUIController().setLockZoom( ( ( int ) mMogoMapService.getMapUIController().getZoomLevel() ) );
mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
}, 1_000 );
} else {
// 20s后锁车刷新
mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 );
}
}
@Override
public void onCreate(@NonNull LifecycleOwner owner) {
super.onCreate(owner);
public void onCreate( @NonNull LifecycleOwner owner ) {
super.onCreate( owner );
IMogoServiceApis apis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() );
mMogoMapService = apis.getMapServiceApi();
@@ -173,104 +190,99 @@ public class MapPresenter extends Presenter<MapView> implements
mSearchManager = apis.getSearchManagerApi();
mRefreshStrategyController = apis.getRefreshStrategyControllerApi();
IMogoNavi mogoNavi = mMogoMapService.getNavi(getContext());
mogoNavi.setCalculatePathDisplayBounds(new Rect(
ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.module_map_display_overview_left_margin),
ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.module_map_display_overview_top_margin),
ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.module_map_display_overview_right_margin),
ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.module_map_display_overview_bottom_margin)
));
IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
mogoNavi.setCalculatePathDisplayBounds( new Rect(
ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_left_margin ),
ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_top_margin ),
ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_right_margin ),
ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_bottom_margin )
) );
}
@Override
public void onResume(@NonNull LifecycleOwner owner) {
super.onResume(owner);
public void onResume( @NonNull LifecycleOwner owner ) {
super.onResume( owner );
registerVoiceCmd();
}
@Override
public void onPause(@NonNull LifecycleOwner owner) {
super.onPause(owner);
public void onPause( @NonNull LifecycleOwner owner ) {
super.onPause( owner );
unregisterVoiceCmd();
}
private void registerVoiceCmd() {
for (Map.Entry<String, String[]> entry : VoiceConstants.sVoiceCmds.entrySet()) {
AIAssist.getInstance(getContext())
.registerUnWakeupCommand(entry.getKey(), entry.getValue(), this);
for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
AIAssist.getInstance( getContext() )
.registerUnWakeupCommand( entry.getKey(), entry.getValue(), this );
}
for (String cmd : VoiceConstants.sCmds) {
mMogoIntentManager.registerIntentListener(cmd, this);
for ( String cmd : VoiceConstants.sCmds ) {
mMogoIntentManager.registerIntentListener( cmd, this );
}
}
private void unregisterVoiceCmd() {
for (Map.Entry<String, String[]> entry : VoiceConstants.sVoiceCmds.entrySet()) {
AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(entry.getKey(), this);
for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( entry.getKey(), this );
}
for (String cmd : VoiceConstants.sCmds) {
mMogoIntentManager.unregisterIntentListener(cmd, this);
for ( String cmd : VoiceConstants.sCmds ) {
mMogoIntentManager.unregisterIntentListener( cmd, this );
}
}
@Override
public void onIntentReceived(String command, Intent intent) {
if (TextUtils.isEmpty(command)) {
public void onIntentReceived( String command, Intent intent ) {
if ( TextUtils.isEmpty( command ) ) {
return;
}
onCmdSelected(command);
onCmdSelected( command );
}
@Override
public void onCmdSelected(String cmd) {
Logger.d(TAG, cmd);
switch (cmd) {
public void onCmdSelected( String cmd ) {
Logger.d( TAG, cmd );
switch ( cmd ) {
case VoiceConstants.CMD_MAP_TRAFFIC_MODE_UN_WAKEUP:
case VoiceConstants.CMD_MAP_TRAFFIC_MODE:
AIAssist.getInstance(getContext()).speakTTSVoice("已打开", null);
mView.getUIController().setTrafficEnabled(true);
AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开", null );
mView.getUIController().setTrafficEnabled( true );
mSearchManager.showSearch();
break;
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE_UN_WAKEUP:
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE:
AIAssist.getInstance(getContext()).speakTTSVoice("已关闭", null);
mView.getUIController().setTrafficEnabled(false);
AIAssist.getInstance( getContext() ).speakTTSVoice( "已关闭", null );
mView.getUIController().setTrafficEnabled( false );
mSearchManager.showMain();
break;
case VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已放大", null);
case VoiceConstants.CMD_MAP_ZOOM_IN:
mView.getUIController().changeZoom(true);
zoomMap( true );
break;
case VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已缩小", null);
case VoiceConstants.CMD_MAP_ZOOM_OUT:
mView.getUIController().changeZoom(false);
zoomMap( false );
break;
case VoiceConstants.CMD_MAP_2D_UN_WAKEUP:
case VoiceConstants.CMD_MAP_2D:
case VoiceConstants.CMD_MAP_NORTH_UP_MODE_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_NORTH_UP_MODE:
mView.getUIController().changeMapMode(EnumMapUI.NorthUP_2D);
//AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_3D_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_3D:
mView.getUIController().changeMapMode(EnumMapUI.CarUp_3D);
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_DAY_TIME_MODE:
mView.getUIController().changeMapMode(EnumMapUI.Type_Light);
mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
//case VoiceConstants.CMD_MAP_GO_COMPANY_UN_WAKEUP:
@@ -294,29 +306,29 @@ public class MapPresenter extends Presenter<MapView> implements
break;
case VoiceConstants.CMD_MAP_NIGHT_MODE_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_NIGHT_MODE:
mView.getUIController().changeMapMode(EnumMapUI.Type_Night);
mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE:
mView.getUIController().changeMapMode(EnumMapUI.Type_AUTO_LIGHT_Night);
mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE:
//mView.getUIController().displayOverview();
break;
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE:
mView.getUIController().recoverLockMode();
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_CAR_UP_MODE_UN_WAKEUP:
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_CAR_UP_MODE:
mView.getUIController().changeMapMode(EnumMapUI.CarUp_2D);
mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
//case VoiceConstants.CMD_MAP_GEO_NEARBY:
@@ -328,14 +340,14 @@ public class MapPresenter extends Presenter<MapView> implements
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE:
case VoiceConstants.CMD_MAP_SPEAK_DRAFT_MODE_UN_WAKEUP:
mSearchManager.speakDraft();
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE:
case VoiceConstants.CMD_MAP_SPEAK_DETAIL_MODE_UN_WAKEUP:
mSearchManager.speakDetail();
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_SPEAK_REMAIN:
@@ -346,22 +358,22 @@ public class MapPresenter extends Presenter<MapView> implements
}
@Override
public void onCmdAction(String speakText) {
public void onCmdAction( String speakText ) {
}
@Override
public void onCmdCancel(String speakText) {
public void onCmdCancel( String speakText ) {
}
@Override
public void onSpeakEnd(String speakText) {
public void onSpeakEnd( String speakText ) {
}
@Override
public void onSpeakSelectTimeOut(String speakText) {
public void onSpeakSelectTimeOut( String speakText ) {
}
}

View File

@@ -33,22 +33,19 @@ public class SearchCategoryAdapter extends RecycleBaseAdapter<MogoPoiItem> {
@Override
public void onBindViewHolder(RecycleViewHolder holder, MogoPoiItem tip) {
int layoutPosition = holder.getLayoutPosition();
if (layoutPosition==0) {
holder.itemView.setBackgroundResource(R.drawable.selector_first_item_category_background);
}else {
if (layoutPosition == 0) {
holder.itemView.setBackgroundResource(
R.drawable.selector_first_item_category_background);
} else {
holder.itemView.setBackgroundResource(R.drawable.selector_item_category_background);
}
holder.setText(R.id.tv_position, tip.getTitle());
holder.setText(R.id.tv_position_des, tip.getSnippet());
holder.setText(R.id.iv_position,String.valueOf(holder.getLayoutPosition()+1));
holder.setText(R.id.iv_position, String.valueOf(holder.getLayoutPosition() + 1));
holder.itemView.setTag(R.id.tag_position, holder.getLayoutPosition());
holder.itemView.setOnClickListener(onClickListener);
holder.itemView.setSelected(current == holder.getLayoutPosition());
@@ -71,10 +68,10 @@ public class SearchCategoryAdapter extends RecycleBaseAdapter<MogoPoiItem> {
public void setCurrent(int current) {
if (current==this.current) {
if (current == this.current) {
return;
}
this.lastPosition=this.current;
this.lastPosition = this.current;
this.current = current;
notifyItemChanged(lastPosition);
notifyItemChanged(current);
@@ -84,11 +81,14 @@ public class SearchCategoryAdapter extends RecycleBaseAdapter<MogoPoiItem> {
return current;
}
public int getLastPosition(){
public int getLastPosition() {
return lastPosition;
}
public MogoPoiItem getCurrentItem(){
public MogoPoiItem getCurrentItem() {
if (current >= list.size()) {
return null;
}
return list.get(current);
}
}

View File

@@ -113,9 +113,13 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
private fun addMarkers() {
addMarkers.clear()
var marginBounder = resources.getDimensionPixelSize(R.dimen.dp_60)*2
var marginBounder = resources.getDimensionPixelSize(R.dimen.dp_60) * 2
SearchServiceHolder.getMapUIController()
.showBounds(TAG, null, locationList, Rect(cv_search_result.width+marginBounder,marginBounder, marginBounder, marginBounder), false)
.showBounds(
TAG, null, locationList, Rect(
cv_search_result.width + marginBounder, marginBounder, marginBounder, marginBounder
), false
)
for (options in arrayList) {
var addMarker = SearchServiceHolder.getMarkerManger()
@@ -218,8 +222,10 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
}
private fun goPath() {
var newInstance = ChoosePathFragment.newInstance(mAdapter.currentItem.point)
SearchServiceHolder.push(newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT)
mAdapter.currentItem?.let {
var newInstance = ChoosePathFragment.newInstance(mAdapter.currentItem.point)
SearchServiceHolder.push(newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT)
}
}
private fun updateMarker() {

View File

@@ -216,12 +216,12 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
}
private fun registerRetryVoice(){
private fun registerRetryVoice() {
AIAssist.getInstance(context)
.registerUnWakeupCommand("retry", arrayOf<String>("重试"), this)
}
private fun unregisterRetryVoice(){
private fun unregisterRetryVoice() {
AIAssist.getInstance(context)
.unregisterUnWakeupCommand("retry")
@@ -235,6 +235,9 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
}
private fun startNavi() {
if (TextUtils.isEmpty(mAdapter.selectTag)) {
return
}
moveMapToRight()
SearchServiceHolder.getNavi()

View File

@@ -50,7 +50,7 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
var neighborhood = regeocodeResult?.regeocodeAddress?.neighborhood
if (!TextUtils.isEmpty(neighborhood)) {
selectPoi?.name = neighborhood
}else{
} else {
selectPoi?.name = formatAddress
}
}
@@ -80,7 +80,8 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
.getFromLocationAsyn(mogoRegeocodeQuery)
addMarker?.apply {
SearchServiceHolder.getMapUIController()
.startJumpAnimation(this,
.startJumpAnimation(
this,
150f, { input ->
if (input <= 0.5) {
(0.5f - 2.0 * (0.5 - input) * (0.5 - input)).toFloat()
@@ -182,13 +183,12 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
AppDataBase.getDatabase(context)
.poiDao()
.insert(searchPoi)
AddressHelper.notifyAddressChanged(context, searchPoi)
})
.subscribeOn(Schedulers.io())
.subscribe()
AddressHelper.notifyAddressChanged(context, searchPoi)
}
override fun onDestroyView() {