diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java
index ef4e5ad8e0..7dc4ce40d3 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java
@@ -8,6 +8,8 @@ import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.entity.MarkerResponse;
import com.mogo.module.common.entity.MarkerShowEntity;
+import com.mogo.module.guideshow.provider.GuideShowProviderConstant;
+import com.mogo.module.guideshow.provider.IGuideShowProvider;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
@@ -30,12 +32,14 @@ public class AppServiceHandler {
private static IMogoServiceApis mApis;
private static IMogoCardManager mMogoCardManager;
private static IMogoAnalytics mMogoAnalytics;
+ private static IGuideShowProvider mMogoGuideShow;
public static void init( final Context context ) {
mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context );
mMogoCardManager = mApis.getCardManagerApi();
mMogoAnalytics = mApis.getAnalyticsApi();
+ mMogoGuideShow = (IGuideShowProvider) ARouter.getInstance().build(GuideShowProviderConstant.GUIDE_SHOW_PROVIDER).navigation(context);
}
public static IMogoCardManager getMogoCardManager() {
@@ -44,4 +48,8 @@ public class AppServiceHandler {
public static IMogoAnalytics getMogoAnalytics() {
return mMogoAnalytics;
}
+
+ public static IGuideShowProvider getMogoGuideShow() {
+ return mMogoGuideShow;
+ }
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
index 9a5c6116f7..3abd4baaf0 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java
@@ -8,6 +8,7 @@ import com.mogo.commons.mvp.Presenter;
import com.mogo.module.apps.applaunch.AppLaunchFilter;
import com.mogo.module.apps.applaunch.AppLauncher;
import com.mogo.module.apps.applaunch.CardAppLauncher;
+import com.mogo.module.apps.applaunch.GuideShowLauncher111;
import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.apps.model.AppsModel;
import com.mogo.service.MogoServicePaths;
@@ -18,16 +19,19 @@ import com.mogo.utils.ThreadPoolService;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+
/**
* @author congtaowang
* @since 2019-12-30
*
* 描述
*/
-public class AppsPresenter extends Presenter< AppsView > {
+public class AppsPresenter extends Presenter {
private static final String TAG = "AppsPresenter";
@@ -37,81 +41,102 @@ public class AppsPresenter extends Presenter< AppsView > {
private IMogoCardManager mCardManager;
private IMogoStatusManager mMogoStatusManager;
- public AppsPresenter( AppsView view ) {
- super( view );
- mCardManager = ( IMogoCardManager ) ARouter.getInstance().build( MogoServicePaths.PATH_CARD_MANAGER ).navigation( getContext() );
- CardAppLauncher cardAppLauncher = new CardAppLauncher( this, mCardManager );
- cardAppLauncher.setNext( new AppLauncher() );
+ public AppsPresenter(AppsView view) {
+ super(view);
+ mCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation(getContext());
+ CardAppLauncher cardAppLauncher = new CardAppLauncher(this, mCardManager);
+ cardAppLauncher.setNext(new GuideShowLauncher111());
+ cardAppLauncher.setNext(new AppLauncher());
mLauncher = cardAppLauncher;
}
@Override
- public void onCreate( @NonNull LifecycleOwner owner ) {
- super.onCreate( owner );
+ public void onCreate(@NonNull LifecycleOwner owner) {
+ super.onCreate(owner);
renderAppsList();
- AppsListChangedLiveData.getInstance().observeForever( bool -> {
- if ( mView != null ) {
+ AppsListChangedLiveData.getInstance().observeForever(bool -> {
+ if (mView != null) {
renderAppsList();
}
- } );
+ });
- mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() );
- mMogoStatusManager = ( IMogoStatusManager ) ARouter.getInstance().build( MogoServicePaths.PATH_STATUS_MANAGER ).navigation();
- mMogoStatusManager.setAppListUIShow( TAG, true );
+ mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext());
+ mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation();
+ mMogoStatusManager.setAppListUIShow(TAG, true);
}
private void renderAppsList() {
- ThreadPoolService.execute( () -> {
- AppsModel.getInstance( getContext() ).load( appInfoList -> {
+ ThreadPoolService.execute(() -> {
+ AppsModel.getInstance(getContext()).load(appInfoList -> {
- Logger.d( TAG, "apps: %s", appInfoList );
- UiThreadHandler.post( () -> {
- if ( mView != null ) {
- mView.renderApps( appInfoList );
+ Logger.d(TAG, "apps: %s", appInfoList);
+ UiThreadHandler.post(() -> {
+ if (mView != null) {
+ mView.renderApps(addGuideAppEntrance(appInfoList));
}
- } );
- } );
+ });
+ });
- } );
+ });
}
- public void launch( AppInfo appInfo ) {
- if ( appInfo == null ) {
+ private Map> addGuideAppEntrance(Map> appInfoMap) {
+ Map> result;
+ if (appInfoMap == null) {
+ result = new HashMap<>();
+ } else {
+ result = new HashMap<>();
+ result.putAll(appInfoMap);
+ }
+ if (result.isEmpty()) {
+ result.put(0, new ArrayList<>());
+ } else if (result.get(result.size() - 1) == null) {
+ result.put(result.size() - 1, new ArrayList<>());
+ } else if (result.get(result.size() - 1).size() == AppsConst.TOTAL_SIZE_EACH_PAGE) {
+ result.put(result.size(), new ArrayList<>());
+ }
+ // 添加逻辑
+ result.get(result.size() - 1).add(new AppInfo(GuideShowLauncher111.Companion.getAPP_INFO_NAME_GUIDE_SHOW(), getContext().getPackageName(), null, 0, null, R.drawable.module_apps_ic_guide_show));
+ return result;
+ }
+
+ public void launch(AppInfo appInfo) {
+ if (appInfo == null) {
return;
}
- trackAppClicked( appInfo );
+ trackAppClicked(appInfo);
try {
- mLauncher.launch( getContext(), appInfo );
- } catch ( Exception e ) {
+ mLauncher.launch(getContext(), appInfo);
+ } catch (Exception e) {
}
}
- private void trackAppClicked( AppInfo appInfo ) {
- if ( appInfo == null ) {
+ private void trackAppClicked(AppInfo appInfo) {
+ if (appInfo == null) {
return;
}
- Map< String, Object > properties = new HashMap<>();
- properties.put( "appname", appInfo.getName() );
- properties.put( "packagename", appInfo.getPackageName() );
- properties.put( "appversion", appInfo.getVersionName() );
- properties.put( "from", 1 );
- mAnalytics.track( "appenterfront", properties );
+ Map properties = new HashMap<>();
+ properties.put("appname", appInfo.getName());
+ properties.put("packagename", appInfo.getPackageName());
+ properties.put("appversion", appInfo.getVersionName());
+ properties.put("from", 1);
+ mAnalytics.track("appenterfront", properties);
}
@Override
- public void onDestroy( @NonNull LifecycleOwner owner ) {
- super.onDestroy( owner );
- mMogoStatusManager.setAppListUIShow( TAG, false );
+ public void onDestroy(@NonNull LifecycleOwner owner) {
+ super.onDestroy(owner);
+ mMogoStatusManager.setAppListUIShow(TAG, false);
AppsListChangedLiveData.getInstance().release();
mView = null;
mLauncher.destroy();
}
public void exit() {
- if ( mView != null ) {
+ if (mView != null) {
mView.exit();
}
}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java
new file mode 100644
index 0000000000..34d02c0831
--- /dev/null
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java
@@ -0,0 +1,26 @@
+package com.mogo.module.apps.applaunch;
+
+import android.content.Context;
+
+import com.mogo.module.apps.model.AppInfo;
+
+public class GuideShowLauncher extends BaseAppLauncher {
+
+ public static final String TAG = "GuideShowLauncher";
+ public static final String APP_INFO_NAME_GUIDE_SHOW = "APP_INFO_NAME_GUIDE_SHOW";
+
+ @Override
+ public void launch(Context context, AppInfo appInfo) {
+ if (appInfo != null && APP_INFO_NAME_GUIDE_SHOW.equals(appInfo.getName())) {
+// AppServiceHandler.getMogoGuideShow().playGuideVideo(s -> );
+ }
+ }
+
+ @Override
+ public void destroy() {
+ if (getNext() != null) {
+ getNext().destroy();
+ setNext(null);
+ }
+ }
+}
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.kt b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.kt
deleted file mode 100644
index 1ac9869b00..0000000000
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.kt
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.mogo.module.apps.applaunch
-
-import android.content.Context
-import com.mogo.module.apps.model.AppInfo
-
-class GuideShowLauncher : BaseAppLauncher() {
-
- override fun launch(context: Context, appInfo: AppInfo) {
-
- }
-
- override fun destroy() {
-
- }
-}
\ No newline at end of file
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher111.kt b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher111.kt
new file mode 100644
index 0000000000..2abfc24ba8
--- /dev/null
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher111.kt
@@ -0,0 +1,36 @@
+package com.mogo.module.apps.applaunch
+
+import android.content.Context
+import com.mogo.module.apps.AppServiceHandler
+import com.mogo.module.apps.R
+import com.mogo.module.apps.model.AppInfo
+import com.mogo.utils.TipToast
+import com.mogo.utils.logger.Logger
+
+class GuideShowLauncher111 : BaseAppLauncher() {
+
+ companion object {
+ const val TAG = "GuideShowLauncher111"
+ val APP_INFO_NAME_GUIDE_SHOW = "APP_INFO_NAME_GUIDE_SHOW"
+ }
+
+ override fun launch(context: Context, appInfo: AppInfo) {
+ if (appInfo != null && APP_INFO_NAME_GUIDE_SHOW == appInfo.name) {
+ try {
+ AppServiceHandler.getMogoGuideShow().playGuideVideo {
+ Logger.e(TAG, it)
+ }
+ } catch (e: Exception) {
+ Logger.e(TAG, e, "error.")
+ TipToast.shortTip(R.string.module_apps_str_no_guide_show)
+ }
+ }
+ }
+
+ override fun destroy() {
+ if (next != null) {
+ next.destroy()
+ next = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_guide_show.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_guide_show.png
new file mode 100644
index 0000000000..a919bbfb36
Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_guide_show.png differ
diff --git a/modules/mogo-module-apps/src/main/res/values/strings.xml b/modules/mogo-module-apps/src/main/res/values/strings.xml
index 905586c2af..da20e97ccb 100644
--- a/modules/mogo-module-apps/src/main/res/values/strings.xml
+++ b/modules/mogo-module-apps/src/main/res/values/strings.xml
@@ -1,6 +1,7 @@
mogo-module-apps
APP 未安装
+ 新手引导服务未加载
- com.mogo.launcher
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt
index f767588254..a83e68c2fd 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt
@@ -86,6 +86,7 @@ class AuthorizePresenter : Presenter, AuthorizeContract.
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
Logger.d(TAG, "onDestroy invokeTag : $invokeTag")
+ closeAuthorizeView()
invokeTag?.let {
MogoAuthorizeRegisterHandler.getAuthorizeContentListener(it)?.requestContentFailed("user exit authorize by back press")
MogoAuthorizeRegisterHandler.getAuthorizeListener(it)?.authorizeFailed("user exit authorize by back press")
diff --git a/modules/mogo-module-guide/src/main/res/mipmap-ldpi/module_guide_item_entry_main.png b/modules/mogo-module-guide/src/main/res/mipmap-ldpi/module_guide_item_entry_main.png
index 7b8468eb3d..ee612b77e0 100644
Binary files a/modules/mogo-module-guide/src/main/res/mipmap-ldpi/module_guide_item_entry_main.png and b/modules/mogo-module-guide/src/main/res/mipmap-ldpi/module_guide_item_entry_main.png differ