diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2dc54c489f..707ee6e613 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
index c8b02b3402..bc39f455c6 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
@@ -417,6 +417,8 @@ public class AMapNaviViewWrapper implements IMogoMapView,
}
}
+
+
private boolean checkAMapView() {
if ( mMapView == null ) {
Logger.e( TAG, "高德mapView实例为空,请检查" );
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java
index 48c5a0d45d..e33652bcbf 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java
@@ -31,9 +31,9 @@ public class AMapUIController implements IMogoMapUIController {
}
public static AMapUIController getInstance() {
- if ( sInstance == null ) {
- synchronized ( AMapUIController.class ) {
- if ( sInstance == null ) {
+ if (sInstance == null) {
+ synchronized (AMapUIController.class) {
+ if (sInstance == null) {
sInstance = new AMapUIController();
}
}
@@ -41,7 +41,7 @@ public class AMapUIController implements IMogoMapUIController {
return sInstance;
}
- public void initClient( IMogoMapUIController client ) {
+ public void initClient(IMogoMapUIController client) {
this.mClient = client;
}
@@ -50,50 +50,50 @@ public class AMapUIController implements IMogoMapUIController {
}
@Override
- public void setTrafficEnabled( boolean visible ) {
- if ( mClient != null ) {
- mClient.setTrafficEnabled( visible );
+ public void setTrafficEnabled(boolean visible) {
+ if (mClient != null) {
+ mClient.setTrafficEnabled(visible);
}
}
@Override
- public void changeZoom( boolean zoom ) {
- if ( mClient != null ) {
- mClient.changeZoom( zoom );
+ public void changeZoom(boolean zoom) {
+ if (mClient != null) {
+ mClient.changeZoom(zoom);
}
}
@Override
- public void changeZoom( float zoom ) {
- if ( mClient != null ) {
- mClient.changeZoom( zoom );
+ public void changeZoom(float zoom) {
+ if (mClient != null) {
+ mClient.changeZoom(zoom);
}
}
@Override
- public void changeMapMode( EnumMapUI mode ) {
- if ( mClient != null ) {
- mClient.changeMapMode( mode );
+ public void changeMapMode(EnumMapUI mode) {
+ if (mClient != null) {
+ mClient.changeMapMode(mode);
}
}
@Override
- public void moveToCenter( MogoLatLng latLng ) {
- if ( mClient != null ) {
- mClient.moveToCenter( latLng );
+ public void moveToCenter(MogoLatLng latLng) {
+ if (mClient != null) {
+ mClient.moveToCenter(latLng);
}
}
@Override
- public void showMyLocation( boolean visible ) {
- if ( mClient != null ) {
- mClient.showMyLocation( visible );
+ public void showMyLocation(boolean visible) {
+ if (mClient != null) {
+ mClient.showMyLocation(visible);
}
}
@Override
public void recoverLockMode() {
- if ( mClient != null ) {
+ if (mClient != null) {
mClient.recoverLockMode();
}
}
@@ -107,21 +107,21 @@ public class AMapUIController implements IMogoMapUIController {
@Override
public void setLockZoom(int var1) {
- if ( mClient != null ) {
+ if (mClient != null) {
mClient.setLockZoom(var1);
}
}
@Override
public void displayOverview() {
- if ( mClient != null ) {
+ if (mClient != null) {
mClient.displayOverview();
}
}
@Override
public float getScalePerPixel() {
- if ( mClient != null ) {
+ if (mClient != null) {
return mClient.getScalePerPixel();
}
return 0;
@@ -129,7 +129,7 @@ public class AMapUIController implements IMogoMapUIController {
@Override
public float getZoomLevel() {
- if ( mClient != null ) {
+ if (mClient != null) {
return mClient.getZoomLevel();
}
return 0;
@@ -137,7 +137,7 @@ public class AMapUIController implements IMogoMapUIController {
@Override
public MogoLatLng getCameraNorthEastPosition() {
- if ( mClient != null ) {
+ if (mClient != null) {
return mClient.getCameraNorthEastPosition();
}
return null;
@@ -145,53 +145,54 @@ public class AMapUIController implements IMogoMapUIController {
@Override
public MogoLatLng getCameraSouthWestPosition() {
- if ( mClient != null ) {
+ if (mClient != null) {
return mClient.getCameraSouthWestPosition();
}
return null;
}
@Override public MogoLatLng getWindowCenterLocation() {
- if ( mClient != null ) {
+ if (mClient != null) {
return mClient.getWindowCenterLocation();
}
return null;
}
@Override
- public void setPointToCenter( double mapCenterX, double mapCenterY ) {
- if ( mClient != null ) {
- mClient.setPointToCenter( mapCenterX, mapCenterY );
+ public void setPointToCenter(double mapCenterX, double mapCenterY) {
+ if (mClient != null) {
+ mClient.setPointToCenter(mapCenterX, mapCenterY);
}
}
@Override
- public Point getLocationPointInScreen( MogoLatLng latLng ) {
- if ( mClient != null ) {
- return mClient.getLocationPointInScreen( latLng );
+ public Point getLocationPointInScreen(MogoLatLng latLng) {
+ if (mClient != null) {
+ return mClient.getLocationPointInScreen(latLng);
}
return null;
}
@Override
public MogoLatLng getLocationMogoLatLngInScreen(Point point) {
- if ( mClient != null ) {
- return mClient.getLocationMogoLatLngInScreen( point );
+ if (mClient != null) {
+ return mClient.getLocationMogoLatLngInScreen(point);
}
return null;
}
@Override
- public void startJumpAnimation( IMogoMarker marker, float high, Interpolator interpolator, long duration ) {
- if ( mClient != null ) {
- mClient.startJumpAnimation( marker, high, interpolator, duration );
+ public void startJumpAnimation(IMogoMarker marker, float high, Interpolator interpolator,
+ long duration) {
+ if (mClient != null) {
+ mClient.startJumpAnimation(marker, high, interpolator, duration);
}
}
@Override
- public void setRenderFps( int fps ) {
- if ( mClient != null ) {
- mClient.setRenderFps( fps );
+ public void setRenderFps(int fps) {
+ if (mClient != null) {
+ mClient.setRenderFps(fps);
}
}
@@ -204,7 +205,7 @@ public class AMapUIController implements IMogoMapUIController {
@Override
public void forceRender() {
- if ( mClient != null ) {
+ if (mClient != null) {
mClient.forceRender();
}
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
index 05f2ebeabf..3c7c40b3c1 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
@@ -19,43 +19,39 @@ public interface IMogoMapUIController {
/**
* 实时路况
- *
- * @param visible
*/
- void setTrafficEnabled( boolean visible );
+ void setTrafficEnabled(boolean visible);
/**
* 地图缩放
*
* @param zoomIn true - 方法 false - 缩小
*/
- void changeZoom( boolean zoomIn );
+ void changeZoom(boolean zoomIn);
/**
* 修改缩放级别
- *
- * @param zoom
*/
- void changeZoom( float zoom );
+ void changeZoom(float zoom);
/**
* 切换2D/3D模式
*
* @param mode true - 3D模式 false - 2D模式
*/
- void changeMapMode( EnumMapUI mode );
+ void changeMapMode(EnumMapUI mode);
/**
* 将地图移动至当前位置
*/
- void moveToCenter( MogoLatLng latLng );
+ void moveToCenter(MogoLatLng latLng);
/**
* 显示我的位置
*
* @param visible true - 显示 false - 不显示
*/
- void showMyLocation( boolean visible );
+ void showMyLocation(boolean visible);
/**
* 锁车
@@ -72,7 +68,7 @@ public interface IMogoMapUIController {
*
* @param var1 级别 3-20
*/
- void setLockZoom( int var1 );
+ void setLockZoom(int var1);
/**
* 预览全程
@@ -88,29 +84,21 @@ public interface IMogoMapUIController {
/**
* 获取缩放比例
- *
- * @return
*/
float getZoomLevel();
/**
* 获取视图东北角坐标
- *
- * @return
*/
MogoLatLng getCameraNorthEastPosition();
/**
* 获取视图西南角坐标
- *
- * @return
*/
MogoLatLng getCameraSouthWestPosition();
/**
* 获取视图中心点坐标
- *
- * @return
*/
MogoLatLng getWindowCenterLocation();
@@ -120,40 +108,33 @@ public interface IMogoMapUIController {
* @param mapCenterX x 点位置x值与地图宽度的比例
* @param mapCenterY y 点位置x值与地图高度的比例
*/
- void setPointToCenter( double mapCenterX, double mapCenterY );
+ void setPointToCenter(double mapCenterX, double mapCenterY);
/**
* 获取经纬度对应的屏幕的位置
- *
- * @param latLng
- * @return
*/
- Point getLocationPointInScreen( MogoLatLng latLng );
+ Point getLocationPointInScreen(MogoLatLng latLng);
/**
* 获取像素点对应的经纬度
- *
- * @param point
- * @return
*/
- MogoLatLng getLocationMogoLatLngInScreen( Point point );
+ MogoLatLng getLocationMogoLatLngInScreen(Point point);
/**
* marker 跳跃动画
*
- * @param marker 跳跃的 marker
- * @param high 跳跃的高度
+ * @param marker 跳跃的 marker
+ * @param high 跳跃的高度
* @param interpolator 插值器
- * @param duration 动画时间
+ * @param duration 动画时间
*/
- void startJumpAnimation( IMogoMarker marker, float high, Interpolator interpolator, long duration );
+ void startJumpAnimation(IMogoMarker marker, float high, Interpolator interpolator,
+ long duration);
/**
* 设置刷新帧率
- *
- * @param fps
*/
- void setRenderFps( int fps );
+ void setRenderFps(int fps);
/**
* @param tag 调用业务
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
index 3e02480d24..c8687a172a 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
@@ -70,6 +70,7 @@ public class MogoMapUIController implements IMogoMapUIController {
}
}
+
@Override
public void moveToCenter(MogoLatLng latLng) {
if (mDelegate != null) {
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java
index 0fdb0b1fb5..56ab9dc58f 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleConst.java
@@ -32,4 +32,24 @@ public class ExtensionsModuleConst {
public static final String CLOSE_PAGE = "com.zhidao.launcher.close.page";
public static final String CLOSE = "com.zhidao.launcher.close";
+
+
+ public static final String[] CMD_UPLOAD_BLOCK = {"上报拥堵"};
+ public static final String[] CMD_TRAFFIC_CHECK = {"上报交通检查"};
+ public static final String[] CMD_ROAD_CLOSURE = {"上报封路"};
+
+ //上报拥堵
+ public static final String UPLOAD_ROAD_BLOCK = "command_upload_block";
+ //上报交通检查
+ public static final String UPLOAD_TRAFFIC_CHECK = "command_upload_traffic_check";
+ //上报封路
+ public static final String UPLOAD_ROAD_CLOSURE = "command_upload_road_closure";
+
+ //埋点
+ //分享分类 1:路况,2:油价,3:交通检查,4:封路
+ public static final String LAUNCHER_SHARE_TYPE = "Launcher_Share_type";
+ //分享/上报按钮点击 from=1 手动点击 from=2 语音打开
+ public static final String LAUNCHER_SHARE_CLICK = "Launcher_Share_Click";
+ public static final String CARNET_USER_UPLOAD = "CarNet_user_upload";
+
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index fb4e29f1f0..bf93bec9ca 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -50,8 +50,9 @@ import java.util.Map;
*
* 描述
*/
-public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresenter > implements EntranceView,
- IMogoNaviListener, IMogoMapListener {
+public class EntranceFragment extends MvpFragment
+ implements EntranceView,
+ IMogoNaviListener, IMogoMapListener {
private static final String TAG = "EntranceFragment";
@@ -90,6 +91,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
*/
private IMogoModuleProvider mSearchProvider;
private boolean mIsLock = true;
+ private TextView ivMode;
@Override
protected int getLayoutId() {
@@ -98,28 +100,37 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
protected void initViews() {
- mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation();
- mMogoAddressManager = ( IMogoAddressManager ) ARouter.getInstance().build( MogoServicePaths.PATH_ADDRESS_MANAGER ).navigation();
+ mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance()
+ .build(MogoServicePaths.PATH_FRAGMENT_MANAGER)
+ .navigation();
+ mMogoAddressManager = (IMogoAddressManager) ARouter.getInstance()
+ .build(MogoServicePaths.PATH_ADDRESS_MANAGER)
+ .navigation();
- mCommonAddress = findViewById( R.id.module_entrance_id_common_address );
+ mCommonAddress = findViewById(R.id.module_entrance_id_common_address);
- mSearch = findViewById( R.id.module_entrance_id_search );
+ mSearch = findViewById(R.id.module_entrance_id_search);
- mSearch.setOnClickListener( view -> {
- mSearchProvider = ( IMogoModuleProvider ) ARouter.getInstance().build( MogoModulePaths.PATH_MODULE_SEARCH ).navigation();
- final Fragment fragment = mSearchProvider.createFragment( getContext(), null );
- mMogoFragmentManager.push( new FragmentDescriptor.Builder().fragment( fragment ).tag( MogoModulePaths.PATH_FRAGMENT_SEARCH ).notifyMainModule( true ).build() );
- } );
+ mSearch.setOnClickListener(view -> {
+ mSearchProvider = (IMogoModuleProvider) ARouter.getInstance()
+ .build(MogoModulePaths.PATH_MODULE_SEARCH)
+ .navigation();
+ final Fragment fragment = mSearchProvider.createFragment(getContext(), null);
+ mMogoFragmentManager.push(new FragmentDescriptor.Builder().fragment(fragment)
+ .tag(MogoModulePaths.PATH_FRAGMENT_SEARCH)
+ .notifyMainModule(true)
+ .build());
+ });
- mHome = findViewById( R.id.module_entrance_id_home );
- mHome.setOnClickListener( view -> {
+ mHome = findViewById(R.id.module_entrance_id_home);
+ mHome.setOnClickListener(view -> {
mMogoAddressManager.goHome();
- } );
+ });
- mCompany = findViewById( R.id.module_entrance_id_company );
- mCompany.setOnClickListener( view -> {
+ mCompany = findViewById(R.id.module_entrance_id_company);
+ mCompany.setOnClickListener(view -> {
mMogoAddressManager.goCompany();
- } );
+ });
mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition );
mUploadRoadCondition.setOnClickListener( view -> {
@@ -130,59 +141,80 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mVRMode.setOnClickListener( view -> {
} );
- mMove2CurrentLocation = findViewById( R.id.module_entrance_id_move2_current_location );
- mMove2CurrentLocation.setOnClickListener( view -> {
+ mMove2CurrentLocation = findViewById(R.id.module_entrance_id_move2_current_location);
+ mMove2CurrentLocation.setOnClickListener(view -> {
final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
- if ( location != null ) {
- mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
- mMApUIController.changeZoom( 16.0f );
- mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
+ if (location != null) {
+ mMogoStatusManager.setUserInteractionStatus(TAG, true, false);
+ mMApUIController.changeZoom(16.0f);
+ mMogoStatusManager.setUserInteractionStatus(TAG, true, false);
mMApUIController.recoverLockMode();
}
- } );
+ });
- mNaviInfo = findViewById( R.id.module_entrance_id_navi_info_panel );
- mExitNavi = findViewById( R.id.module_entrance_id_exit_navi );
- mExitNavi.setOnClickListener( view -> {
- if ( mMogoNavi != null ) {
+ mNaviInfo = findViewById(R.id.module_entrance_id_navi_info_panel);
+ mExitNavi = findViewById(R.id.module_entrance_id_exit_navi);
+ mExitNavi.setOnClickListener(view -> {
+ if (mMogoNavi != null) {
//if ( mIsLock ) {
- NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog( getContext() );
+ NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog(getContext());
naviNoticeDialog.show();
//} else {
// mMApUIController.recoverLockMode();
//}
}
- } );
+ });
- mSpeedLimit = findViewById( R.id.module_entrance_id_speed_limit_container );
- mSpeedLimitValue = findViewById( R.id.module_entrance_id_speed_limit_value );
- mSpeedLimitUnit = findViewById( R.id.module_entrance_id_speed_limit_unit );
+ ivMode = findViewById(R.id.module_ext_id_north);
+ ivMode.setOnClickListener(new View.OnClickListener() {
+ @Override public void onClick(View v) {
+ if (ivMode.isSelected()) {
+ mMApUIController.changeMapMode(EnumMapUI.CarUp_2D);
+ } else {
+ mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D);
+ }
+ ivMode.setSelected(!ivMode.isSelected());
+ ivMode.setText(
+ getString(ivMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up));
+ }
+ });
+
+ mSpeedLimit = findViewById(R.id.module_entrance_id_speed_limit_container);
+ mSpeedLimitValue = findViewById(R.id.module_entrance_id_speed_limit_value);
+ mSpeedLimitUnit = findViewById(R.id.module_entrance_id_speed_limit_unit);
}
@NonNull
@Override
protected EntrancePresenter createPresenter() {
- return new EntrancePresenter( getContext(), this );
+ return new EntrancePresenter(getContext(), this);
}
@Override
- public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
- super.onActivityCreated( savedInstanceState );
- mService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
- mMogoRegisterCenter = ( IMogoRegisterCenter ) ARouter.getInstance().build( MogoServicePaths.PATH_REGISTER_CENTER ).navigation( getContext() );
+ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ mService = (IMogoMapService) ARouter.getInstance()
+ .build(MogoServicePaths.PATH_SERVICES_MAP)
+ .navigation(getContext());
+ mMogoRegisterCenter = (IMogoRegisterCenter) ARouter.getInstance()
+ .build(MogoServicePaths.PATH_REGISTER_CENTER)
+ .navigation(getContext());
mMApUIController = mService.getMapUIController();
- mMogoLocationClient = mService.getSingletonLocationClient( getContext() );
- mMogoNavi = mService.getNavi( getContext() );
- mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() );
- mMogoStatusManager = ( IMogoStatusManager ) ARouter.getInstance().build( MogoServicePaths.PATH_STATUS_MANAGER ).navigation( getContext() );
+ mMogoLocationClient = mService.getSingletonLocationClient(getContext());
+ mMogoNavi = mService.getNavi(getContext());
+ mAnalytics = (IMogoAnalytics) ARouter.getInstance()
+ .build(MogoServicePaths.PATH_UTILS_ANALYTICS)
+ .navigation(getContext());
+ mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance()
+ .build(MogoServicePaths.PATH_STATUS_MANAGER)
+ .navigation(getContext());
- mMogoRegisterCenter.registerMogoNaviListener( ExtensionsModuleConst.TYPE_ENTRANCE, this );
- mMogoRegisterCenter.registerMogoMapListener( ExtensionsModuleConst.TYPE_ENTRANCE, this );
+ mMogoRegisterCenter.registerMogoNaviListener(ExtensionsModuleConst.TYPE_ENTRANCE, this);
+ mMogoRegisterCenter.registerMogoMapListener(ExtensionsModuleConst.TYPE_ENTRANCE, this);
- mMogoMarkerManager = mService.getMarkerManager( getContext() );
+ mMogoMarkerManager = mService.getMarkerManager(getContext());
}
-
@Override
public void onInitNaviFailure() {
}
@@ -192,28 +224,30 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
@Override
- public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
- if ( naviinfo == null ) {
+ public void onNaviInfoUpdate(MogoNaviInfo naviinfo) {
+ if (naviinfo == null) {
return;
}
- mNaviInfo.notifyChanged( naviinfo );
+ mNaviInfo.notifyChanged(naviinfo);
}
@Override
public void onStartNavi() {
- mCommonAddress.setVisibility( View.GONE );
- mNaviInfo.setVisibility( View.VISIBLE );
- mExitNavi.setVisibility( View.VISIBLE );
- mMApUIController.setPointToCenter( 0.675926, 0.77552 );
+ mCommonAddress.setVisibility(View.GONE);
+ mNaviInfo.setVisibility(View.VISIBLE);
+ ivMode.setVisibility(View.VISIBLE);
+ mExitNavi.setVisibility(View.VISIBLE);
+ mMApUIController.setPointToCenter(0.675926, 0.77552);
}
@Override
public void onStopNavi() {
- mCommonAddress.setVisibility( View.VISIBLE );
- mNaviInfo.setVisibility( View.GONE );
- mExitNavi.setVisibility( View.GONE );
- mSpeedLimit.setVisibility( View.GONE );
- mMApUIController.setPointToCenter( 0.66145, 0.590688 );
+ mCommonAddress.setVisibility(View.VISIBLE);
+ mNaviInfo.setVisibility(View.GONE);
+ ivMode.setVisibility(View.GONE);
+ mExitNavi.setVisibility(View.GONE);
+ mSpeedLimit.setVisibility(View.GONE);
+ mMApUIController.setPointToCenter(0.66145, 0.590688);
}
@Override
@@ -225,16 +259,16 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
@Override
- public void onUpdateTraffic( MogoTraffic traffic ) {
- if ( traffic == null ) {
+ public void onUpdateTraffic(MogoTraffic traffic) {
+ if (traffic == null) {
return;
}
- if ( traffic.getSpeedLimit() <= 0 ) {
- mSpeedLimit.setVisibility( View.INVISIBLE );
- mSpeedLimitValue.setText( "--" );
+ if (traffic.getSpeedLimit() <= 0) {
+ mSpeedLimit.setVisibility(View.INVISIBLE);
+ mSpeedLimitValue.setText("--");
} else {
- mSpeedLimit.setVisibility( View.VISIBLE );
- mSpeedLimitValue.setText( String.valueOf( traffic.getSpeedLimit() ) );
+ mSpeedLimit.setVisibility(View.VISIBLE);
+ mSpeedLimitValue.setText(String.valueOf(traffic.getSpeedLimit()));
}
}
@@ -244,45 +278,43 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
@Override
- public void onTouch( MotionEvent motionEvent ) {
+ public void onTouch(MotionEvent motionEvent) {
}
@Override
- public void onPOIClick( MogoPoi poi ) {
+ public void onPOIClick(MogoPoi poi) {
}
@Override
- public void onMapClick( MogoLatLng latLng ) {
+ public void onMapClick(MogoLatLng latLng) {
}
@Override
- public void onLockMap( boolean isLock ) {
+ public void onLockMap(boolean isLock) {
mIsLock = isLock;
- if ( isLock ) {
- mExitNavi.setText( R.string.module_ext_str_exit_navi );
+ if (isLock) {
+ mExitNavi.setText(R.string.module_ext_str_exit_navi);
} else {
- mExitNavi.setText( R.string.module_ext_str_exit_navi );
+ mExitNavi.setText(R.string.module_ext_str_exit_navi);
}
}
@Override
- public void onMapModeChanged( EnumMapUI ui ) {
+ public void onMapModeChanged(EnumMapUI ui) {
}
@Override
- public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) {
+ public void onMapChanged(MogoLatLng latLng, float zoom, float tilt, float bearing) {
}
-
- private void traceData( String from ) {
- Map< String, Object > properties = new HashMap<>();
- properties.put( "from", from );
- mAnalytics.track( "Launcher_Share_Click", properties );
+ private void traceData(String from) {
+ Map properties = new HashMap<>();
+ properties.put("from", from);
+ mAnalytics.track("Launcher_Share_Click", properties);
}
-
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
index 94d0616fbf..24c38b66b4 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
@@ -1,11 +1,20 @@
package com.mogo.module.extensions.entrance;
import android.content.Context;
+import android.content.Intent;
+
+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.module.extensions.ExtensionsModuleConst;
import com.mogo.module.share.ShareControl;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.analytics.IMogoAnalytics;
+import com.mogo.utils.logger.Logger;
+
+import java.util.HashMap;
+import java.util.Map;
/**
* @author congtaowang
@@ -16,10 +25,13 @@ import com.mogo.module.share.ShareControl;
public class EntrancePresenter extends Presenter {
private Context mContext;
+ private IMogoAnalytics mAnalytics;
public EntrancePresenter(Context context, EntranceView view) {
super(view);
mContext = context;
+ mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext());
+
registerUnWake();
}
@@ -28,6 +40,14 @@ public class EntrancePresenter extends Presenter {
ExtensionsModuleConst.CMD_CLOSE, mogoVoiceListener);
AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE,
ExtensionsModuleConst.CMD_CANCLE_SHARE, mogoVoiceListener);
+ //探路相关上报
+ AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK,
+ ExtensionsModuleConst.CMD_UPLOAD_BLOCK, mogoVoiceListener);
+ AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK,
+ ExtensionsModuleConst.CMD_TRAFFIC_CHECK, mogoVoiceListener);
+ AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE,
+ ExtensionsModuleConst.CMD_ROAD_CLOSURE, mogoVoiceListener);
+
}
/**
@@ -39,6 +59,12 @@ public class EntrancePresenter extends Presenter {
if (cmd.equals(ExtensionsModuleConst.CANCLE_SHARE)
|| cmd.equals(ExtensionsModuleConst.CLOSE)) { //取消分享,关闭页面
ShareControl.getInstance(mContext).dismissDialog();
+ } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)) { //上报拥堵
+ uploadRoadCondition();
+ } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查
+ uploadTrfficCheck();
+ } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路
+ uploadRoadClosed();
}
}
@@ -60,9 +86,73 @@ public class EntrancePresenter extends Presenter {
};
+ private void uploadRoadCondition() {
+ traceTanluData("2");
+ sendShareReceiver("1");
+ Logger.d("EntrancePresenter", "mogoIntentListener 上报路况 ----> ");
+ traceTypeData("1");
+ ShareControl.getInstance(mContext).dismissDialog();
+ }
+
+ private void uploadTrfficCheck() {
+ sendShareReceiver("2");
+ Logger.d("EntrancePresenter", "mogoIntentListener 分享交通检查 ----> ");
+ traceTypeData("3");
+ ShareControl.getInstance(mContext).dismissDialog();
+ }
+
+ private void uploadRoadClosed() {
+ sendShareReceiver("3");
+ Logger.d("EntrancePresenter", "mogoIntentListener 分享封路 ----> ");
+ traceTypeData("4");
+ ShareControl.getInstance(mContext).dismissDialog();
+ }
+
+ /**
+ * 发送广播 1拥堵,2交通检查,3封路
+ */
+ private void sendShareReceiver(String type) {
+ Logger.d("EntrancePresenter", "TanluCardViewFragment sendShareReceiver ---->");
+ Intent intent = new Intent();
+ intent.setAction("com.zhidao.roadcondition.share");
+ intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+ intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
+ intent.putExtra("type", type);
+ getContext().sendBroadcast(intent);
+ }
+
+ /**
+ * type=1 路况
+ *
+ * type=2 油价
+ *
+ * type=3 交通检查
+ *
+ * type=4 封路
+ *
+ * @param type
+ */
+ private void traceTypeData(String type) {
+ Map properties = new HashMap<>();
+ properties.put("type", type);
+ mAnalytics.track(ExtensionsModuleConst.LAUNCHER_SHARE_TYPE, properties);
+ }
+
+ private void traceTanluData(String type) {
+ Map properties = new HashMap<>();
+ properties.put("type", type);
+ mAnalytics.track(ExtensionsModuleConst.CARNET_USER_UPLOAD, properties);
+ }
+
+
private void unregisterUnWake() {
AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE);
AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CLOSE);
+
+ AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK);
+ AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK);
+ AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE);
+
}
}
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/icon_car_up.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/icon_car_up.png
new file mode 100755
index 0000000000..94ca2ed92c
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/icon_car_up.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/icon_north_up.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/icon_north_up.png
new file mode 100755
index 0000000000..2c88c8d9a1
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/icon_north_up.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/icon_car_up.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/icon_car_up.png
new file mode 100755
index 0000000000..ca3b614440
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/icon_car_up.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/icon_north_up.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/icon_north_up.png
new file mode 100755
index 0000000000..ca77810e0c
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/icon_north_up.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/selector_icon_north_up.xml b/modules/mogo-module-extensions/src/main/res/drawable/selector_icon_north_up.xml
new file mode 100644
index 0000000000..6259b5b4de
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/res/drawable/selector_icon_north_up.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/shape_react_gray_round.xml b/modules/mogo-module-extensions/src/main/res/drawable/shape_react_gray_round.xml
new file mode 100644
index 0000000000..e142369865
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/res/drawable/shape_react_gray_round.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
index 73a1e40567..ca5c13aed2 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
@@ -112,6 +112,23 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
+
退出导航
继续导航
退出全览
+ 车头
+ 正北
-
+
- 你好小智,播放音乐
- 你好小智,我要听音乐
- 你好小智,播放赵磊的歌
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/NaviManager.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/NaviManager.kt
index 9eb8048b50..5955749a77 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/NaviManager.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/NaviManager.kt
@@ -12,6 +12,7 @@ import com.mogo.module.navi.constants.SearchServiceHolder
import com.mogo.module.navi.ui.search.ChoosePathFragment
import com.mogo.utils.logger.Logger
import androidx.core.content.ContextCompat.startActivity
+import com.mogo.map.navi.MogoNaviConfig
import com.mogo.module.navi.ui.search.SearchFragment
import com.mogo.service.fragmentmanager.FragmentDescriptor
@@ -20,27 +21,27 @@ import com.mogo.service.fragmentmanager.FragmentDescriptor
* 2020-01-18.
*/
object NaviManager {
- private lateinit var mReceiver:BroadcastReceiver
+ private lateinit var mReceiver: BroadcastReceiver
private val AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV"
- fun init(context: Context){
+ fun init(context: Context) {
mReceiver = object : BroadcastReceiver() {
override fun onReceive(
context: Context,
intent: Intent
) {
val action = intent.action
- if (TextUtils.equals(action, AUTONAVI_STANDARD_BROADCAST_RECV)) {
+ if (TextUtils.equals(action, AUTONAVI_STANDARD_BROADCAST_RECV)) {
val key_type = intent.getIntExtra("KEY_TYPE", 0)
- Logger.d("NaviManager","key_type"+key_type,null)
- if (key_type == 10038||key_type == 10007) {
+ Logger.d("NaviManager", "key_type" + key_type, null)
+ if (key_type == 10038 || key_type == 10007) {
val lat: Double
val lon: Double
- if (key_type==10007){
+ if (key_type == 10007) {
lat = intent.getDoubleExtra("ENTRY_LAT", 0.0)
lon = intent.getDoubleExtra("ENTRY_LON", 0.0)
- }else{
+ } else {
lat = intent.getDoubleExtra("LAT", 0.0)
lon = intent.getDoubleExtra("LON", 0.0)
@@ -49,14 +50,15 @@ object NaviManager {
var newInstance =
ChoosePathFragment.newInstance(
- MogoLatLng(lat,lon)
+ MogoLatLng(lat, lon)
)
SearchServiceHolder.push(
newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT
)
- }else if (key_type == 10021) {
- SearchServiceHolder.getNavi().stopNavi()
- }else if (key_type == 20009) {
+ } else if (key_type == 10021) {
+ SearchServiceHolder.getNavi()
+ .stopNavi()
+ } else if (key_type == 20009) {
showHome()
SearchServiceHolder.fragmentManager
.clearAll()
@@ -70,7 +72,23 @@ object NaviManager {
.build()
)
+ } else if (key_type == 10005) {
+
+// * 仅在导航场景下,⽀持第三⽅进⾏路线偏好的重新选择。
+// * `避免收费` |`1` `多策略算路` |`2` `不走高速` |`3` ` 躲避拥堵` |`4` `不走高速且避免收费` |`5` `不走高速且躲避拥堵` |`6`
+// * `躲避收费和拥堵` |`7` `不走高速躲避收费和拥堵` |`8` `高速优先` |`20` `躲避拥堵且高速优先` |`24`
+// *
+ var prefer = intent.getIntExtra("NAVI_ROUTE_PREFER", 0)
+
+ var avoidSpeed = MogoNaviConfig().congestion(prefer == 4)
+ .cost(prefer == 1||prefer == 7)
+ .highSpeed(prefer == 20)
+ .avoidSpeed(prefer == 3)
+ SearchServiceHolder.getNavi()
+ .reCalculateRoute(avoidSpeed)
+
}
+
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
index 8b40ddd71b..9d54267cdd 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
@@ -3,9 +3,12 @@ package com.mogo.module.navi.ui.search
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.os.Bundle
+import android.text.TextUtils
import android.view.View
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
+import com.mogo.commons.voice.AIAssist
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
import com.mogo.map.marker.IMogoMarker
import com.mogo.map.marker.MogoMarkerOptions
import com.mogo.map.search.geo.MogoPoiItem
@@ -17,6 +20,7 @@ import com.mogo.module.navi.constants.SearchServiceHolder
import com.mogo.module.navi.ui.adapter.SearchCategoryAdapter
import com.mogo.module.navi.ui.base.BaseFragment
import com.mogo.module.navi.uitls.BitmapUtils
+import com.mogo.module.navi.uitls.StringUtils
import kotlinx.android.synthetic.main.fragment_search_category.cv_search_result
import kotlinx.android.synthetic.main.fragment_search_category.et_navi_search
import kotlinx.android.synthetic.main.fragment_search_category.iv_navi_back
@@ -28,14 +32,36 @@ import kotlinx.android.synthetic.main.fragment_search_category.tv_navi_navi
* @author zyz
* 2020-01-09.
*/
-class CategorySearchFragment : BaseFragment(), CategoryView {
+class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBack {
+ override fun onCmdSelected(cmd: String?) {
+ if (cmd?.startsWith("position") == true) {
+ var index = cmd.substring(8)
+ mAdapter.setCurrent(index.toInt())
+ updateMarker()
+ goPath()
+ }
+ }
+
+ override fun onCmdAction(speakText: String?) {
+ }
+
+ override fun onCmdCancel(speakText: String?) {
+ }
+
+ override fun onSpeakEnd(speakText: String?) {
+ }
+
+ override fun onSpeakSelectTimeOut(speakText: String?) {
+ }
private val TAG: String = "CategorySearchFragment"
private var addMarkers: List? = null
+
+ private lateinit var cmds: ArrayList
override fun renderSearchPoiResult(datums: List?) {
mAdapter.setDatas(datums)
cv_search_result.visibility = View.VISIBLE
- pb_path.visibility=View.GONE
+ pb_path.visibility = View.GONE
var arrayList = ArrayList()
for (index in 0 until datums!!.size) {
var decodeResource =
@@ -55,14 +81,19 @@ class CategorySearchFragment : BaseFragment(), CategoryView {
// .anchor(0.5f, 1f)
.longitude(datums[index].point?.lng ?: 0.0)
arrayList.add(options)
+
+ var int2String = StringUtils.int2String(index)
+ AIAssist.getInstance(context)
+ .registerUnWakeupCommand(
+ "position" + index, arrayOf("第" + int2String + "个", "第" + int2String + "条"), this
+ )
+ cmds.add("position" + index)
}
addMarkers = SearchServiceHolder.getMarkerManger()
.addMarkers(TAG, arrayList, true)
moveMapToRight()
}
-
-
private lateinit var mAdapter: SearchCategoryAdapter
private lateinit var mSearchPresenter: CategoryPresenter
@@ -75,8 +106,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView {
)
mSearchPresenter = CategoryPresenter(this)
lifecycle.addObserver(mSearchPresenter)
-
-
+ cmds=ArrayList()
}
override fun getLayoutId(): Int {
@@ -104,16 +134,22 @@ class CategorySearchFragment : BaseFragment(), CategoryView {
tv_navi_navi.setOnClickListener {
- var newInstance = ChoosePathFragment.newInstance(mAdapter.currentItem.point)
-
- SearchServiceHolder.push(newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT)
+ goPath()
}
mAdapter.setOnClickListener {
var position = it.getTag(R.id.tag_position) as Int
mAdapter.setCurrent(position)
-
updateMarker()
}
+
+ AIAssist.getInstance(context)
+ .registerUnWakeupCommand("back", arrayOf("关闭", "返回"), this)
+
+ }
+
+ private fun goPath() {
+ var newInstance = ChoosePathFragment.newInstance(mAdapter.currentItem.point)
+ SearchServiceHolder.push(newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT)
}
private fun updateMarker() {
@@ -124,7 +160,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView {
?.setIcon(getMarkerIcon(mAdapter.current))
}
- private fun getMarkerIcon(index :Int): Bitmap {
+ private fun getMarkerIcon(index: Int): Bitmap {
var decodeResource =
BitmapFactory.decodeResource(
resources,
@@ -133,7 +169,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView {
var createWaterMask =
BitmapUtils.createWaterMask(
- context, decodeResource, (index+1).toString(), R.color.white, 18
+ context, decodeResource, (index + 1).toString(), R.color.white, 18
)
return createWaterMask
}
@@ -149,6 +185,10 @@ class CategorySearchFragment : BaseFragment(), CategoryView {
lifecycle.removeObserver(mSearchPresenter)
SearchServiceHolder.getMarkerManger()
.removeMarkers(TAG)
+
+ cmds.forEach {
+ AIAssist.getInstance(context).unregisterUnWakeupCommand(it)
+ }
}
override fun onDestroy() {
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
index cb6effbd3b..9dbae3bfcd 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
@@ -200,8 +200,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
SearchServiceHolder.getMarkerManger()
.removeMarkers()
-
-
AIAssist.getInstance(context)
.registerUnWakeupCommand("firstPath", arrayOf(firstPath), this)
AIAssist.getInstance(context)
@@ -210,8 +208,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
.registerUnWakeupCommand("thirdPath", arrayOf(thirdPath), this)
AIAssist.getInstance(context)
.registerUnWakeupCommand("startNavi", arrayOf(startNavi), this)
- AIAssist.getInstance(context)
- .registerUnWakeupCommand("cancel", arrayOf("取消", "退出", "返回", "退出导航", "取消导航"), this)
}
@@ -255,8 +251,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB
.unregisterUnWakeupCommand("thirdPath")
AIAssist.getInstance(context)
.unregisterUnWakeupCommand("startNavi")
- AIAssist.getInstance(context)
- .unregisterUnWakeupCommand("cancel")
+
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java
index 1255bb8b01..f0ba2135b1 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java
@@ -2,6 +2,8 @@ package com.mogo.module.navi.ui.search;
import android.content.Context;
import android.os.Bundle;
+import android.os.health.ServiceHealthStats;
+import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -11,6 +13,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.analytics.AnalyticsUtils;
+import com.mogo.commons.voice.AIAssist;
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.map.search.inputtips.MogoTip;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.navi.R;
@@ -22,7 +26,9 @@ import com.mogo.module.navi.ui.adapter.HistoryPoiAdapter;
import com.mogo.module.navi.ui.adapter.SearchPoiAdapter;
import com.mogo.module.navi.ui.base.UiController;
import com.mogo.module.navi.ui.setting.NaviSettingFragment;
+import com.mogo.module.navi.uitls.StringUtils;
import com.mogo.service.fragmentmanager.FragmentDescriptor;
+import com.mogo.service.fragmentmanager.FragmentStackTransactionListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -38,7 +44,9 @@ import java.util.List;
* {@link SearchConstants#SEARCH_TYPE_MULTI_HOME}
*/
@Route(path = MogoModulePaths.PATH_FRAGMENT_SEARCH)
-public class SearchFragment extends BaseSearchFragment implements SearchView, View.OnClickListener {
+public class SearchFragment extends BaseSearchFragment
+ implements SearchView, View.OnClickListener, IMogoVoiceCmdCallBack,
+ FragmentStackTransactionListener {
public static final String TAG = "search";
@@ -119,10 +127,7 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi
SearchServiceHolder.INSTANCE.getAnalyticsManager()
.track("Navigation_History_destination", new HashMap());
SearchPoi item = (SearchPoi) v.getTag(R.id.tag_item);
- MogoTip mogoTip = EntityConvertUtils.poi2MogoTip(item);
- SearchServiceHolder.INSTANCE.push(
- ChoosePathFragment.Companion.newInstance(mogoTip.getPoint()),
- MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT);
+ goHistory(item);
}
});
@@ -131,8 +136,7 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi
MogoTip tag = (MogoTip) v.getTag(R.id.tag_position);
SearchPoi searchPoi = EntityConvertUtils.tipToPoi(tag);
if (tag.getPoint() == null) {
- push(CategorySearchFragment.Companion.newInstance(tag.getName()),
- MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY);
+ goCategory(tag.getName());
} else {
mSearchPresenter.insert(searchPoi);
SearchServiceHolder.INSTANCE.push(
@@ -150,10 +154,7 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi
findViewById(R.id.tv_navi_setting).setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
- SearchServiceHolder.INSTANCE.getAnalyticsManager()
- .track("Navigation_button_setting", new HashMap());
-
- push(new NaviSettingFragment(), MogoModulePaths.PATH_FRAGMENT_SETTING);
+ goSetting();
}
});
@@ -183,6 +184,56 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi
mSearchPresenter.startSearchPoiByInput(mSearchBox.getText().toString());
}
});
+
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(BACK_CMD, new String[] { "关闭", "返回" }, this);
+ }
+
+ private void goSetting() {
+ SearchServiceHolder.INSTANCE.getAnalyticsManager()
+ .track("Navigation_button_setting", new HashMap());
+
+ push(new NaviSettingFragment(), MogoModulePaths.PATH_FRAGMENT_SETTING);
+ }
+
+ private void goHistory(SearchPoi item) {
+ MogoTip mogoTip = EntityConvertUtils.poi2MogoTip(item);
+ SearchServiceHolder.INSTANCE.push(
+ ChoosePathFragment.Companion.newInstance(mogoTip.getPoint()),
+ MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT);
+ }
+
+ private static final String GO_HOME_CMD = "goHome";
+ private static final String GO_COMPANY_CMD = "goCompany";
+ private static final String GAS_CMD = "gas";
+ private static final String RESTAURANT_CMD = "restaurant";
+ private static final String TOILET_CMD = "toilet";
+ private static final String PARK_CMD = "park";
+ private static final String WASH_CMD = "wash";
+ private static final String NAVI_SETTING_CMD = "setting";
+ private static final String CLEAN_CMD = "clean";
+ private static final String BACK_CMD = "back";
+
+ private void registerVoidCmd() {
+
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(GO_HOME_CMD, new String[] { "回家" }, this);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(GO_COMPANY_CMD, new String[] { "去公司" }, this);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(GAS_CMD, new String[] { "加油站" }, this);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(RESTAURANT_CMD, new String[] { "餐馆" }, this);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(TOILET_CMD, new String[] { "卫生间", "厕所" }, this);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(PARK_CMD, new String[] { "停车场" }, this);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(NAVI_SETTING_CMD, new String[] { "导航设置" }, this);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(CLEAN_CMD, new String[] { "清空历史目的地" }, this);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand(WASH_CMD, new String[] { "洗车" }, this);
}
private void push(Fragment fragment, String tag) {
@@ -289,8 +340,25 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi
}
showHistory();
mHistoryAdapter.setDatas(datums);
+ registerHistory();
}
+ private void registerHistory() {
+ List datums = mHistoryAdapter.getList();
+ for (int i = 0; i < datums.size(); i++) {
+ String s = StringUtils.int2String(i + 1);
+ AIAssist.getInstance(getContext())
+ .registerUnWakeupCommand("history" + i,
+ new String[] { "第" + s + "个", "第" + s + "条" }, this);
+ if (cmds.contains("history" + i)) {
+ continue;
+ }
+ cmds.add("history" + i);
+ }
+ }
+
+ private List cmds = new ArrayList();
+
@Override
public int getSearchType() {
return mSearchType;
@@ -407,6 +475,10 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi
@Override public void onClick(View v) {
TextView category = (TextView) v;
String text = category.getText().toString();
+ goCategory(text);
+ }
+
+ private void goCategory(String text) {
push(CategorySearchFragment.Companion.newInstance(text),
MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY);
}
@@ -416,5 +488,135 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi
super.onDestroyView();
SearchServiceHolder.INSTANCE.getMapUIController().showMyLocation(true);
moveMapToRight();
+ unRegisterVoice();
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(BACK_CMD);
+ }
+
+ private void unRegisterVoice() {
+
+ //private static final String GO_HOME_CMD="goHome";
+ //private static final String GO_COMPANY_CMD="goCompany";
+ //private static final String GAS_CMD="gas";
+ //private static final String RESTAURANT_CMD="restaurant";
+ //private static final String TOILET_CMD="toilet";
+ //private static final String PARK_CMD="park";
+ //private static final String WASH_CMD="wash";
+ //private static final String NAVI_SETTING_CMD="setting";
+ //private static final String CLEAN_CMD="clean";
+ //private static final String BACK_CMD="back";
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(GO_HOME_CMD);
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(GO_COMPANY_CMD);
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(GAS_CMD);
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(RESTAURANT_CMD);
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(TOILET_CMD);
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(PARK_CMD);
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(WASH_CMD);
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(NAVI_SETTING_CMD);
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(CLEAN_CMD);
+ for (String cmd : cmds) {
+ AIAssist.getInstance(getContext()).unregisterUnWakeupCommand(cmd);
+ }
+ }
+
+ //@Override public void onPause() {
+ // super.onPause();
+ // unRegisterVoice();
+ //}
+ //
+ //@Override public void onResume() {
+ // super.onResume();
+ // registerVoidCmd();
+ // registerHistory();
+ //}
+
+
+ @Override public void onHiddenChanged(boolean hidden) {
+ super.onHiddenChanged(hidden);
+ if (hidden) {
+ unRegisterVoice();
+ } else {
+ registerVoidCmd();
+ registerHistory();
+ }
+ }
+
+ @Override public void onCmdSelected(String cmd) {
+ if (!TextUtils.isEmpty(cmd) && cmd.startsWith("history")) {
+ String index = cmd.substring(7);
+ SearchPoi item = mHistoryAdapter.getItem(Integer.valueOf(index));
+ goHistory(item);
+ return;
+ }
+ switch (cmd) {
+ case CLEAN_CMD:
+ mSearchPresenter.deleteAllCachedPoi();
+ AIAssist.getInstance(getContext())
+ .speakQAndACmd(getString(R.string.notice_clean_history),
+ new String[] { "确定" }, new String[] { "取消" }, this);
+ break;
+
+ case BACK_CMD:
+ SearchServiceHolder.INSTANCE.getFragmentManager().pop();
+ break;
+ case GAS_CMD:
+
+ goCategory(getString(R.string.navi_gas));
+
+ break;
+ case GO_COMPANY_CMD:
+ AddressManager.INSTANCE.goCompany();
+
+ break;
+ case GO_HOME_CMD:
+ AddressManager.INSTANCE.goHome();
+ break;
+ case NAVI_SETTING_CMD:
+ goSetting();
+ break;
+
+ case PARK_CMD:
+ goCategory(getString(R.string.navi_park));
+
+ break;
+ case RESTAURANT_CMD:
+ goCategory(getString(R.string.navi_restrant));
+
+ break;
+
+ case TOILET_CMD:
+ goCategory(getString(R.string.navi_toilet));
+ break;
+
+ case WASH_CMD:
+ goCategory(getString(R.string.navi_wash));
+
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ @Override public void onCmdAction(String speakText) {
+
+ mSearchPresenter.deleteAllCachedPoi();
+ mSearchPresenter.hideDialog();
+ }
+
+ @Override public void onCmdCancel(String speakText) {
+
+ mSearchPresenter.hideDialog();
+ }
+
+ @Override public void onSpeakEnd(String speakText) {
+
+ }
+
+ @Override public void onSpeakSelectTimeOut(String speakText) {
+
+ }
+
+ @Override public void onTransaction(int size) {
+
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchPresenter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchPresenter.java
index c58e8b30c9..c50fde48ec 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchPresenter.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchPresenter.java
@@ -136,6 +136,8 @@ public class SearchPresenter extends Presenter {
mCompositeDisposable.add(disposable);
}
+ private NoticeDialog noticeDialog;
+
public void deleteAllCachedPoi() {
//new AlertDialog.Builder( getContext() )
@@ -150,7 +152,7 @@ public class SearchPresenter extends Presenter {
// .create()
// .show();
- NoticeDialog noticeDialog = new NoticeDialog(getContext(),"清空历史记录?","立即清空");
+ noticeDialog = new NoticeDialog(getContext(),"清空历史记录?","立即清空");
//noticeDialog.setContent("清空历史记录?");
//noticeDialog.setPositiveButton("立即清空");
@@ -165,7 +167,13 @@ public class SearchPresenter extends Presenter {
noticeDialog.show();
}
- private void deleteAllCachedPoiImpl() {
+ public void hideDialog(){
+ if (noticeDialog != null) {
+ noticeDialog.dismiss();
+ }
+ }
+
+ public void deleteAllCachedPoiImpl() {
final Disposable disposable = AppDataBase.getDatabase(getContext())
.poiDao()
.getAll()
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/uitls/StringUtils.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/uitls/StringUtils.java
new file mode 100644
index 0000000000..e7f5b58ab7
--- /dev/null
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/uitls/StringUtils.java
@@ -0,0 +1,34 @@
+package com.mogo.module.navi.uitls;
+
+/**
+ * @author zyz
+ * 2020-03-05.
+ */
+public class StringUtils {
+
+ public static String int2String(int index){
+ switch (index){
+ case 1:
+ return "一";
+ case 2:
+ return "二";
+ case 3:
+ return "三";
+ case 4:
+ return "四";
+ case 5:
+ return "五";
+ case 6:
+ return "六";
+ case 7:
+ return "七";
+ case 8:
+ return "八";
+ case 9:
+ return "九";
+ default:
+ return "十";
+
+ }
+ }
+}
diff --git a/modules/mogo-module-search/src/main/res/values/strings.xml b/modules/mogo-module-search/src/main/res/values/strings.xml
index e29a469f1e..7ecb774534 100644
--- a/modules/mogo-module-search/src/main/res/values/strings.xml
+++ b/modules/mogo-module-search/src/main/res/values/strings.xml
@@ -41,4 +41,5 @@
去设置公司
日夜模式
设置刷新帧率
+ 清空历史记录,确定还是取消
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java
index 386a05742f..18b413195b 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java
@@ -179,6 +179,9 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
case 3:
ivIcon.setImageResource(R.drawable.icon_map_marker_news);
break;
+ default:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
+ break;
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
index f5b063f986..dcc23e26fa 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
@@ -310,7 +310,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag
// 绘制Marker
public synchronized void drawMapMarker(MarkerResponse response) {
-
JSONArray array = new JSONArray();
// 解析不同的Marker类型,然后对应的进行绘制
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java
index cd73724614..b2661dc363 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java
@@ -155,6 +155,9 @@ public class MapMarkerView extends MapMarkerBaseView {
case 3:
ivIcon.setImageResource(R.drawable.icon_map_marker_news);
break;
+ default:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
+ break;
}
}
break;