opt back module

This commit is contained in:
wangcongtao
2020-02-26 19:20:18 +08:00
parent 717cf7a246
commit f9e7638f9c
6 changed files with 201 additions and 11 deletions

View File

@@ -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

View File

@@ -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
* <p>
* 描述
*/
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" );
}
}

View File

@@ -0,0 +1,14 @@
package com.mogo.module.back;
/**
* @author congtaowang
* @since 2020-02-26
* <p>
* 描述
*/
public class BackToLauncherConst {
public static final String MODULE_NAME ="MOGO_BACK_2_LAUNCHER";
public static final String MODULE_PATH = "/back2launcher/ui";
}

View File

@@ -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
* <p>
* 描述
*/
@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<Object, Object> activities;
// if ( Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
// activities = ( HashMap<Object, Object> ) activitiesField.get(activityThread);
// } else {
// activities = ( ArrayMap<Object, Object> ) 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;
// }
}

View File

@@ -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')
}
}

View File

@@ -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();
}
}