From f9e7638f9cbdea2d8a195ebe4d2c4c80aa134e4a Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 26 Feb 2020 19:20:18 +0800 Subject: [PATCH] opt back module --- .../com/mogo/launcher/MogoApplication.java | 8 +- .../module/back/Back2LauncherFragment.java | 33 ++++ .../mogo/module/back/BackToLauncherConst.java | 14 ++ .../back/BackToLauncherModuleProvider.java | 151 ++++++++++++++++++ modules/mogo-module-main/build.gradle | 2 - .../com/mogo/module/main/MainActivity.java | 4 +- 6 files changed, 201 insertions(+), 11 deletions(-) create mode 100644 modules/mogo-module-back/src/main/java/com/mogo/module/back/Back2LauncherFragment.java create mode 100644 modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherConst.java create mode 100644 modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index a470cfad8f..d621672d63 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -10,7 +10,7 @@ import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; import com.mogo.launcher.news.FreshNewsConstants; import com.mogo.module.adcard.AdCardConstants; -import com.mogo.module.back.BackToMainHomeManager; +import com.mogo.module.back.BackToLauncherConst; import com.mogo.module.carchatting.card.CallChatConstant; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; @@ -24,8 +24,6 @@ import com.mogo.service.connection.IMogoSocketManager; import com.mogo.utils.logger.LogLevel; import com.mogo.utils.logger.Logger; -//import com.mogo.module.onlinecar.OnLineCarConstants; - /** * @author congtaowang * @since 2019-12-18 @@ -45,8 +43,6 @@ public class MogoApplication extends AbsMogoApplication { Logger.init( BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF ); -// MogoModulePaths.addModule( new MogoModule( DemoConstants.TAG, "CARD_DEMO" ) ); -// MogoModulePaths.addModule( new MogoModule( Demo2Constants.TAG, "CARD_DEMO2" ) ); DebugConfig.setNetMode(BuildConfig.NET_ENV); //运营位卡片,需要默认显示,放在第一个加载 MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME)); @@ -57,7 +53,7 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE)); MogoModulePaths.addModule(new MogoModule( FreshNewsConstants.TAG, FreshNewsConstants.MODULE_NAME)); MogoModulePaths.addModule(new MogoModule(PushUIConstants.TAG, PushUIConstants.TAG)); - BackToMainHomeManager.addMainHomeView(); + MogoModulePaths.addModule(new MogoModule( BackToLauncherConst.MODULE_PATH, BackToLauncherConst.MODULE_NAME)); } @Override diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/Back2LauncherFragment.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/Back2LauncherFragment.java new file mode 100644 index 0000000000..68a9943451 --- /dev/null +++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/Back2LauncherFragment.java @@ -0,0 +1,33 @@ +package com.mogo.module.back; + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.mogo.utils.logger.Logger; + +/** + * @author congtaowang + * @since 2020-02-26 + *

+ * 描述 + */ +public class Back2LauncherFragment extends Fragment { + + private static final String TAG = "Back2LauncherFragment"; + + @Override + public void onCreate( @Nullable Bundle savedInstanceState ) { + super.onCreate( savedInstanceState ); + BackToMainHomeManager.addMainHomeView(); + Logger.d( TAG, "addMainHomeView" ); + } + + @Override + public void onDestroy() { + super.onDestroy(); + BackToMainHomeManager.removeMainHomeView(); + Logger.d( TAG, "removeMainHomeView" ); + } +} diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherConst.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherConst.java new file mode 100644 index 0000000000..e4a5e8e0f9 --- /dev/null +++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherConst.java @@ -0,0 +1,14 @@ +package com.mogo.module.back; + +/** + * @author congtaowang + * @since 2020-02-26 + *

+ * 描述 + */ +public class BackToLauncherConst { + + public static final String MODULE_NAME ="MOGO_BACK_2_LAUNCHER"; + + public static final String MODULE_PATH = "/back2launcher/ui"; +} diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java new file mode 100644 index 0000000000..5a1e46cb39 --- /dev/null +++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java @@ -0,0 +1,151 @@ +package com.mogo.module.back; + +import android.app.Activity; +import android.content.Context; +import android.os.Build; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.ArrayMap; +import android.util.Log; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.location.IMogoLocationListener; +import com.mogo.map.marker.IMogoMarkerClickListener; +import com.mogo.map.navi.IMogoNaviListener; +import com.mogo.service.module.IMogoModuleLifecycle; +import com.mogo.service.module.IMogoModuleProvider; +import com.mogo.service.module.ModuleType; +import com.mogo.utils.logger.Logger; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +/** + * @author congtaowang + * @since 2020-02-26 + *

+ * 描述 + */ +@Route( path = BackToLauncherConst.MODULE_PATH ) +public class BackToLauncherModuleProvider implements IMogoModuleProvider { + + private static final String TAG = "BackToLauncherModuleProvider"; + + @Override + public Fragment createFragment( Context context, Bundle data ) { + return null; + } + + @Override + public View createView( Context context ) { + return null; + } + + @NonNull + @Override + public String getModuleName() { + return BackToLauncherConst.MODULE_NAME; + } + + @Override + public IMogoModuleLifecycle getCardLifecycle() { + return null; + } + + @Override + public IMogoMapListener getMapListener() { + return null; + } + + @Override + public int getType() { + return ModuleType.TYPE_SERVICE; + } + + @Override + public IMogoNaviListener getNaviListener() { + return null; + } + + @Override + public IMogoLocationListener getLocationListener() { + return null; + } + + @Override + public IMogoMarkerClickListener getMarkerClickListener() { + return null; + } + + @Override + public String getAppPackage() { + return null; + } + + @Override + public String getAppName() { + return null; + } + + @Override + public void init( Context context ) { + BackToMainHomeManager.addMainHomeView(); +// final Activity activity = getTopActivity(context.getPackageName()); +// if ( activity instanceof FragmentActivity ) { +// Logger.d( TAG, "init." ); +// FragmentManager fragmentManager = ( ( FragmentActivity ) activity ).getSupportFragmentManager(); +// fragmentManager.beginTransaction() +// .add( new Back2LauncherFragment(), BackToLauncherConst.MODULE_NAME ) +// .commitAllowingStateLoss(); +// fragmentManager.executePendingTransactions(); +// } + } + +// /** +// * 获取当前运行的activity +// */ +// private Activity getTopActivity(String process) { +// Log.i("activity", "[getTopActivity]"); +// try { +// Class activityThreadClass = Class.forName("android.app.ActivityThread"); +// Object activityThread = activityThreadClass.getMethod("currentActivityThread").invoke(null); +// Field activitiesField = activityThreadClass.getDeclaredField("mActivities"); +// activitiesField.setAccessible(true); +// //16~18 HashMap +// //19~27 ArrayMap +// Map activities; +// if ( Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { +// activities = ( HashMap ) activitiesField.get(activityThread); +// } else { +// activities = ( ArrayMap ) activitiesField.get(activityThread); +// } +// if (activities.size() < 1) { +// return null; +// } +// for (Object activityRecord : activities.values()) { +// Class activityRecordClass = activityRecord.getClass(); +// Field pausedField = activityRecordClass.getDeclaredField("paused"); +// pausedField.setAccessible(true); +// if (!pausedField.getBoolean(activityRecord)) { +// Field activityField = activityRecordClass.getDeclaredField("activity"); +// activityField.setAccessible(true); +// Activity activity = (Activity) activityField.get(activityRecord); +// if ( TextUtils.equals( process, activity.getPackageName() ) ) { +// return activity; +// } +// } +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return null; +// } +} diff --git a/modules/mogo-module-main/build.gradle b/modules/mogo-module-main/build.gradle index 34166e520b..61422928c8 100644 --- a/modules/mogo-module-main/build.gradle +++ b/modules/mogo-module-main/build.gradle @@ -51,7 +51,6 @@ dependencies { implementation rootProject.ext.dependencies.moduleapps implementation rootProject.ext.dependencies.mogoconnection implementation rootProject.ext.dependencies.moduleextensions - implementation rootProject.ext.dependencies.mogomoduleback } else { implementation project(":foudations:mogo-utils") implementation project(":foudations:mogo-commons") @@ -63,7 +62,6 @@ dependencies { implementation project(':modules:mogo-module-apps') implementation project(':foudations:mogo-connection') implementation project(':modules:mogo-module-extensions') - implementation project(':modules:mogo-module-back') } } 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 2466b382ac..5a5324203f 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 @@ -21,7 +21,6 @@ import com.mogo.map.location.MogoLocation; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.uicontroller.IMogoMapUIController; -import com.mogo.module.back.BackToMainHomeManager; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.main.assist.MapBroadCastHelper; @@ -315,7 +314,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme private void startLocation() { mLocationClient = mMogoMapService.getSingletonLocationClient( getApplicationContext() ); mLocationClient.addLocationListener( this ); - mLocationClient.start(2_000L); + mLocationClient.start(20_000L); } private void loadContainerModules() { @@ -413,7 +412,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mMogoMapUIController = null; mMogoCardManager = null; mMogoFragmentManager = null; - BackToMainHomeManager.removeMainHomeView(); AIAssist.getInstance( this ).release(); } }