diff --git a/main-extensions/mogo-module-main-independent/src/main/AndroidManifest.xml b/main-extensions/mogo-module-main-independent/src/main/AndroidManifest.xml
index fcfddb2b4a..0d4d401316 100644
--- a/main-extensions/mogo-module-main-independent/src/main/AndroidManifest.xml
+++ b/main-extensions/mogo-module-main-independent/src/main/AndroidManifest.xml
@@ -29,6 +29,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java
index 52bf70be04..63c9099486 100644
--- a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java
+++ b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java
@@ -17,6 +17,8 @@ public class MainIndependentActivity extends MainActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ // 独立app需要在onCreate里面增加处理scheme的情况
+ mPresenter.handleSchemeIntent(getIntent());
}
@Override
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 9520ef3000..8240544ce2 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
@@ -222,13 +222,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
// }
// });
// 原始逻辑
- isClickShare = true;
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
- } else {
- ShareControl.getInstance( getActivity() ).showDialog();
- traceData( "1" );
- }
+ showShareDialog();
} );
mDisplayOverview = findViewById( R.id.module_ext_id_display_overview );
@@ -348,6 +342,16 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mNaviInfo.inflate( rootView );
}
+ public void showShareDialog() {
+ isClickShare = true;
+ if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ } else {
+ mApis.getShareManager().showShareDialog();
+ traceData( "1" );
+ }
+ }
+
private static final String AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV";
@NonNull
@@ -395,7 +399,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
public void authorizeSuccess() {
Log.d( TAG, "authorizeSuccess --------> isClickShare = " + isClickShare );
if ( isClickShare ) {
- ShareControl.getInstance( getActivity() ).showDialog();
+ mApis.getShareManager().showShareDialog();
traceData( "1" );
} else {
mEntrancePresenter.handleNeedAuthorizeCmd();
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java
index 14ec2be9ab..b477536dcf 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java
@@ -80,6 +80,12 @@ public class SchemeIntent implements IMogoStatusChangedListener {
case "/main/switch2":
handleSwitch2Action( target );
break;
+ case "/main/share":
+ Logger.d(TAG,"收到打开分享框的scheme,准备打开分享框");
+ mApis.getShareManager().showShareDialog();
+ break;
+ default:
+ break;
}
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java
index 5307736cd1..c20c764113 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java
@@ -2,10 +2,12 @@ package com.mogo.module.share;
import android.content.Context;
+import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.module.share.dialog.LaucherShareDialog;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
+import com.mogo.service.share.IMogoShareManager;
import com.mogo.utils.logger.Logger;
/**
@@ -13,55 +15,27 @@ import com.mogo.utils.logger.Logger;
* @description 分享弹框接口
* @since 2020-01-10
*/
-public class ShareControl implements IShareControl {
+@Route(path = MogoServicePaths.PATH_SHARE)
+public class ShareControl implements IMogoShareManager {
- private static volatile ShareControl sInstance;
private Context mContext;
private LaucherShareDialog mShareDialog;
- private IMogoServiceApis mogoServiceApis;
-
- private ShareControl(Context context) {
- mContext = context;
- mogoServiceApis =
- (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context);
- }
-
- public IMogoServiceApis getMogoServiceApis(){
- return mogoServiceApis;
- }
-
- public static ShareControl getInstance(Context context) {
- if (sInstance == null) {
- synchronized (ShareControl.class) {
- if (sInstance == null) {
- sInstance = new ShareControl(context);
- }
- }
- }
- return sInstance;
- }
-
-
@Override
- public void showDialog() {
-
- boolean isAdasShow = mogoServiceApis.getStatusManagerApi().isADASShow();
- Logger.d("ShareControl", "showDialog 判断adas是否展示: " + isAdasShow);
-// if (isAdasShow) {
-// mogoServiceApis.getAdasControllerApi().closeADAS();
-// }
-
+ public void showShareDialog() {
mShareDialog = new LaucherShareDialog(mContext);
-// mShareDialog.setCanceledOnTouchOutside(true);
mShareDialog.show();
}
@Override
- public void dismissDialog() {
+ public void dismissShareDialog() {
if (mShareDialog != null) {
mShareDialog.dismiss();
}
}
+ @Override
+ public void init(Context context) {
+ mContext = context;
+ }
}
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
index 056450ac89..519f098dea 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
@@ -66,8 +66,8 @@ public class LaucherShareDialog implements View.OnClickListener {
public LaucherShareDialog(@NonNull Context context) {
this.mContext = context;
- mAnalytics = ShareControl.getInstance(context).getMogoServiceApis().getAnalyticsApi();
mApis = (IMogoServiceApis) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(context);
+ mAnalytics = mApis.getAnalyticsApi();
mStatusManager = mApis.getStatusManagerApi();
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
index 647a236561..73ba95f5a2 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
@@ -21,6 +21,7 @@ import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.module.IMogoSearchManager;
import com.mogo.service.module.IMogoSettingManager;
import com.mogo.service.network.IMogoNetwork;
+import com.mogo.service.share.IMogoShareManager;
import com.mogo.service.statusmanager.IMogoMsgCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
@@ -194,4 +195,10 @@ public interface IMogoServiceApis extends IProvider {
* @return
*/
IMogoMarkerService getMarkerService();
+
+ /**
+ * 其他模块调用分享框的显示和隐藏
+ * @return
+ */
+ IMogoShareManager getShareManager();
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
index 93986037c7..d511aaf799 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
@@ -170,6 +170,7 @@ public class MogoServicePaths {
/**
* 顶部1/2屏管理
*/
+ @Deprecated
public static final String PATH_EXTENSIONS_TOP_VIEW_MANAGER = "/topview/api";
/**
@@ -177,4 +178,10 @@ public class MogoServicePaths {
*/
@Deprecated
public static final String PATH_MARKER_SERVICE = "/mogomarker/api";
+
+ /**
+ * 其他模块调用分享框
+ */
+ @Deprecated
+ public static final String PATH_SHARE = "/extensions/share";
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/share/IMogoShareManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/share/IMogoShareManager.java
new file mode 100644
index 0000000000..2ed5841ad8
--- /dev/null
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/share/IMogoShareManager.java
@@ -0,0 +1,19 @@
+package com.mogo.service.share;
+
+import com.alibaba.android.arouter.facade.template.IProvider;
+
+/**
+ * 分享框管理接口
+ * @author tongchenfei
+ */
+public interface IMogoShareManager extends IProvider {
+ /**
+ * 显示分享框
+ */
+ void showShareDialog();
+
+ /**
+ * 隐藏分享框
+ */
+ void dismissShareDialog();
+}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
index 534de90589..30f5a47ab1 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
@@ -30,6 +30,7 @@ import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.module.IMogoSearchManager;
import com.mogo.service.module.IMogoSettingManager;
import com.mogo.service.network.IMogoNetwork;
+import com.mogo.service.share.IMogoShareManager;
import com.mogo.service.statusmanager.IMogoMsgCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
@@ -171,7 +172,12 @@ public class MogoServiceApis implements IMogoServiceApis {
return getApiInstance( IMogoMarkerService.class, MogoServicePaths.PATH_MARKER_SERVICE );
}
- private static < T extends IProvider > T getApiInstance( Class< T > clazz, String path ) {
+ @Override
+ public IMogoShareManager getShareManager() {
+ return getApiInstance(IMogoShareManager.class,MogoServicePaths.PATH_SHARE);
+ }
+
+ private static < T extends IProvider > T getApiInstance(Class< T > clazz, String path ) {
T inst = SingletonsHolder.get( clazz );
if ( inst == null ) {
synchronized ( sLock ) {