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 99ccd4db65..582be511b8 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
@@ -601,11 +601,11 @@ public class AMapNaviViewWrapper implements IMogoMapView,
}
@Override
- public void displayOverview() {
+ public void displayOverview( Rect bounds ) {
if ( checkAMapView() ) {
if ( NaviClient.getInstance( getContext() ).isNaviing() ) {
loseLockMode();
- NaviClient.getInstance( getContext() ).displayOverview();
+ NaviClient.getInstance( getContext() ).displayOverview(bounds);
}
}
}
@@ -633,6 +633,7 @@ public class AMapNaviViewWrapper implements IMogoMapView,
if ( checkAMapView() ) {
mMapView.setCarOverlayVisible( false );
showMyLocation( true );
+ NaviClient.getInstance( getContext() ).startAimlessMode();
}
}
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 5d6afc5cfe..64d0b14bc9 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
@@ -11,6 +11,7 @@ import com.amap.api.navi.enums.AimLessMode;
import com.amap.api.navi.enums.NaviType;
import com.amap.api.navi.model.NaviLatLng;
import com.mogo.commons.AbsMogoApplication;
+import com.mogo.commons.voice.AIAssist;
import com.mogo.map.MogoLatLng;
import com.mogo.map.impl.amap.AMapWrapper;
import com.mogo.map.impl.amap.message.AMapMessageManager;
@@ -22,6 +23,7 @@ import com.mogo.map.navi.MogoNaviConfig;
import com.mogo.map.navi.MogoNaviListenerHandler;
import com.mogo.map.navi.OnCalculatePathItemClickInteraction;
import com.mogo.utils.logger.Logger;
+import com.mogo.utils.storage.SharedPrefsMgr;
import java.util.ArrayList;
import java.util.Arrays;
@@ -35,7 +37,13 @@ import java.util.List;
*/
public class NaviClient implements IMogoNavi {
+ /**
+ * 巡航状态控制
+ */
+ public static final String KEY_AIMLESS_STATUS = "KEY_AIMLESS_STATUS";
+
private static final String TAG = "NaviClient";
+ private final Context mContext;
private AMapNavi mAMapNavi;
private final NaviListenerAdapter mAMapNaviListener;
@@ -55,16 +63,27 @@ public class NaviClient implements IMogoNavi {
private Location mCarLocation;
private IMogoCarLocationChangedListener mCarLocationChangedListener;
private LocationSource.OnLocationChangedListener mOnLocationChangedListener;
+ /**
+ * 巡航模式配置状态
+ */
+ private boolean mAimlessModeStatus;
+
+ /**
+ * 巡航状态
+ */
+ private boolean mAimlessStatus;
private NaviClient( Context context ) {
+ mContext = context;
mAMapNavi = AMapNavi.getInstance( context );
mAMapNavi.setEmulatorNaviSpeed( 120 );
- mAMapNavi.setUseInnerVoice( false, true );
+ mAMapNavi.setUseInnerVoice( true, true );
mAMapNaviListener = new NaviListenerAdapter( context, mAMapNavi, this );
mAimlessModeListener = new AimlessModeListenerAdapter() {
};
mAMapNavi.addAMapNaviListener( mAMapNaviListener );
mAMapNavi.addAimlessModeListener( mAimlessModeListener );
+ mAimlessModeStatus = SharedPrefsMgr.getInstance( mContext ).getBoolean( KEY_AIMLESS_STATUS, false );
}
public static NaviClient getInstance( Context context ) {
@@ -151,7 +170,7 @@ public class NaviClient implements IMogoNavi {
return;
}
mIsRealNavi = isRealNavi;
-
+ stopAimlessMode();
boolean isNaving = isNaviing();
boolean result = mAMapNavi.startNavi( isRealNavi ? NaviType.GPS : NaviType.EMULATOR );
if ( isNaving && !result ) {
@@ -274,18 +293,42 @@ public class NaviClient implements IMogoNavi {
@Override
public void startAimlessMode() {
- mAMapNavi.startAimlessMode( AimLessMode.CAMERA_AND_SPECIALROAD_DETECTED );
+ if ( mAimlessModeStatus && !isNaviing() ) {
+ mAMapNavi.startAimlessMode( AimLessMode.CAMERA_AND_SPECIALROAD_DETECTED );
+ mAimlessStatus = true;
+ Logger.d( TAG, "开启巡航成功" );
+ } else {
+ mAimlessStatus = false;
+ Logger.d( TAG, "开启巡航失败" );
+ }
}
@Override
public void stopAimlessMode() {
mAMapNavi.stopAimlessMode();
+ mAimlessStatus = false;
+ Logger.d( TAG, "关闭巡航成功" );
}
@Override
- public void displayOverview() {
+ public void setAimlessModeStatus( boolean open ) {
+ this.mAimlessModeStatus = open;
+ SharedPrefsMgr.getInstance( mContext ).putBoolean( KEY_AIMLESS_STATUS, open );
+ if ( open ) {
+ if ( !mAimlessStatus ) {
+ startAimlessMode();
+ }
+ } else {
+ if ( mAimlessStatus ) {
+ stopAimlessMode();
+ }
+ }
+ }
+
+ @Override
+ public void displayOverview( Rect bounds ) {
if ( mAMapNaviListener != null ) {
- mAMapNaviListener.displayOverview();
+ mAMapNaviListener.displayOverview( bounds );
}
}
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 dfd56d70de..c402fdc0a4 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
@@ -95,6 +95,7 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter {
@Override
public void onInitNaviSuccess() {
MogoNaviListenerHandler.getInstance().onInitNaviSuccess();
+ NaviClient.getInstance( mContext ).startAimlessMode();
}
@Override
@@ -245,9 +246,10 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter {
public void handleClickedPolyline( Polyline polyline ) {
if ( mNaviOverlayHelper != null ) {
+
mNaviOverlayHelper.handleClickedPolyline( polyline, isNaviing() );
mAMapNavi.selectRouteId( mNaviOverlayHelper.getSelectedPathId() );
- mNaviOverlayHelper.showBounds();
+ mNaviOverlayHelper.showBoundsWithSettingBounds();
}
}
@@ -291,9 +293,9 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter {
}
}
- public void displayOverview(){
+ public void displayOverview( Rect bounds ) {
if ( mNaviOverlayHelper != null ) {
- mNaviOverlayHelper.displayOverview();
+ mNaviOverlayHelper.displayOverview( 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 19cd0dabfb..9448f2b296 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
@@ -99,7 +99,7 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
if ( after != null ) {
after.run();
}
- } );
+ }, mBoundRect );
}
private LatLngBounds getBounds() {
@@ -169,25 +169,32 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
}
}
- public void showBounds() {
+ public void showBoundsWithSettingBounds() {
+ showBounds( mBoundRect );
+ }
+
+ public void showBounds( Rect bounds ) {
Logger.d( TAG, "showBounds" );
- showPathsBound( getBounds(), null );
+ showPathsBound( getBounds(), null, bounds );
}
/**
* 将规划好的路径显示在视野内
*/
- private void showPathsBound( LatLngBounds bounds, Runnable after ) {
+ private void showPathsBound( LatLngBounds bounds, Runnable after, Rect rect ) {
if ( bounds == null ) {
return;
}
+ if ( rect == null ) {
+ rect = new Rect();
+ }
checkAMapInstance();
mAMap.moveCamera( CameraUpdateFactory.newLatLngBoundsRect(
bounds,
- mBoundRect.left,
- mBoundRect.right,
- mBoundRect.top,
- mBoundRect.bottom ));
+ rect.left,
+ rect.right,
+ rect.top,
+ rect.bottom ) );
if ( after != null ) {
after.run();
}
@@ -431,7 +438,7 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
public void onItemClicked( String tagId ) {
handleClickedPolyline( tagId );
mAMapNavi.selectRouteId( getSelectedPathId() );
- showBounds();
+ showBounds( mBoundRect );
}
public OnCalculatePathItemClickInteraction getItemClickInteraction() {
@@ -451,7 +458,7 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
/**
* 展示全程
*/
- public void displayOverview(){
- showBounds();
+ public void displayOverview( Rect bounds ) {
+ showBounds( bounds );
}
}
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 6e395ec1ba..b5f5c7da96 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
@@ -126,9 +126,9 @@ public class AMapUIController implements IMogoMapUIController {
}
@Override
- public void displayOverview() {
+ public void displayOverview( Rect bounds ) {
if (mClient != null) {
- mClient.displayOverview();
+ mClient.displayOverview(bounds);
}
}
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 4a780f8b61..40914d49b0 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
@@ -161,10 +161,17 @@ public interface IMogoNavi {
*/
void stopAimlessMode();
+ /**
+ * 设置巡航模式状态
+ *
+ * @param open
+ */
+ void setAimlessModeStatus( boolean open );
+
/**
* 查看全程
*/
- void displayOverview();
+ void displayOverview( Rect bounds );
/**
* 设置使用外部定位源
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 053ae1b848..a9dd283213 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
@@ -88,8 +88,10 @@ public interface IMogoMapUIController {
/**
* 预览全程
+ *
+ * @param bounds 显示范围
*/
- void displayOverview();
+ void displayOverview( Rect bounds );
/**
* 获取比例尺数据
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 e430a33b65..286b7aec12 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
@@ -120,9 +120,9 @@ public class MogoMapUIController implements IMogoMapUIController {
}
@Override
- public void displayOverview() {
+ public void displayOverview( Rect bounds ) {
if (mDelegate != null) {
- mDelegate.displayOverview();
+ mDelegate.displayOverview(bounds);
}
}
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 b3d7c0c75c..2e9ff0a525 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
@@ -197,9 +197,16 @@ public class MogoNavi implements IMogoNavi {
}
@Override
- public void displayOverview() {
+ public void setAimlessModeStatus( boolean open ) {
if ( mDelegate != null ) {
- mDelegate.displayOverview();
+ mDelegate.setAimlessModeStatus( open );
+ }
+ }
+
+ @Override
+ public void displayOverview( Rect bounds ) {
+ if ( mDelegate != null ) {
+ mDelegate.displayOverview(bounds);
}
}
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 3cb221d814..1ba191e0cf 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
@@ -24,8 +24,6 @@ import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoCongestionInfo;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
-import com.mogo.map.overlay.IMogoPolyline;
-import com.mogo.map.uicontroller.CarCursorOption;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant;
@@ -47,6 +45,7 @@ import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoAddressManager;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
+import com.mogo.utils.logger.Logger;
import java.util.HashMap;
import java.util.Map;
@@ -303,6 +302,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStartNavi() {
+ mSearch.setVisibility( View.GONE );
mCommonAddress.setVisibility( View.GONE );
mNaviInfo.setVisibility( View.VISIBLE );
mCameraMode.setVisibility( View.VISIBLE );
@@ -315,6 +315,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStopNavi() {
+ mSearch.setVisibility( View.VISIBLE );
mCommonAddress.setVisibility( View.VISIBLE );
mNaviInfo.setVisibility( View.GONE );
mCameraMode.setVisibility( View.GONE );
@@ -345,7 +346,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mSpeedLimit.setVisibility( View.INVISIBLE );
mSpeedLimitValue.setText( "--" );
} else {
- mSpeedLimit.setVisibility( View.VISIBLE );
+ // 暂时不显示限速,等有好的显示方案在放开
+ mSpeedLimit.setVisibility( View.INVISIBLE );
mSpeedLimitValue.setText( String.valueOf( traffic.getSpeedLimit() ) );
}
}
@@ -380,6 +382,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mIsLock = isLock;
if ( isLock ) {
mExitNavi.setText( R.string.module_ext_str_exit_navi );
+ if ( mMogoStatusManager.isDisplayOverview() ) {
+ mMogoStatusManager.setDisplayOverview( TAG, false );
+ }
} else {
mExitNavi.setText( R.string.module_ext_str_continue_navi );
}
@@ -400,4 +405,32 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
properties.put( "from", from );
mAnalytics.track( "Launcher_Share_Click", properties );
}
+
+ @Override
+ public void showNaviPanelWidgets() {
+ if ( !mMogoNavi.isNaviing() ) {
+ return;
+ }
+ mNaviInfo.setVisibility( View.VISIBLE );
+ mCameraMode.setVisibility( View.VISIBLE );
+ try {
+ mApis.getWindowManagerApi().showAll();
+ } catch ( Exception e ) {
+ Logger.e( TAG, e, "error." );
+ }
+ }
+
+ @Override
+ public void hideNaviPanelWidgets() {
+ if ( !mMogoNavi.isNaviing() ) {
+ return;
+ }
+ mNaviInfo.setVisibility( View.GONE );
+ mCameraMode.setVisibility( View.GONE );
+ try {
+ mApis.getWindowManagerApi().hideAll();
+ } catch ( Exception e ) {
+ Logger.e( TAG, e, "error." );
+ }
+ }
}
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 c998dcc7ab..7662f0ac2a 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
@@ -6,6 +6,9 @@ import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
+import androidx.annotation.NonNull;
+import androidx.lifecycle.LifecycleOwner;
+
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
@@ -14,10 +17,14 @@ import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant;
import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.share.ShareControl;
+import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
+import com.mogo.service.statusmanager.IMogoStatusChangedListener;
+import com.mogo.service.statusmanager.IMogoStatusManager;
+import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.logger.Logger;
import org.json.JSONObject;
@@ -33,7 +40,7 @@ import static com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerCons
*
* 描述
*/
-public class EntrancePresenter extends Presenter {
+public class EntrancePresenter extends Presenter< EntranceView > implements IMogoStatusChangedListener {
private Context mContext;
private IMogoAnalytics mAnalytics;
@@ -42,32 +49,28 @@ public class EntrancePresenter extends Presenter {
private IMogoAuthorizeModuleManager mIMogoAuthorizeModuleManager;
private String mVoiceCmdType; //一级命令
private String mVoiceCmdShareType; //对某些一级命令里面细分的类型做处理
+ private IMogoStatusManager mStatusManager;
- public EntrancePresenter(Context context, EntranceView view, IMogoAuthorizeModuleManager authorizeModuleManager) {
- super(view);
+ public EntrancePresenter( Context context, EntranceView view, IMogoAuthorizeModuleManager authorizeModuleManager ) {
+ super( view );
mContext = context;
- mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext());
- mogoIntentManager = (IMogoIntentManager) ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation(getContext());
+ IMogoServiceApis apis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( mContext );
+ mAnalytics = apis.getAnalyticsApi();
+ mogoIntentManager = apis.getIntentManagerApi();
mIMogoAuthorizeModuleManager = authorizeModuleManager;
-
+ mStatusManager = apis.getStatusManagerApi();
registerUnWake();
registerAwakeVoice();
}
-
private void registerUnWake() {
- AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.CLOSE,
- ExtensionsModuleConst.CMD_CLOSE, mogoVoiceListener);
- AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE,
- ExtensionsModuleConst.CMD_CANCLE_SHARE, mogoVoiceListener);
+ AIAssist.getInstance( mContext ).registerUnWakeupCommand( ExtensionsModuleConst.CLOSE, 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);
+ 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 );
}
/**
@@ -75,31 +78,31 @@ public class EntrancePresenter extends Presenter {
*/
private IMogoVoiceCmdCallBack mogoVoiceListener = new IMogoVoiceCmdCallBack() {
@Override
- public void onCmdSelected(String cmd) {
- Log.d(TAG, "免唤醒 mogoVoiceListener needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE) + " >>>cmd = " + cmd);
+ public void onCmdSelected( String cmd ) {
+ Log.d( TAG, "免唤醒 mogoVoiceListener needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) + " >>>cmd = " + cmd );
mVoiceCmdType = cmd;
- if (cmd.equals(ExtensionsModuleConst.CANCLE_SHARE)
- || cmd.equals(ExtensionsModuleConst.CLOSE)) { //取消分享,关闭页面
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ if ( cmd.equals( ExtensionsModuleConst.CANCLE_SHARE )
+ || cmd.equals( ExtensionsModuleConst.CLOSE ) ) { //取消分享,关闭页面
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
- ShareControl.getInstance(mContext).dismissDialog();
+ ShareControl.getInstance( mContext ).dismissDialog();
}
- } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)) { //上报拥堵
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ } else if ( cmd.equals( ExtensionsModuleConst.UPLOAD_ROAD_BLOCK ) ) { //上报拥堵
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
uploadRoadCondition();
}
- } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ } else if ( cmd.equals( ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK ) ) { //上报交通检查
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
uploadTrfficCheck();
}
- } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ } else if ( cmd.equals( ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE ) ) { //上报封路
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
uploadRoadClosed();
}
@@ -107,32 +110,38 @@ public class EntrancePresenter extends Presenter {
}
@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 ) {
}
};
+ @Override
+ public void onCreate( @NonNull LifecycleOwner owner ) {
+ super.onCreate( owner );
+ mStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.DISPLAY_OVERVIEW, this );
+ }
+
/**
* 注册唤醒命令
*/
private void registerAwakeVoice() {
- mogoIntentManager.registerIntentListener(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION, mogoIntentListener);
+ mogoIntentManager.registerIntentListener( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION, mogoIntentListener );
- mogoIntentManager.registerIntentListener(ExtensionsModuleConst.GO_TO_SHARE, mogoIntentListener);
- mogoIntentManager.registerIntentListener(ExtensionsModuleConst.SHARE_DIALOG_CLOSE, mogoIntentListener);
- mogoIntentManager.registerIntentListener(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN, mogoIntentListener);
- mogoIntentManager.registerIntentListener(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE, mogoIntentListener);
+ mogoIntentManager.registerIntentListener( ExtensionsModuleConst.GO_TO_SHARE, mogoIntentListener );
+ mogoIntentManager.registerIntentListener( ExtensionsModuleConst.SHARE_DIALOG_CLOSE, mogoIntentListener );
+ mogoIntentManager.registerIntentListener( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN, mogoIntentListener );
+ mogoIntentManager.registerIntentListener( ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE, mogoIntentListener );
}
/**
@@ -140,81 +149,81 @@ public class EntrancePresenter extends Presenter {
*/
private IMogoIntentListener mogoIntentListener = new IMogoIntentListener() {
@Override
- public void onIntentReceived(String intentStr, Intent intent) {
+ public void onIntentReceived( String intentStr, Intent intent ) {
mVoiceCmdType = intentStr;
EntranceFragment.isClickShare = false;
- String data = intent.getStringExtra("data");
- Log.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data + " >>> needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE));
- if (intentStr.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //我要分享 --ok
- String conditionData = intent.getStringExtra("data");
- Log.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>conditionData =" + conditionData);
+ String data = intent.getStringExtra( "data" );
+ Log.d( TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data + " >>> needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) );
+ if ( intentStr.equals( ExtensionsModuleConst.GO_TO_SHARE ) ) { //我要分享 --ok
+ String conditionData = intent.getStringExtra( "data" );
+ Log.d( TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>conditionData =" + conditionData );
try {
- JSONObject jsonObject = new JSONObject(data);
- String typeString = jsonObject.get("ob").toString();
- Log.d(TAG, "mogoIntentListener specified typeString = " + typeString);
+ JSONObject jsonObject = new JSONObject( data );
+ String typeString = jsonObject.get( "ob" ).toString();
+ Log.d( TAG, "mogoIntentListener specified typeString = " + typeString );
mVoiceCmdShareType = typeString;
- if (!TextUtils.isEmpty(typeString)) {
- if (typeString.equals("封路")) {
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ if ( !TextUtils.isEmpty( typeString ) ) {
+ if ( typeString.equals( "封路" ) ) {
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
- Log.d(TAG, "mogoIntentListener 封路 -------> ");
+ Log.d( TAG, "mogoIntentListener 封路 -------> " );
uploadRoadClosed();
}
- } else if (typeString.equals("油价")) {
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ } else if ( typeString.equals( "油价" ) ) {
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
- Log.d(TAG, "mogoIntentListener 油价 -------> ");
+ Log.d( TAG, "mogoIntentListener 油价 -------> " );
shareOilPrice();
}
- } else if (typeString.equals("交通检查")) {
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ } else if ( typeString.equals( "交通检查" ) ) {
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
- Log.d(TAG, "mogoIntentListener 交通检查 -------> ");
+ Log.d( TAG, "mogoIntentListener 交通检查 -------> " );
uploadTrfficCheck();
}
}
} else {
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
- ShareControl.getInstance(mContext).showDialog();
- Log.d(TAG, "mogoIntentListener 我要分享 ----> ");
- traceData("2");
+ ShareControl.getInstance( mContext ).showDialog();
+ Log.d( TAG, "mogoIntentListener 我要分享 ----> " );
+ traceData( "2" );
}
}
- } catch (Exception e) {
+ } catch ( Exception e ) {
e.printStackTrace();
}
- } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN)) {
+ } else if ( intentStr.equals( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN ) ) {
//分享路况/上报路况/上报拥堵 唤醒
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
uploadRoadCondition();
- Log.d(TAG, "mogoIntentListener 分享路况 唤醒 ----> ");
+ Log.d( TAG, "mogoIntentListener 分享路况 唤醒 ----> " );
}
- } else if (intentStr.equals(ExtensionsModuleConst.SHARE_DIALOG_CLOSE)) { //关闭分享框 唤醒
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ } else if ( intentStr.equals( ExtensionsModuleConst.SHARE_DIALOG_CLOSE ) ) { //关闭分享框 唤醒
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
- ShareControl.getInstance(mContext).dismissDialog();
- Log.d(TAG, "mogoIntentListener 关闭分享框 唤醒 ----> ");
+ ShareControl.getInstance( mContext ).dismissDialog();
+ Log.d( TAG, "mogoIntentListener 关闭分享框 唤醒 ----> " );
}
- } else if (intentStr.equals(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE)) {
+ } else if ( intentStr.equals( ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE ) ) {
// 两次未回复关闭对话框
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
- ShareControl.getInstance(mContext).dismissDialog();
- Logger.d(TAG, "mogoIntentListener 两次未回复关闭对话框");
+ ShareControl.getInstance( mContext ).dismissDialog();
+ Logger.d( TAG, "mogoIntentListener 两次未回复关闭对话框" );
}
- } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) { //上报路况 免唤醒 --ok
- if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
- mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
+ } else if ( intentStr.equals( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION ) ) { //上报路况 免唤醒 --ok
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
uploadRoadCondition();
}
@@ -227,65 +236,65 @@ public class EntrancePresenter extends Presenter {
* 处理需要授权的命令 TODO
*/
public void handleNeedAuthorizeCmd() {
- Log.e(TAG, "handleNeedAuthorizeCmd mVoiceCmdType = " + mVoiceCmdType + " >>> mVoiceCmdShareType = " + mVoiceCmdShareType);
- if (!TextUtils.isEmpty(mVoiceCmdType)) {
- if (mVoiceCmdType.equals(ExtensionsModuleConst.CANCLE_SHARE) || mVoiceCmdType.equals(ExtensionsModuleConst.CLOSE)
- || mVoiceCmdType.equals(ExtensionsModuleConst.SHARE_DIALOG_CLOSE) || mVoiceCmdType.equals(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE)) { //关闭分享弹框
- ShareControl.getInstance(mContext).dismissDialog();
- } else if (mVoiceCmdType.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //打开分享弹框
- if (!TextUtils.isEmpty(mVoiceCmdShareType)) {
- if (mVoiceCmdShareType.equals("封路")) {
- Log.d(TAG, "handleNeedAuthorizeCmd 封路 -------> ");
+ Log.e( TAG, "handleNeedAuthorizeCmd mVoiceCmdType = " + mVoiceCmdType + " >>> mVoiceCmdShareType = " + mVoiceCmdShareType );
+ if ( !TextUtils.isEmpty( mVoiceCmdType ) ) {
+ if ( mVoiceCmdType.equals( ExtensionsModuleConst.CANCLE_SHARE ) || mVoiceCmdType.equals( ExtensionsModuleConst.CLOSE )
+ || mVoiceCmdType.equals( ExtensionsModuleConst.SHARE_DIALOG_CLOSE ) || mVoiceCmdType.equals( ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE ) ) { //关闭分享弹框
+ ShareControl.getInstance( mContext ).dismissDialog();
+ } else if ( mVoiceCmdType.equals( ExtensionsModuleConst.GO_TO_SHARE ) ) { //打开分享弹框
+ if ( !TextUtils.isEmpty( mVoiceCmdShareType ) ) {
+ if ( mVoiceCmdShareType.equals( "封路" ) ) {
+ Log.d( TAG, "handleNeedAuthorizeCmd 封路 -------> " );
uploadRoadClosed();
- } else if (mVoiceCmdShareType.equals("油价")) {
- Log.d(TAG, "handleNeedAuthorizeCmd 油价 -------> ");
+ } else if ( mVoiceCmdShareType.equals( "油价" ) ) {
+ Log.d( TAG, "handleNeedAuthorizeCmd 油价 -------> " );
shareOilPrice();
- } else if (mVoiceCmdShareType.equals("交通检查")) {
- Log.d(TAG, "handleNeedAuthorizeCmd 交通检查 -------> ");
+ } else if ( mVoiceCmdShareType.equals( "交通检查" ) ) {
+ Log.d( TAG, "handleNeedAuthorizeCmd 交通检查 -------> " );
uploadTrfficCheck();
}
} else {
- ShareControl.getInstance(mContext).showDialog();
- Log.d(TAG, "handleNeedAuthorizeCmd 我要分享 ----> ");
- traceData("2");
+ ShareControl.getInstance( mContext ).showDialog();
+ Log.d( TAG, "handleNeedAuthorizeCmd 我要分享 ----> " );
+ traceData( "2" );
}
- } else if (mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查
- Log.d(TAG, "handleNeedAuthorizeCmd 上报交通检查 ----> ");
+ } else if ( mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK ) ) { //上报交通检查
+ Log.d( TAG, "handleNeedAuthorizeCmd 上报交通检查 ----> " );
uploadTrfficCheck();
- } else if (mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路
- Log.d(TAG, "handleNeedAuthorizeCmd 上报封路 ----> ");
+ } else if ( mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE ) ) { //上报封路
+ Log.d( TAG, "handleNeedAuthorizeCmd 上报封路 ----> " );
uploadRoadClosed();
- } else if (mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)
- || mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN)
- || mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) { //上报拥堵, 分享路况, 上报路况
- Log.d(TAG, "handleNeedAuthorizeCmd 上报路况 ----> ");
+ } else if ( mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_ROAD_BLOCK )
+ || mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN )
+ || mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION ) ) { //上报拥堵, 分享路况, 上报路况
+ Log.d( TAG, "handleNeedAuthorizeCmd 上报路况 ----> " );
uploadRoadCondition();
}
} else {
- Log.e(TAG, "handleNeedAuthorizeCmd mVoiceCmdType == null ");
+ Log.e( TAG, "handleNeedAuthorizeCmd mVoiceCmdType == null " );
}
}
private void uploadRoadCondition() {
- traceTanluData("2");
- sendShareReceiver("1");
- Logger.d("EntrancePresenter", "mogoIntentListener 上报路况 ----> ");
- traceTypeData("1");
- ShareControl.getInstance(mContext).dismissDialog();
+ 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();
+ 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();
+ sendShareReceiver( "3" );
+ Logger.d( "EntrancePresenter", "mogoIntentListener 分享封路 ----> " );
+ traceTypeData( "4" );
+ ShareControl.getInstance( mContext ).dismissDialog();
}
/**
@@ -293,10 +302,10 @@ public class EntrancePresenter extends Presenter {
*
* @param from
*/
- private void traceData(String from) {
- Map properties = new HashMap<>();
- properties.put("from", from);
- mAnalytics.track(ExtensionsModuleConst.LAUNCHER_SHARE_CLICK, properties);
+ private void traceData( String from ) {
+ Map< String, Object > properties = new HashMap<>();
+ properties.put( "from", from );
+ mAnalytics.track( ExtensionsModuleConst.LAUNCHER_SHARE_CLICK, properties );
}
private void shareOilPrice() {
@@ -310,14 +319,14 @@ public class EntrancePresenter extends Presenter {
/**
* 发送广播 1拥堵,2交通检查,3封路
*/
- private void sendShareReceiver(String type) {
- Logger.d("EntrancePresenter", "TanluCardViewFragment sendShareReceiver ---->");
+ 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);
+ 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 );
}
/**
@@ -331,27 +340,35 @@ public class EntrancePresenter extends Presenter {
*
* @param type
*/
- private void traceTypeData(String type) {
- Map properties = new HashMap<>();
- properties.put("type", type);
- mAnalytics.track(ExtensionsModuleConst.LAUNCHER_SHARE_TYPE, properties);
+ private void traceTypeData( String type ) {
+ Map< String, Object > 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 traceTanluData( String type ) {
+ Map< String, Object > properties = new HashMap<>();
+ properties.put( "type", type );
+ mAnalytics.track( ExtensionsModuleConst.CARNET_USER_UPLOAD, properties );
}
public 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);
-
+ 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 );
}
+ @Override
+ public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
+ if ( descriptor == StatusDescriptor.DISPLAY_OVERVIEW ) {
+ if ( isTrue ) {
+ mView.hideNaviPanelWidgets();
+ } else {
+ mView.showNaviPanelWidgets();
+ }
+ }
+ }
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java
index 9ea2e13101..6309e1b02c 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java
@@ -9,4 +9,8 @@ import com.mogo.commons.mvp.IView;
* 描述
*/
public interface EntranceView extends IView {
+
+ void showNaviPanelWidgets();
+
+ void hideNaviPanelWidgets();
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
index 9e9a8846fe..6cfa8e244b 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
@@ -30,7 +30,7 @@ import com.mogo.module.main.cards.MogoModulesHandler;
import com.mogo.module.main.cards.MogoModulesManager;
import com.mogo.module.main.cards.OnPageChangeListenerAdapter;
import com.mogo.module.main.cards.OrientedViewPager;
-import com.mogo.module.main.windowview.WindowViewHandler;
+import com.mogo.module.main.windowview.FloatingViewHandler;
import com.mogo.module.service.ServiceConst;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
@@ -192,7 +192,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
// 避免事件穿透导致地图被滑动
mLeftShadowFrame.setOnClickListener( view -> {
} );
- WindowViewHandler.init( mFloatingLayout );
+ FloatingViewHandler.init( mFloatingLayout );
}
// 隐藏布局
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/FloatingViewHandler.java
similarity index 50%
rename from modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java
rename to modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/FloatingViewHandler.java
index 1b37bea1c9..5485f4778d 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/FloatingViewHandler.java
@@ -13,7 +13,7 @@ import com.mogo.utils.logger.Logger;
*
* 描述
*/
-public class WindowViewHandler {
+public class FloatingViewHandler {
private static final String TAG = "WindowViewHandler";
@@ -35,9 +35,9 @@ public class WindowViewHandler {
*/
private static boolean sMovable = false;
- public static FrameLayout sFloatingLayout = null;
+ private static FrameLayout sFloatingLayout = null;
- public static void init(FrameLayout frameLayout) {
+ public static void init( FrameLayout frameLayout ) {
sFloatingLayout = frameLayout;
}
@@ -49,20 +49,20 @@ public class WindowViewHandler {
* @param y
* @param movable
*/
- public static void addView(View view, int x, int y, boolean movable) {
- if (view == null) {
+ public static void addView( View view, int x, int y, boolean movable ) {
+ if ( view == null ) {
return;
}
- if (sFloatingLayout == null) {
- Logger.e(TAG, "no floating frame. ");
+ if ( sFloatingLayout == null ) {
+ Logger.e( TAG, "no floating frame. " );
return;
}
- FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT );
params.leftMargin = x;
params.topMargin = y;
- sFloatingLayout.addView(view, params);
+ sFloatingLayout.addView( view, params );
}
/**
@@ -72,16 +72,16 @@ public class WindowViewHandler {
* @param params
* @param movable
*/
- public static void addView(View view, FrameLayout.LayoutParams params, boolean movable) {
- if (view == null) {
+ public static void addView( View view, FrameLayout.LayoutParams params, boolean movable ) {
+ if ( view == null ) {
return;
}
- if (sFloatingLayout == null) {
- Logger.e(TAG, "no floating frame. ");
+ if ( sFloatingLayout == null ) {
+ Logger.e( TAG, "no floating frame. " );
return;
}
- sFloatingLayout.addView(view, params);
+ sFloatingLayout.addView( view, params );
}
/**
@@ -93,27 +93,27 @@ public class WindowViewHandler {
* @param y
* @param movable
*/
- public static void addView(View view, int priority, int x, int y, boolean movable) {
- if (view == null) {
+ public static void addView( View view, int priority, int x, int y, boolean movable ) {
+ if ( view == null ) {
return;
}
- if (sFloatingLayout == null) {
- Logger.e(TAG, "no floating frame. ");
+ if ( sFloatingLayout == null ) {
+ Logger.e( TAG, "no floating frame. " );
return;
}
- if (sView == view) {
- Logger.w(TAG, "改布局已添加且没有移除,不操作");
+ if ( sView == view ) {
+ Logger.w( TAG, "改布局已添加且没有移除,不操作" );
return;
}
- if (sView != null) {
- if (priority < sPriority) {
- Logger.w(TAG, "过滤低优先级布局");
+ if ( sView != null ) {
+ if ( priority < sPriority ) {
+ Logger.w( TAG, "过滤低优先级布局" );
return;
}
- sFloatingLayout.removeView(sView);
+ sFloatingLayout.removeView( sView );
}
sView = view;
sMovable = movable;
@@ -131,27 +131,27 @@ public class WindowViewHandler {
* @param params
* @param movable
*/
- public static void addView(View view, int priority, FrameLayout.LayoutParams params, boolean movable) {
- if (view == null) {
+ public static void addView( View view, int priority, FrameLayout.LayoutParams params, boolean movable ) {
+ if ( view == null ) {
return;
}
- if (sFloatingLayout == null) {
- Logger.e(TAG, "no floating frame. ");
+ if ( sFloatingLayout == null ) {
+ Logger.e( TAG, "no floating frame. " );
return;
}
- if (sView == view) {
- Logger.w(TAG, "改布局已添加且没有移除,不操作");
+ if ( sView == view ) {
+ Logger.w( TAG, "改布局已添加且没有移除,不操作" );
return;
}
- if (sView != null) {
- if (priority < sPriority) {
- Logger.w(TAG, "过滤低优先级布局");
+ if ( sView != null ) {
+ if ( priority < sPriority ) {
+ Logger.w( TAG, "过滤低优先级布局" );
return;
}
- sFloatingLayout.removeView(sView);
+ sFloatingLayout.removeView( sView );
}
sView = view;
sMovable = movable;
@@ -160,15 +160,15 @@ public class WindowViewHandler {
addView();
}
- public static void removeView(View view) {
- if (sFloatingLayout == null) {
+ public static void removeView( View view ) {
+ if ( sFloatingLayout == null ) {
return;
}
- if (view == null) {
+ if ( view == null ) {
return;
}
- sFloatingLayout.removeView(view);
- if (sView == view) {
+ sFloatingLayout.removeView( view );
+ if ( sView == view ) {
sView = null;
sPriority = Integer.MIN_VALUE;
sMovable = false;
@@ -177,29 +177,35 @@ public class WindowViewHandler {
}
private static void addView() {
- if (sView == null) {
+ if ( sView == null ) {
return;
}
FrameLayout.LayoutParams params = sParams;
- if (params == null) {
- params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ if ( params == null ) {
+ params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT );
params.leftMargin = sX;
params.topMargin = sY;
}
- sFloatingLayout.addView(sView, params);
+ sFloatingLayout.addView( sView, params );
}
- public static void attachMovementEvent(View view, WindowManager.LayoutParams params) {
- if (view == null) {
+ public static void attachMovementEvent( View view, WindowManager.LayoutParams params ) {
+ if ( view == null ) {
return;
}
- view.setOnTouchListener((v, event) -> {
+ view.setOnTouchListener( ( v, event ) -> {
DispatchTouchEventWrapper.getInstance()
- .attach(view, params)
- .handle(event);
+ .attach( view, params )
+ .handle( event );
return false;
- });
+ } );
+ }
+
+ public static void setVisible( boolean visible ) {
+ if ( sFloatingLayout != null ) {
+ sFloatingLayout.setVisibility( visible ? View.VISIBLE : View.INVISIBLE );
+ }
}
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java
index 2357701d68..f7b69a8dd2 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java
@@ -14,36 +14,46 @@ import com.mogo.service.windowview.IMogoWindowManager;
*
* 根据优先级控制显示 window view.
*/
-@Route(path = MogoServicePaths.PATH_WINDOW_MANAGER)
+@Route( path = MogoServicePaths.PATH_WINDOW_MANAGER )
public class MogoWindowManager implements IMogoWindowManager {
@Override
- public void addView(View view, int x, int y, boolean movable) {
- WindowViewHandler.addView(view, x, y, movable);
+ public void addView( View view, int x, int y, boolean movable ) {
+ FloatingViewHandler.addView( view, x, y, movable );
}
@Override
- public void addView(View view, FrameLayout.LayoutParams params, boolean movable) {
- WindowViewHandler.addView(view, params, movable);
+ public void addView( View view, FrameLayout.LayoutParams params, boolean movable ) {
+ FloatingViewHandler.addView( view, params, movable );
}
@Override
- public void addView(int priority, View view, int x, int y, boolean movable) {
- WindowViewHandler.addView(view, priority, x, y, movable);
+ public void addView( int priority, View view, int x, int y, boolean movable ) {
+ FloatingViewHandler.addView( view, priority, x, y, movable );
}
@Override
- public void addView(int priority, View view, FrameLayout.LayoutParams params, boolean movable) {
- WindowViewHandler.addView(view, priority, params, movable);
+ public void addView( int priority, View view, FrameLayout.LayoutParams params, boolean movable ) {
+ FloatingViewHandler.addView( view, priority, params, movable );
}
@Override
- public void removeView(View view) {
- WindowViewHandler.removeView(view);
+ public void removeView( View view ) {
+ FloatingViewHandler.removeView( view );
}
@Override
- public void init(Context context) {
+ public void hideAll() {
+ FloatingViewHandler.setVisible( false );
+ }
+
+ @Override
+ public void showAll() {
+ FloatingViewHandler.setVisible( true );
+ }
+
+ @Override
+ public void init( Context context ) {
}
}
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
index cc2ca88ad3..ff82c148d7 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
@@ -21,7 +21,8 @@ import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.MapControlResult;
-import com.mogo.module.common.MogoModulePaths;
+import com.mogo.module.common.map.MapCenterPointStrategy;
+import com.mogo.module.common.map.Scene;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.intent.IMogoIntentListener;
@@ -32,12 +33,8 @@ import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.module.IMogoSearchManager;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
-import com.mogo.service.voice.IMogoVoiceListener;
-import com.mogo.service.voice.IMogoVoiceManager;
-import com.mogo.utils.AppUtils;
import com.mogo.utils.ResourcesHelper;
import com.mogo.utils.UiThreadHandler;
-import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
import java.util.Map;
@@ -62,6 +59,7 @@ public class MapPresenter extends Presenter< MapView > implements
private IMogoStatusManager mStatusManager;
private IMogoRegisterCenter mRegisterCenter;
private IMogoLauncher mLauncher;
+ private Rect mDisplayOverviewBounds;
public MapPresenter( MapView view ) {
super( view );
@@ -99,11 +97,8 @@ public class MapPresenter extends Presenter< MapView > implements
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 );
- //AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
}
}
@@ -123,18 +118,14 @@ public class MapPresenter extends Presenter< MapView > implements
//intent.putExtra("EXTRA_ENDURANCE_DATA", continueNavi);
//继续导航
} else if ( key_type == 10049 ) {
- boolean extra_endurance_data =
- intent.getBooleanExtra( "EXTRA_ENDURANCE_DATA", false );
+ boolean extra_endurance_data = intent.getBooleanExtra( "EXTRA_ENDURANCE_DATA", false );
if ( extra_endurance_data ) {
onContinueNavigation();
}
} else if ( key_type == 10006 ) {
-
int extra_is_show = intent.getIntExtra( "EXTRA_IS_SHOW", 0 );
-
if ( extra_is_show == 0 ) {
- mStatusManager.setUserInteractionStatus( TAG, true, false );
- mView.getUIController().displayOverview();
+ onDisplayOverview();
} else {
onContinueNavigation();
}
@@ -173,13 +164,16 @@ public class MapPresenter extends Presenter< MapView > implements
/**
* 继续导航
*/
- private void onContinueNavigation(){
+ private void onContinueNavigation() {
+
if ( mStatusManager.isMainPageOnResume() ) {
+ mStatusManager.setDisplayOverview( TAG, false );
mView.getUIController().recoverLockMode();
} else {
mLauncher.backToLauncher( getContext() );
UiThreadHandler.postDelayed( () -> {
try {
+ mStatusManager.setDisplayOverview( TAG, false );
mView.getUIController().recoverLockMode();
} catch ( Exception e ) {
e.printStackTrace();
@@ -188,6 +182,16 @@ public class MapPresenter extends Presenter< MapView > implements
}
}
+ private void onDisplayOverview() {
+ if ( !mMogoMapService.getNavi( getContext() ).isNaviing() ) {
+ Logger.d( TAG, "未开始导航." );
+ return;
+ }
+ mStatusManager.setUserInteractionStatus( TAG, true, false );
+ mStatusManager.setDisplayOverview( TAG, true );
+ mView.getUIController().displayOverview( mDisplayOverviewBounds );
+ }
+
private void zoomMap( boolean zoomIn ) {
boolean isLocked = mMogoMapService.getMapUIController().isCarLocked();
MapControlResult result = mView.getUIController().changeZoom( zoomIn );
@@ -229,11 +233,18 @@ public class MapPresenter extends Presenter< MapView > implements
IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
mogoNavi.setCalculatePathDisplayBounds( new Rect(
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_calculate_path_display_overview_left_margin ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_calculate_path_display_overview_top_margin ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_calculate_path_display_overview_right_margin ),
+ ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_calculate_path_display_overview_bottom_margin )
+ ) );
+
+ mDisplayOverviewBounds = 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
@@ -314,12 +325,10 @@ public class MapPresenter extends Presenter< MapView > implements
case VoiceConstants.CMD_MAP_NORTH_UP_MODE_UN_WAKEUP:
case VoiceConstants.CMD_MAP_NORTH_UP_MODE:
mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_3D_UN_WAKEUP:
case VoiceConstants.CMD_MAP_3D:
mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP:
@@ -359,7 +368,7 @@ public class MapPresenter extends Presenter< MapView > implements
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE:
- mView.getUIController().displayOverview();
+ onDisplayOverview();
break;
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE:
onContinueNavigation();
diff --git a/modules/mogo-module-map/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-map/src/main/res/values-ldpi/dimens.xml
index 7f51191319..bcf618205a 100644
--- a/modules/mogo-module-map/src/main/res/values-ldpi/dimens.xml
+++ b/modules/mogo-module-map/src/main/res/values-ldpi/dimens.xml
@@ -1,7 +1,13 @@
- 558px
- 174px
- 32px
- 80px
+ 558px
+ 174px
+ 32px
+ 80px
+
+
+ 534px
+ 100px
+ 68px
+ 32px
\ No newline at end of file
diff --git a/modules/mogo-module-map/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-map/src/main/res/values-xhdpi/dimens.xml
index 275b7ffcd1..2d58420a11 100644
--- a/modules/mogo-module-map/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-map/src/main/res/values-xhdpi/dimens.xml
@@ -1,7 +1,13 @@
- 977px
- 249px
- 61px
- 80px
+ 977px
+ 249px
+ 61px
+ 80px
+
+
+ 952px
+ 170px
+ 122px
+ 61px
\ No newline at end of file
diff --git a/modules/mogo-module-map/src/main/res/values/dimens.xml b/modules/mogo-module-map/src/main/res/values/dimens.xml
index 275b7ffcd1..4cf55c67a5 100644
--- a/modules/mogo-module-map/src/main/res/values/dimens.xml
+++ b/modules/mogo-module-map/src/main/res/values/dimens.xml
@@ -1,7 +1,13 @@
- 977px
- 249px
- 61px
- 80px
+
+ 977px
+ 249px
+ 61px
+ 80px
+
+ 952px
+ 170px
+ 122px
+ 61px
\ No newline at end of file
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 e67b538fc0..13428466a1 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
@@ -36,8 +36,6 @@ object NaviManager {
SearchServiceHolder.getNavi().stopNavi()
} else if (key_type == 20009) {
SearchServiceHolder.mogoLauncher.backToLauncher(context)
- gotoSearch()
-
} else if (key_type == 10005) {
// * 仅在导航场景下,⽀持第三⽅进⾏路线偏好的重新选择。
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/SettingManager.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/SettingManager.kt
index 66c998b9f9..4237428e43 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/SettingManager.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/SettingManager.kt
@@ -12,186 +12,195 @@ import com.mogo.service.module.IMogoSettingManager
* 2020-01-12.
*/
object SettingManager : IMogoSettingManager {
- private val KEY_PAHT_PREFER = "keyPath"
- private val KEY_VOLUME = "keyVolume"
- private val KEY_VOICE_STYLE = "keyVoice"
- private val KEY_MAP_TYPE = "keyMapType"
- private lateinit var settings: SharedPreferences
+ private val KEY_PAHT_PREFER = "keyPath"
+ private val KEY_VOLUME = "keyVolume"
+ private val KEY_VOICE_STYLE = "keyVoice"
+ private val KEY_MAP_TYPE = "keyMapType"
+ private val KEY_AIMLESS_MODE_TYPE = "keyAimlessModeType"
+ private lateinit var settings: SharedPreferences
- /**
- * 是否躲避拥堵
- */
- private var congestion = false
+ /**
+ * 是否躲避拥堵
+ */
+ private var congestion = false
- /**
- * 不走高速
- */
- private var avoidSpeed = false
+ /**
+ * 不走高速
+ */
+ private var avoidSpeed = false
- /**
- * 避免收费
- */
- private var cost = false
+ /**
+ * 避免收费
+ */
+ private var cost = false
- /**
- * 高速优先
- */
- private var highSpeed = false
- /**
- * 模拟导航
- */
- private var isMonitor: Boolean = false
+ /**
+ * 高速优先
+ */
+ private var highSpeed = false
+ /**
+ * 模拟导航
+ */
+ private var isMonitor: Boolean = false
- /**
- * GPS 模拟
- */
- private var isGpsSimulator: Boolean = false
+ /**
+ * GPS 模拟
+ */
+ private var isGpsSimulator: Boolean = false
- override fun getPathPrefer(): Int {
- return settings!!.getInt(KEY_PAHT_PREFER, 0)
- }
-
- override fun getVolume(): Int {
- return settings!!.getInt(KEY_VOLUME, 0)
- }
-
- override fun getVoiceStyle(): Int {
- return settings!!.getInt(KEY_VOICE_STYLE, R.id.rb_navi_detail)
- }
-
- override fun getMapType(): Int {
- return settings!!.getInt(KEY_MAP_TYPE, R.id.rb_navi_day)
- }
-
- fun setPathPrefer(type: Int) {
- settings!!.edit()
- .putInt(KEY_PAHT_PREFER, type)
- .apply()
- }
-
- fun setVolume(type: Int) {
- settings!!.edit()
- .putInt(KEY_VOLUME, type)
- .apply()
- }
-
- fun setVoiceStyle(type: Int) {
- settings!!.edit()
- .putInt(KEY_VOICE_STYLE, type)
- .apply()
- }
-
- fun setMapType(type: Int) {
- settings!!.edit()
- .putInt(KEY_MAP_TYPE, type)
- .apply()
- }
-
- fun setMonitor(type: Boolean) {
- isMonitor = type
- }
-
- fun isMonitor(): Boolean {
- return isMonitor
- }
-
- fun setGpsSimulator(type:Boolean){
- isGpsSimulator = type
- }
-
- fun isGpsSimulator(): Boolean {
- return isGpsSimulator
- }
-
- /**
- * 是否躲避拥堵
- */
- fun congestion(congestion: Boolean) {
- this.congestion = congestion
- save()
- }
-
- /**
- * 不走高速
- */
- fun avoidSpeed(avoidSpeed: Boolean) {
- this.avoidSpeed = avoidSpeed
- if (avoidSpeed) {
- this.highSpeed = false
+ override fun getPathPrefer(): Int {
+ return settings!!.getInt(KEY_PAHT_PREFER, 0)
}
- save()
- }
-
- /**
- * 避免收费
- */
- fun cost(cost: Boolean) {
- this.cost = cost
- if (cost) {
- this.highSpeed = false
+ override fun getVolume(): Int {
+ return settings!!.getInt(KEY_VOLUME, 0)
}
- save()
- }
-
- /**
- * 高速优先
- */
- fun highSpeed(highSpeed: Boolean) {
- this.highSpeed = highSpeed
- if (highSpeed) {
- this.avoidSpeed = false
- this.cost = false
+ override fun getVoiceStyle(): Int {
+ return settings!!.getInt(KEY_VOICE_STYLE, R.id.rb_navi_detail)
}
- save()
- }
+ override fun getMapType(): Int {
+ return settings!!.getInt(KEY_MAP_TYPE, R.id.rb_navi_day)
+ }
- fun isCongestion(): Boolean {
- return congestion
- }
+ fun setPathPrefer(type: Int) {
+ settings!!.edit()
+ .putInt(KEY_PAHT_PREFER, type)
+ .apply()
+ }
- fun isAvoidSpeed(): Boolean {
- return avoidSpeed
- }
+ fun setVolume(type: Int) {
+ settings!!.edit()
+ .putInt(KEY_VOLUME, type)
+ .apply()
+ }
- fun isCost(): Boolean {
- return cost
- }
+ fun setVoiceStyle(type: Int) {
+ settings!!.edit()
+ .putInt(KEY_VOICE_STYLE, type)
+ .apply()
+ }
- fun isHighSpeed(): Boolean {
- return highSpeed
- }
+ fun setMapType(type: Int) {
+ settings!!.edit()
+ .putInt(KEY_MAP_TYPE, type)
+ .apply()
+ }
- private fun save() {
- settings.edit()
- .putBoolean("congestion", congestion)
- .putBoolean("avoidSpeed", avoidSpeed)
- .putBoolean("cost", cost)
- .putBoolean("highSpeed", highSpeed)
- .apply()
- updateConfig()
+ fun setMonitor(type: Boolean) {
+ isMonitor = type
+ }
- }
+ fun isMonitor(): Boolean {
+ return isMonitor
+ }
- override fun init(context: Context) {
- settings = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
+ fun setGpsSimulator(type: Boolean) {
+ isGpsSimulator = type
+ }
- congestion = settings.getBoolean("congestion", false)
- avoidSpeed = settings.getBoolean("avoidSpeed", false)
- cost = settings.getBoolean("cost", false)
- highSpeed = settings.getBoolean("highSpeed", false)
- updateConfig()
- }
+ fun isGpsSimulator(): Boolean {
+ return isGpsSimulator
+ }
- private fun updateConfig() {
- SearchServiceHolder.getNavi()
- .naviConfig
- .cost(cost)
- .avoidSpeed(avoidSpeed)
- .highSpeed(highSpeed)
- .congestion(congestion)
- }
+ /**
+ * 是否躲避拥堵
+ */
+ fun congestion(congestion: Boolean) {
+ this.congestion = congestion
+ save()
+ }
+
+ /**
+ * 不走高速
+ */
+ fun avoidSpeed(avoidSpeed: Boolean) {
+ this.avoidSpeed = avoidSpeed
+ if (avoidSpeed) {
+ this.highSpeed = false
+ }
+ save()
+
+ }
+
+ /**
+ * 避免收费
+ */
+ fun cost(cost: Boolean) {
+ this.cost = cost
+ if (cost) {
+ this.highSpeed = false
+ }
+ save()
+
+ }
+
+ /**
+ * 高速优先
+ */
+ fun highSpeed(highSpeed: Boolean) {
+ this.highSpeed = highSpeed
+ if (highSpeed) {
+ this.avoidSpeed = false
+ this.cost = false
+ }
+ save()
+
+ }
+
+ fun isCongestion(): Boolean {
+ return congestion
+ }
+
+ fun isAvoidSpeed(): Boolean {
+ return avoidSpeed
+ }
+
+ fun isCost(): Boolean {
+ return cost
+ }
+
+ fun isHighSpeed(): Boolean {
+ return highSpeed
+ }
+
+ private fun save() {
+ settings.edit()
+ .putBoolean("congestion", congestion)
+ .putBoolean("avoidSpeed", avoidSpeed)
+ .putBoolean("cost", cost)
+ .putBoolean("highSpeed", highSpeed)
+ .apply()
+ updateConfig()
+
+ }
+
+ override fun init(context: Context) {
+ settings = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
+
+ congestion = settings.getBoolean("congestion", false)
+ avoidSpeed = settings.getBoolean("avoidSpeed", false)
+ cost = settings.getBoolean("cost", false)
+ highSpeed = settings.getBoolean("highSpeed", false)
+ updateConfig()
+ }
+
+ private fun updateConfig() {
+ SearchServiceHolder.getNavi()
+ .naviConfig
+ .cost(cost)
+ .avoidSpeed(avoidSpeed)
+ .highSpeed(highSpeed)
+ .congestion(congestion)
+ }
+
+ fun setAimlessMode(type: Int){
+ settings.edit().putInt(KEY_AIMLESS_MODE_TYPE, type).apply()
+ }
+
+ fun getAimlessMode():Int {
+ return settings.getInt(KEY_AIMLESS_MODE_TYPE, R.id.aimlessModeClose)
+ }
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt
index 07d9b1c445..ac06e82a34 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt
@@ -9,6 +9,7 @@ import android.widget.SeekBar
import android.widget.SeekBar.OnSeekBarChangeListener
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.commons.debug.DebugConfig
+import com.mogo.commons.voice.AIAssist
import com.mogo.map.constants.BroadcastMode
import com.mogo.map.uicontroller.EnumMapUI
import com.mogo.module.common.MogoModulePaths
@@ -79,9 +80,6 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- iv_back.setOnClickListener {
- SearchServiceHolder.fragmentManager.pop()
- }
initViews()
initEvent()
EventBus.getDefault().register(this)
@@ -101,7 +99,8 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
rb_navi_auto.isChecked = SettingManager.mapType == R.id.rb_navi_auto
rb_navi_detail.isChecked = SettingManager.voiceStyle == R.id.rb_navi_detail
rb_navi_draft.isChecked = SettingManager.voiceStyle == R.id.rb_navi_draft
-
+ aimlessModeClose.isChecked = SettingManager.getAimlessMode() == aimlessModeClose.id
+ aimlessModeOpen.isChecked = SettingManager.getAimlessMode() == aimlessModeOpen.id
updateHome()
updateCompany()
@@ -109,6 +108,9 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
}
private fun initEvent() {
+ rl_navi_setting_title.setOnClickListener {
+ SearchServiceHolder.fragmentManager.pop()
+ }
iv_sound_plus.setOnClickListener {
VolumeManager.getInstance(context).incVolume()
sb_navi_volume_progress.progress = sb_navi_volume_progress.progress.plus(10)
@@ -177,6 +179,21 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
}
}
+ aimlessModeGroup.setOnCheckedChangeListener { group, checkedId ->
+
+ SettingManager.setAimlessMode(checkedId)
+ when (checkedId){
+ R.id.aimlessModeClose -> {
+ SearchServiceHolder.getNavi().setAimlessModeStatus(false)
+ AIAssist.getInstance(mContext).speakTTSVoice("已为您关闭巡航模式")
+ }
+ R.id.aimlessModeOpen -> {
+ SearchServiceHolder.getNavi().setAimlessModeStatus(true)
+ AIAssist.getInstance(mContext).speakTTSVoice("已为您开启巡航模式")
+ }
+ }
+ }
+
tv_navi_clear_home_address.setOnClickListener {
AddressManager.deleteHome(context!!)
diff --git a/modules/mogo-module-search/src/main/res/layout/fragment_navi_setting.xml b/modules/mogo-module-search/src/main/res/layout/fragment_navi_setting.xml
index 1c4a00bfa9..821c7aafa5 100644
--- a/modules/mogo-module-search/src/main/res/layout/fragment_navi_setting.xml
+++ b/modules/mogo-module-search/src/main/res/layout/fragment_navi_setting.xml
@@ -313,6 +313,47 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/mogo-module-search/src/main/res/layout/fragment_search_category.xml b/modules/mogo-module-search/src/main/res/layout/fragment_search_category.xml
index 1b2b1d6786..10e1904bb2 100644
--- a/modules/mogo-module-search/src/main/res/layout/fragment_search_category.xml
+++ b/modules/mogo-module-search/src/main/res/layout/fragment_search_category.xml
@@ -125,7 +125,8 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
-
+ android:enabled="false"
+ android:inputType="none"
android:textSize="@dimen/module_search_et_text_size"
android:imeOptions="actionDone"
android:hint="@string/hint_map_search"
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 7ecb774534..469b899192 100644
--- a/modules/mogo-module-search/src/main/res/values/strings.xml
+++ b/modules/mogo-module-search/src/main/res/values/strings.xml
@@ -42,4 +42,7 @@
日夜模式
设置刷新帧率
清空历史记录,确定还是取消
+ 巡航播报设置
+ 开启
+ 关闭
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
index 5595cbabe8..9f01b0e2b7 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
@@ -207,8 +207,7 @@ public class MogoServices implements IMogoMapListener,
mUiController.setLockZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL );
mStatusManager.setUserInteractionStatus( TAG, true, false );
mUiController.recoverLockMode();
- notifyRefreshData( mLastAutoRefreshLocation,
- ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback );
+ notifyRefreshData( mLastAutoRefreshLocation, ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback );
}
};
private Context mContext;
@@ -505,6 +504,8 @@ public class MogoServices implements IMogoMapListener,
return;
}
+ Logger.d( TAG, "mLastZoomLevel = %s, zoom = %s", mLastZoomLevel, zoom );
+
// 手动刷新触发
if ( mLastZoomLevel - zoom > mCustomRefreshStrategy.getZoomOutLevel() ) {
// 缩放级别缩小
@@ -519,6 +520,7 @@ public class MogoServices implements IMogoMapListener,
msg.what = ServiceConst.MSG_MAP_CHANGED;
msg.obj = new RefreshObject( mCustomRefreshCallback, getQueryRadius(), latLng, 0 );
mThreadHandler.sendMessage( msg );
+ Logger.d( TAG, "平移触发" );
}
}
@@ -536,7 +538,6 @@ public class MogoServices implements IMogoMapListener,
*/
private boolean invokeRefreshWhenTranslationByUser( MogoLatLng latLng ) {
try {
- Trace.beginSection( "timer.invokeRefreshWhenTranslationByUser" );
float factor = 0.0f;
if ( mIsVertical ) {
factor = getMapCameraFactWidth();
@@ -547,7 +548,7 @@ public class MogoServices implements IMogoMapListener,
return false;
}
float distance = Utils.calculateLineDistance( latLng, mLastCustomRefreshCenterLocation );
- Trace.endSection();
+ Logger.d( TAG, "move distance = %s, factor = %s", distance, factor );
return distance > factor;
} catch ( Exception e ) {
Logger.e( TAG, e, "warming. " );
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
index 10250b21ab..967f8e7155 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
@@ -78,7 +78,7 @@ public class ServiceConst {
public static final int DEFAULT_LOCK_CAR_ZOOM_LEVEL = 16;
/**
- * 自动酸辛默认半径
+ * 自动刷新默认半径
*/
public static final int DEFAULT_AUTO_REFRESH_DATA_RADIUS = 2_000;
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 2828c1b12c..dede957aa0 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
@@ -606,18 +606,18 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
if ( markerCardResult == null ) {
return;
}
- JSONArray array = new JSONArray();
+ final Map< String, Object > properties = new HashMap<>();
List< MarkerOnlineCar > onlineCarList = markerCardResult.getOnlineCar();
List< MarkerExploreWay > exploreWayList = markerCardResult.getExploreWay();
List< MarkerShareMusic > shareMusicList = markerCardResult.getShareMusic();
List< MarkerNoveltyInfo > noveltyInfoList = markerCardResult.getNoveltyInfo();
int size = onlineCarList == null ? 0 : onlineCarList.size();
- fillNumberTrackEventBody( array, 3, size );
+ fillNumberTrackEventBody( properties, 3, size );
size = exploreWayList == null ? 0 : exploreWayList.size();
- fillNumberTrackEventBody( array, 1, size );
+ fillNumberTrackEventBody( properties, 1, size );
size = shareMusicList == null ? 0 : shareMusicList.size();
- fillNumberTrackEventBody( array, 4, size );
+ fillNumberTrackEventBody( properties, 4, size );
int num_gas_station = 0;
int num_traffic_check = 0;
@@ -650,18 +650,13 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
}
- fillNumberTrackEventBody( array, 2, num_gas_station );
- fillNumberTrackEventBody( array, 6, num_road_closed );
- fillNumberTrackEventBody( array, 5, num_traffic_check );
- fillNumberTrackEventBody( array, 7, num_shop_discount );
- fillNumberTrackEventBody( array, 8, num_fours_shop );
+ fillNumberTrackEventBody( properties, 2, num_gas_station );
+ fillNumberTrackEventBody( properties, 6, num_road_closed );
+ fillNumberTrackEventBody( properties, 5, num_traffic_check );
+ fillNumberTrackEventBody( properties, 7, num_shop_discount );
+ fillNumberTrackEventBody( properties, 8, num_fours_shop );
try {
- if ( array.length() == 0 ) {
- return;
- }
- final Map< String, Object > properties = new HashMap<>();
- properties.put( "data", array.toString() );
MarkerServiceHandler.getMogoAnalytics().track( "Launcher_Data_Get", properties );
} catch ( Exception e ) {
e.printStackTrace();
@@ -706,17 +701,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
/**
* 统计埋点
*/
- private synchronized static void fillNumberTrackEventBody( JSONArray arr, int type, int size ) {
- JSONObject object = new JSONObject();
- try {
- object.put( "type", type );
- object.put( "num", size );
- if ( arr != null ) {
- arr.put( object );
- }
- } catch ( JSONException e ) {
- e.printStackTrace();
- }
+ private synchronized static void fillNumberTrackEventBody( Map< String, Object > properties, int type, int size ) {
+ properties.put( "type" + type, type );
+ properties.put( "num" + type, size );
}
/**
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java
index 06105ec2f5..b5abb42654 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java
@@ -86,10 +86,18 @@ public interface IMogoStatusManager extends IProvider {
/**
* 求助状态
+ *
* @return
*/
boolean isSeekHelping();
+ /**
+ * 是否在查看全程状态
+ *
+ * @return
+ */
+ boolean isDisplayOverview();
+
/**
* 设置小智语音UI状态
*
@@ -174,10 +182,19 @@ public interface IMogoStatusManager extends IProvider {
/**
* 设置求助状态
+ *
* @param tag
* @param seekHelping
*/
- void setSeekHelping(String tag, boolean seekHelping);
+ void setSeekHelping( String tag, boolean seekHelping );
+
+ /**
+ * 设置展示全程状态
+ *
+ * @param tag
+ * @param display
+ */
+ void setDisplayOverview( String tag, boolean display );
/**
* 注册监听
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java
index 5dc6262546..f6f078d542 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java
@@ -64,5 +64,10 @@ public enum StatusDescriptor {
/**
* 求助状态
*/
- SEEK_HELPING;
+ SEEK_HELPING,
+
+ /**
+ * 展示全程
+ */
+ DISPLAY_OVERVIEW;
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java
index e3d86b0ae3..6ef9929854 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java
@@ -22,7 +22,7 @@ public interface IMogoWindowManager extends IProvider {
* @param y 左上角y坐标
* @param movable 是否可移动(无效)
*/
- void addView(View view, int x, int y, boolean movable);
+ void addView( View view, int x, int y, boolean movable );
/**
@@ -32,7 +32,7 @@ public interface IMogoWindowManager extends IProvider {
* @param params 布局参数
* @param movable 是否可移动(无效)
*/
- void addView(View view, FrameLayout.LayoutParams params, boolean movable);
+ void addView( View view, FrameLayout.LayoutParams params, boolean movable );
/**
* 向window中添加指定的布局,优先级大的展示
@@ -43,7 +43,7 @@ public interface IMogoWindowManager extends IProvider {
* @param y 左上角y坐标
* @param movable 是否可移动(无效)
*/
- void addView(int priority, View view, int x, int y, boolean movable);
+ void addView( int priority, View view, int x, int y, boolean movable );
/**
* 向window中添加指定的布局,优先级大的展示
@@ -53,12 +53,22 @@ public interface IMogoWindowManager extends IProvider {
* @param params 布局参数
* @param movable 是否可移动(无效)
*/
- void addView(int priority, View view, FrameLayout.LayoutParams params, boolean movable);
+ void addView( int priority, View view, FrameLayout.LayoutParams params, boolean movable );
/**
* 移除对应的 view
*
* @param view
*/
- void removeView(View view);
+ void removeView( View view );
+
+ /**
+ * 隐藏所有
+ */
+ void hideAll();
+
+ /**
+ * 显示所有
+ */
+ void showAll();
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java
index 117f11db27..47202f552c 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java
@@ -105,6 +105,11 @@ public class MogoStatusManager implements IMogoStatusManager {
return get_bool_val( StatusDescriptor.SEEK_HELPING );
}
+ @Override
+ public boolean isDisplayOverview() {
+ return get_bool_val( StatusDescriptor.DISPLAY_OVERVIEW );
+ }
+
private boolean get_bool_val( StatusDescriptor descriptor ) {
Boolean val = mStatus.get( descriptor );
return val == null ? false : val;
@@ -190,6 +195,13 @@ public class MogoStatusManager implements IMogoStatusManager {
recordStatusModifier( tag, StatusDescriptor.SEEK_HELPING );
}
+ @Override
+ public void setDisplayOverview( String tag, boolean display ) {
+ mStatus.put( StatusDescriptor.DISPLAY_OVERVIEW, display );
+ invokeStatusChangedListener( StatusDescriptor.DISPLAY_OVERVIEW, display );
+ recordStatusModifier( tag, StatusDescriptor.DISPLAY_OVERVIEW );
+ }
+
private void invokeStatusChangedListener( StatusDescriptor descriptor, boolean status ) {
if ( mListeners.containsKey( descriptor ) ) {
Iterator< IMogoStatusChangedListener > iterator = mListeners.get( descriptor ).iterator();