diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java
index da5143003f..549e0bda92 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java
@@ -1,6 +1,7 @@
package com.mogo.map.impl.amap.navi;
import android.content.Context;
+import android.graphics.Rect;
import com.amap.api.maps.model.Polyline;
import com.amap.api.navi.AMapNavi;
@@ -170,6 +171,13 @@ public class NaviClient implements IMogoNavi {
}
}
+ @Override
+ public void setCalculatePathDisplayBounds( Rect bounds ) {
+ if ( mAMapNaviListener != null ) {
+ mAMapNaviListener.setCalculatePathDisplayBounds(bounds);
+ }
+ }
+
// -- end
private boolean checkAMapNavi() {
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java
index 2693c8381c..33d0adeeca 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java
@@ -1,6 +1,7 @@
package com.mogo.map.impl.amap.navi;
import android.content.Context;
+import android.graphics.Rect;
import com.amap.api.maps.model.Polyline;
import com.amap.api.navi.AMapNavi;
@@ -185,4 +186,10 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter {
mNaviOverlayHelper.clearCalculatedOverlay();
}
}
+
+ public void setCalculatePathDisplayBounds( Rect bounds ){
+ if ( mNaviOverlayHelper != null ) {
+ mNaviOverlayHelper.setCalculatePathDisplayBounds(bounds);
+ }
+ }
}
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java
index 5bed8c3c71..a8ef6433d6 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java
@@ -58,7 +58,7 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
private int mSelectedPathId;
private CalculatePathItem mSelectedCalculatePathItem;
- private SoftReference< OnCalculatePathItemClickInteraction > mLineClickInteractionRef;
+ private OnCalculatePathItemClickInteraction mLineClickInteraction;
public NaviOverlayHelper( AMapNavi mAMapNavi, AMap mAMap, Context mContext ) {
this.mAMapNavi = mAMapNavi;
@@ -157,7 +157,7 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
if ( i == 0 ) {
mSelectedPathId = item.getId();
mSelectedCalculatePathItem = item;
- wrapper.setStartBitmap( R.drawable.ic_search_poi_location ).setEndBitmap( R.drawable.ic_search_choice_point );
+ wrapper.setStartBitmap( R.drawable.ic_navi_start ).setEndBitmap( R.drawable.ic_navi_target );
mAMapNavi.selectRouteId( item.getId() );
}
wrapper.addToMap();
@@ -196,8 +196,8 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
if ( mPaths != null && !mPaths.isEmpty() ) {
for ( MogoCalculatePath path : mPaths ) {
if ( TextUtils.equals( path.getTagId(), polyline.getId() ) ) {
- if ( mLineClickInteractionRef != null && mLineClickInteractionRef.get() != null ) {
- mLineClickInteractionRef.get().onItemClicked( path.getTagId() );
+ if ( mLineClickInteraction != null ) {
+ mLineClickInteraction.onItemClicked( path.getTagId() );
break;
}
}
@@ -317,9 +317,12 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
}
public void setLineClickInteraction( OnCalculatePathItemClickInteraction lineClickInteraction ) {
- if ( mLineClickInteractionRef != null ) {
- mLineClickInteractionRef.clear();
+ mLineClickInteraction = lineClickInteraction;
+ }
+
+ public void setCalculatePathDisplayBounds( Rect bounds ) {
+ if ( bounds != null ) {
+ mBoundRect = bounds;
}
- mLineClickInteractionRef = new SoftReference<>( lineClickInteraction );
}
}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java
index 85626c4231..e2db3a9e9f 100644
--- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java
@@ -1,5 +1,7 @@
package com.mogo.map.navi;
+import android.graphics.Rect;
+
import com.mogo.map.MogoLatLng;
import java.util.List;
@@ -95,4 +97,11 @@ public interface IMogoNavi {
*/
void clearCalculatePaths();
+ /**
+ * 设置显示规划路线的范围
+ *
+ * @param bounds 范围
+ */
+ void setCalculatePathDisplayBounds( Rect bounds );
+
}
diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_navi_start.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_navi_start.png
new file mode 100755
index 0000000000..5c5430c62e
Binary files /dev/null and b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_navi_start.png differ
diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_navi_target.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_navi_target.png
new file mode 100755
index 0000000000..a89d92e306
Binary files /dev/null and b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/ic_navi_target.png differ
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java
index 4c39598ce8..d46d5b2d23 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java
@@ -1,6 +1,7 @@
package com.mogo.map;
import android.content.Context;
+import android.graphics.Rect;
import com.mogo.map.impl.amap.navi.NaviClient;
import com.mogo.map.navi.IMogoNavi;
@@ -127,4 +128,11 @@ public class MogoNavi implements IMogoNavi {
mDelegate.clearCalculatePaths();
}
}
+
+ @Override
+ public void setCalculatePathDisplayBounds( Rect bounds ) {
+ if ( mDelegate != null ) {
+ mDelegate.setCalculatePathDisplayBounds( bounds );
+ }
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
index 3edd24855b..dd71df4fc9 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
@@ -13,7 +13,6 @@ import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.mvp.Presenter;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.service.MogoServicePaths;
-import com.mogo.service.cardmanager.IMogoCardManager;
import com.mogo.service.fragmentmanager.FragmentDescriptor;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.module.IMogoModuleProvider;
@@ -27,12 +26,10 @@ import com.mogo.service.module.IMogoModuleProvider;
public class AppNavigatorFragment extends MvpFragment< IView, Presenter< IView > > implements IView {
private View mNavigation;
- private View mMusic;
- private View mChat;
+ private View mMediaCenter;
+ private View mCarSettings;
private View mApps;
- private IMogoCardManager mCardManager;
-
private AppsFragment mAppsFragment;
private IMogoFragmentManager mMogoFragmentManager;
@@ -49,23 +46,20 @@ public class AppNavigatorFragment extends MvpFragment< IView, Presenter< IView >
@Override
protected void initViews() {
- mCardManager = ( IMogoCardManager ) ARouter.getInstance().build( MogoServicePaths.PATH_CARD_MANAGER ).navigation( getContext() );
mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation();
mNavigation = findViewById( R.id.module_apps_id_navigation );
- mMusic = findViewById( R.id.module_apps_id_music );
- mChat = findViewById( R.id.module_apps_id_chat );
+ mMediaCenter = findViewById( R.id.module_apps_ic_media_center );
+ mCarSettings = findViewById( R.id.module_apps_ic_car_settings );
mApps = findViewById( R.id.module_apps_id_apps );
mNavigation.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() );
} );
- mMusic.setOnClickListener( view -> {
- mCardManager.switch2( "CARD_TYPE_SHARE_MUSIC" );
+ mMediaCenter.setOnClickListener( view -> {
} );
- mChat.setOnClickListener( view -> {
- mCardManager.switch2( "CARD_TYPE_CARS_CHATTING" );
+ mCarSettings.setOnClickListener( view -> {
} );
mApps.setOnClickListener( view -> {
mAppsFragment = new AppsFragment();
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_car_settings.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_car_settings.png
new file mode 100644
index 0000000000..bb7ed874fb
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_car_settings.png differ
diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_media_center.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_media_center.png
new file mode 100644
index 0000000000..13aa66438a
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_media_center.png differ
diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml
index 01f080cb69..4c773f62bf 100644
--- a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml
+++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml
@@ -13,18 +13,18 @@
android:src="@drawable/module_apps_ic_navigation" />
+ android:src="@drawable/module_apps_ic_media_center" />
+ android:src="@drawable/module_apps_ic_car_settings" />
implements IMogoVoiceList
super.onCreate( owner );
mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
registerUnWakeupCmd();
+
+ IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
+ mogoNavi.setCalculatePathDisplayBounds( new Rect(
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.dp_730 ) + WindowUtils.dip2px( getContext(), 80 ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.dp_120 ) + WindowUtils.dip2px( getContext(), 80 ),
+ WindowUtils.dip2px( getContext(), 80 ),
+ WindowUtils.dip2px( getContext(), 80 )
+ ) );
}
private void registerUnWakeupCmd() {
@@ -157,7 +168,7 @@ public class MapPresenter extends Presenter< MapView > implements IMogoVoiceList
mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
} else if ( action == 1 ) {
mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
- } else if( action == 2){
+ } else if ( action == 2 ) {
mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night );
}
break;
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
index 0613de5866..99f408481d 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
@@ -220,6 +220,7 @@ public class MogoServiceProvider implements IMogoModuleProvider,
mUiController = mMogoMapService.getMapUIController();
mStatusManager = ( IMogoStatusManager ) ARouter.getInstance().build( MogoServicePaths.PATH_STATUS_MANAGER ).navigation( context );
mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.USER_INTERACTED, this );
+ mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.SEARCH_UI, this );
//TODO 初始化地图地图绘制大而全的Marker
MarkerServiceHandler.init( mContext );