2.0.3导航需求
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package com.mogo.module.extensions.entrance;
|
package com.mogo.module.extensions.entrance;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -46,6 +48,7 @@ import com.mogo.service.MogoServicePaths;
|
|||||||
import com.mogo.service.analytics.IMogoAnalytics;
|
import com.mogo.service.analytics.IMogoAnalytics;
|
||||||
import com.mogo.service.fragmentmanager.FragmentDescriptor;
|
import com.mogo.service.fragmentmanager.FragmentDescriptor;
|
||||||
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
|
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
|
||||||
|
import com.mogo.service.intent.IMogoIntentListener;
|
||||||
import com.mogo.service.map.IMogoMapService;
|
import com.mogo.service.map.IMogoMapService;
|
||||||
import com.mogo.service.module.IMogoAddressManager;
|
import com.mogo.service.module.IMogoAddressManager;
|
||||||
import com.mogo.service.module.IMogoModuleProvider;
|
import com.mogo.service.module.IMogoModuleProvider;
|
||||||
@@ -215,8 +218,29 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
|
|||||||
mSpeedLimit = findViewById( R.id.module_entrance_id_speed_limit_container );
|
mSpeedLimit = findViewById( R.id.module_entrance_id_speed_limit_container );
|
||||||
mSpeedLimitValue = findViewById( R.id.module_entrance_id_speed_limit_value );
|
mSpeedLimitValue = findViewById( R.id.module_entrance_id_speed_limit_value );
|
||||||
mSpeedLimitUnit = findViewById( R.id.module_entrance_id_speed_limit_unit );
|
mSpeedLimitUnit = findViewById( R.id.module_entrance_id_speed_limit_unit );
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
mApis.getIntentManagerApi().registerIntentListener(AUTONAVI_STANDARD_BROADCAST_RECV, new IMogoIntentListener() {
|
||||||
|
@Override public void onIntentReceived(String intentStr, Intent intent) {
|
||||||
|
int key_type = intent.getIntExtra("KEY_TYPE", 0);
|
||||||
|
|
||||||
|
int type = intent.getIntExtra("EXTRA_TYPE", -1);
|
||||||
|
int opera_type = intent.getIntExtra("EXTRA_OPERA", -1);
|
||||||
|
if (key_type == 10027) {
|
||||||
|
if (opera_type == 0) {
|
||||||
|
ivMode.setSelected(false);
|
||||||
|
} else if (opera_type == 1) {
|
||||||
|
ivMode.setSelected(true);
|
||||||
|
}
|
||||||
|
ivMode.setText(
|
||||||
|
getString( ivMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
private static final String AUTONAVI_STANDARD_BROADCAST_RECV =
|
||||||
|
"AUTONAVI_STANDARD_BROADCAST_RECV";
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
protected EntrancePresenter createPresenter() {
|
protected EntrancePresenter createPresenter() {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import com.mogo.commons.mvp.MvpFragment;
|
|||||||
import com.mogo.map.IMogoMap;
|
import com.mogo.map.IMogoMap;
|
||||||
import com.mogo.map.IMogoUiSettings;
|
import com.mogo.map.IMogoUiSettings;
|
||||||
import com.mogo.map.MogoMapView;
|
import com.mogo.map.MogoMapView;
|
||||||
|
import com.mogo.map.uicontroller.EnumMapUI;
|
||||||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||||
import com.mogo.service.MogoServicePaths;
|
import com.mogo.service.MogoServicePaths;
|
||||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||||
@@ -122,6 +123,7 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
|
|||||||
uiSettings.setZoomControlsEnabled( false );
|
uiSettings.setZoomControlsEnabled( false );
|
||||||
//设置双指缩放手势是否可用。
|
//设置双指缩放手势是否可用。
|
||||||
uiSettings.setZoomGesturesEnabled( true );
|
uiSettings.setZoomGesturesEnabled( true );
|
||||||
|
mMogoMap.getUIController().changeMapMode(EnumMapUI.NorthUP_2D);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,6 +79,8 @@ public class MapPresenter extends Presenter<MapView> implements
|
|||||||
mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
|
mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车
|
||||||
}, 1_000 );
|
}, 1_000 );
|
||||||
} else if (type == 2) {
|
} else if (type == 2) {
|
||||||
|
|
||||||
|
mMogoIntentManager.invoke(AUTONAVI_STANDARD_BROADCAST_RECV,intent);
|
||||||
if (opera_type == 0) {
|
if (opera_type == 0) {
|
||||||
mView.getUIController().changeMapMode(EnumMapUI.CarUp_2D);
|
mView.getUIController().changeMapMode(EnumMapUI.CarUp_2D);
|
||||||
} else if (opera_type == 1) {
|
} else if (opera_type == 1) {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.mogo.module.service;
|
package com.mogo.module.service;
|
||||||
|
|
||||||
|
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -205,7 +204,8 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
mUiController.setLockZoom(ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL);
|
mUiController.setLockZoom(ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL);
|
||||||
mStatusManager.setUserInteractionStatus(TAG, true, false);
|
mStatusManager.setUserInteractionStatus(TAG, true, false);
|
||||||
mUiController.recoverLockMode();
|
mUiController.recoverLockMode();
|
||||||
notifyRefreshData( mLastAutoRefreshLocation, ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback );
|
notifyRefreshData(mLastAutoRefreshLocation,
|
||||||
|
ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@@ -252,7 +252,8 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
public void onFail() {
|
public void onFail() {
|
||||||
if (mLoopRequest) {
|
if (mLoopRequest) {
|
||||||
Logger.d(TAG, "onFail and loop");
|
Logger.d(TAG, "onFail and loop");
|
||||||
mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_LOOP_REQUEST, ServiceConst.LOOP_INTERVAL );
|
mHandler.sendEmptyMessageDelayed(ServiceConst.MSG_LOOP_REQUEST,
|
||||||
|
ServiceConst.LOOP_INTERVAL);
|
||||||
} else {
|
} else {
|
||||||
invokeAutoRefreshStrategy();
|
invokeAutoRefreshStrategy();
|
||||||
}
|
}
|
||||||
@@ -264,7 +265,8 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
}
|
}
|
||||||
mRefreshRemainingTime = mAutoRefreshStrategy.getInterval();
|
mRefreshRemainingTime = mAutoRefreshStrategy.getInterval();
|
||||||
mHandler.removeMessages(ServiceConst.MSG_TYPE_REFRESH_DECREASE);
|
mHandler.removeMessages(ServiceConst.MSG_TYPE_REFRESH_DECREASE);
|
||||||
mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_TYPE_REFRESH_DECREASE, ServiceConst.DECREASE_INTERVAL );
|
mHandler.sendEmptyMessageDelayed(ServiceConst.MSG_TYPE_REFRESH_DECREASE,
|
||||||
|
ServiceConst.DECREASE_INTERVAL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -281,10 +283,14 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
mUiController = mMogoMapService.getMapUIController();
|
mUiController = mMogoMapService.getMapUIController();
|
||||||
mNavi = mMogoMapService.getNavi(context);
|
mNavi = mMogoMapService.getNavi(context);
|
||||||
mStatusManager = MarkerServiceHandler.getMogoStatusManager();
|
mStatusManager = MarkerServiceHandler.getMogoStatusManager();
|
||||||
mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.USER_INTERACTED, this );
|
mStatusManager.registerStatusChangedListener(ServiceConst.TYPE,
|
||||||
mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.SEARCH_UI, this );
|
StatusDescriptor.USER_INTERACTED, this);
|
||||||
mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.ADAS_UI, this );
|
mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.SEARCH_UI,
|
||||||
mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.MAIN_PAGE_RESUME, this );
|
this);
|
||||||
|
mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.ADAS_UI,
|
||||||
|
this);
|
||||||
|
mStatusManager.registerStatusChangedListener(ServiceConst.TYPE,
|
||||||
|
StatusDescriptor.MAIN_PAGE_RESUME, this);
|
||||||
|
|
||||||
registerMogoReceiver(context);
|
registerMogoReceiver(context);
|
||||||
registerInternalUnWakeupWords();
|
registerInternalUnWakeupWords();
|
||||||
@@ -340,7 +346,8 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
if (msg.obj instanceof RefreshObject) {
|
if (msg.obj instanceof RefreshObject) {
|
||||||
RefreshObject ro = ((RefreshObject) msg.obj);
|
RefreshObject ro = ((RefreshObject) msg.obj);
|
||||||
mRefreshModel.refreshData(ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback);
|
mRefreshModel.refreshData(ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback);
|
||||||
Logger.i( TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, ro.mLonLat, mLastZoomLevel, ro.mAmount );
|
Logger.i(TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius,
|
||||||
|
ro.mLonLat, mLastZoomLevel, ro.mAmount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -406,12 +413,11 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 地图视图对应的实际宽度
|
* 地图视图对应的实际宽度
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
private float getMapCameraFactWidth() {
|
private float getMapCameraFactWidth() {
|
||||||
try {
|
try {
|
||||||
return Utils.calculateLineDistance( mCameraNorthEastPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) );
|
return Utils.calculateLineDistance(mCameraNorthEastPosition,
|
||||||
|
new MogoLatLng(mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS;
|
return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS;
|
||||||
}
|
}
|
||||||
@@ -419,12 +425,11 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 地图视图对应的实际高度
|
* 地图视图对应的实际高度
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
private float getMapCameraFactHeight() {
|
private float getMapCameraFactHeight() {
|
||||||
try {
|
try {
|
||||||
return Utils.calculateLineDistance( mCameraSouthWestPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) );
|
return Utils.calculateLineDistance(mCameraSouthWestPosition,
|
||||||
|
new MogoLatLng(mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS;
|
return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS;
|
||||||
}
|
}
|
||||||
@@ -524,8 +529,6 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 平移地图刷新策略
|
* 平移地图刷新策略
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
private boolean invokeRefreshWhenTranslationByUser(MogoLatLng latLng) {
|
private boolean invokeRefreshWhenTranslationByUser(MogoLatLng latLng) {
|
||||||
try {
|
try {
|
||||||
@@ -766,11 +769,13 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
}
|
}
|
||||||
} else if (ServiceConst.COMMAND_NEXT.equals(command)) {
|
} else if (ServiceConst.COMMAND_NEXT.equals(command)) {
|
||||||
if (mStatusManager.isMainPageOnResume()) {
|
if (mStatusManager.isMainPageOnResume()) {
|
||||||
mActionManager.invoke( MapMarkerManager.getInstance().getCurrentModuleName(), MogoAction.Next );
|
mActionManager.invoke(MapMarkerManager.getInstance().getCurrentModuleName(),
|
||||||
|
MogoAction.Next);
|
||||||
}
|
}
|
||||||
} else if (ServiceConst.COMMAND_PREVIOUS.equals(command)) {
|
} else if (ServiceConst.COMMAND_PREVIOUS.equals(command)) {
|
||||||
if (mStatusManager.isMainPageOnResume()) {
|
if (mStatusManager.isMainPageOnResume()) {
|
||||||
mActionManager.invoke( MapMarkerManager.getInstance().getCurrentModuleName(), MogoAction.Prev );
|
mActionManager.invoke(MapMarkerManager.getInstance().getCurrentModuleName(),
|
||||||
|
MogoAction.Prev);
|
||||||
}
|
}
|
||||||
} else if (ServiceConst.COMMAND_SWITCH_CARD.equals(command)) {
|
} else if (ServiceConst.COMMAND_SWITCH_CARD.equals(command)) {
|
||||||
String data = intent.getStringExtra("data");
|
String data = intent.getStringExtra("data");
|
||||||
@@ -833,8 +838,6 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 切换卡片
|
* 切换卡片
|
||||||
*
|
|
||||||
* @param card
|
|
||||||
*/
|
*/
|
||||||
private void switchCard2(String card) {
|
private void switchCard2(String card) {
|
||||||
if (isApplicationBroughtToBackground(mContext)) {
|
if (isApplicationBroughtToBackground(mContext)) {
|
||||||
@@ -909,9 +912,15 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mInternalUnWakeupRegisterStatus = true;
|
mInternalUnWakeupRegisterStatus = true;
|
||||||
AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV, ServiceConst.CMD_UN_WAKE_PREV_UN_WAKE_WORDS, this );
|
AIAssist.getInstance(mContext)
|
||||||
AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT, ServiceConst.CMD_UN_WAKE_NEXT_UN_WAKE_WORDS, this );
|
.registerUnWakeupCommand(ServiceConst.CMD_UN_WAKE_PREV,
|
||||||
AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, ServiceConst.CMD_UN_WAKEUP_WORDS_MY_LOCATION, this );
|
ServiceConst.CMD_UN_WAKE_PREV_UN_WAKE_WORDS, this);
|
||||||
|
AIAssist.getInstance(mContext)
|
||||||
|
.registerUnWakeupCommand(ServiceConst.CMD_UN_WAKE_NEXT,
|
||||||
|
ServiceConst.CMD_UN_WAKE_NEXT_UN_WAKE_WORDS, this);
|
||||||
|
AIAssist.getInstance(mContext)
|
||||||
|
.registerUnWakeupCommand(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION,
|
||||||
|
ServiceConst.CMD_UN_WAKEUP_WORDS_MY_LOCATION, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -922,17 +931,22 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mInternalUnWakeupRegisterStatus = false;
|
mInternalUnWakeupRegisterStatus = false;
|
||||||
AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV, this );
|
AIAssist.getInstance(mContext)
|
||||||
AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT, this );
|
.unregisterUnWakeupCommand(ServiceConst.CMD_UN_WAKE_PREV, this);
|
||||||
AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, this );
|
AIAssist.getInstance(mContext)
|
||||||
|
.unregisterUnWakeupCommand(ServiceConst.CMD_UN_WAKE_NEXT, this);
|
||||||
|
AIAssist.getInstance(mContext)
|
||||||
|
.unregisterUnWakeupCommand(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCmdSelected(String cmd) {
|
public void onCmdSelected(String cmd) {
|
||||||
if (TextUtils.equals(ServiceConst.CMD_UN_WAKE_PREV, cmd)) {
|
if (TextUtils.equals(ServiceConst.CMD_UN_WAKE_PREV, cmd)) {
|
||||||
mActionManager.invoke( MapMarkerManager.getInstance().getCurrentModuleName(), MogoAction.Prev );
|
mActionManager.invoke(MapMarkerManager.getInstance().getCurrentModuleName(),
|
||||||
|
MogoAction.Prev);
|
||||||
} else if (TextUtils.equals(ServiceConst.CMD_UN_WAKE_NEXT, cmd)) {
|
} else if (TextUtils.equals(ServiceConst.CMD_UN_WAKE_NEXT, cmd)) {
|
||||||
mActionManager.invoke( MapMarkerManager.getInstance().getCurrentModuleName(), MogoAction.Next );
|
mActionManager.invoke(MapMarkerManager.getInstance().getCurrentModuleName(),
|
||||||
|
MogoAction.Next);
|
||||||
} else if (TextUtils.equals(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, cmd)) {
|
} else if (TextUtils.equals(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, cmd)) {
|
||||||
if (mStatusManager.isMainPageOnResume()) {
|
if (mStatusManager.isMainPageOnResume()) {
|
||||||
mUiController.recoverLockMode();
|
mUiController.recoverLockMode();
|
||||||
@@ -966,10 +980,12 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
public void onTransaction(int size) {
|
public void onTransaction(int size) {
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
mUiController.setPointToCenter(0.66145, 0.661094);
|
mUiController.setPointToCenter(0.66145, 0.661094);
|
||||||
|
mUiController.showMyLocation(!mNavi.isNaviing());
|
||||||
AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ServiceConst.CMD_BACK);
|
AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ServiceConst.CMD_BACK);
|
||||||
} else {
|
} else {
|
||||||
AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this );
|
mUiController.showMyLocation(false);
|
||||||
|
AIAssist.getInstance(mContext)
|
||||||
|
.registerUnWakeupCommand(ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this);
|
||||||
mUiController.setPointToCenter(0.5, 0.5);
|
mUiController.setPointToCenter(0.5, 0.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user