diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index db9382e9a6..5ecdf77031 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -41,6 +41,9 @@
+
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 21e99e2dc0..cd77a1f062 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index ba41a5d30d..aac18fc73d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -259,6 +259,7 @@ dependencies {
implementation rootProject.ext.dependencies.moduletanlu, {
exclude group: 'com.mogo.module', module: 'module-share'
}
+ implementation rootProject.ext.dependencies.mogologlib
if (Boolean.valueOf(RELEASE)) {
launcherImplementation rootProject.ext.dependencies.modulemainlauncher
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index a067f4bf8e..d37549c3ee 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -73,6 +73,7 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addBaseModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) );
MogoModulePaths.addBaseModule( new MogoModule( V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI ) );
MogoModulePaths.addModule( new MogoModule( PushUIConstants.PATH, PushUIConstants.NAME ) );
+ MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_LOG_LIB, "LogLib"));
if ( !DebugConfig.isLauncher() ) {
PersistentManager.getInstance().initManager( this );
diff --git a/config.gradle b/config.gradle
index e4e542a469..e5a0c4e313 100644
--- a/config.gradle
+++ b/config.gradle
@@ -172,6 +172,8 @@ targetSdkVersion : 22,
// 基础服务实现
mogobaseservicesdk : "com.mogo.base:services-sdk:${MOGO_BASE_SERVICES_SDK_VERSION}",
mogobaseserviceapk : "com.mogo.base:services-apk:${MOGO_BASE_SERVICES_APK_VERSION}",
+ // loglib
+ mogologlib : "com.mogo.module:module-loglib:${LOGLIB_VERSION}",
// google
googlezxing : "com.google.zxing:core:3.3.3",
diff --git a/gradle.properties b/gradle.properties
index 4207b63acc..2280170e01 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -100,6 +100,9 @@ MOGO_MODULE_OBU_VERSION = 1.2.1.10-SNAPSHOT
MOGO_MODULE_SPLASH_VERSION = 1.0.0-SNAPSHOT
MOGO_MODULE_SPLASH_NOOP_VERSION = 1.0.0-SNAPSHOT
+# loglib
+LOGLIB_VERSION = 1.0.0-SNAPSHOT
+
## 产品库必备配置,产品库自动对versionCode和versionName版本进行升级
applicationId=com.mogo.launcer
applicationName=IntelligentPilot
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/NoopPresenter.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/NoopPresenter.java
new file mode 100644
index 0000000000..4270a87d06
--- /dev/null
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/NoopPresenter.java
@@ -0,0 +1,52 @@
+package com.mogo.module.media.presenter;
+
+import android.content.Context;
+
+import com.mogo.module.media.model.MediaInfoData;
+import com.mogo.module.media.view.IMusicView;
+
+/**
+ * 空presenter实现,为了减少各种空判断
+ *
+ * @author tongchenfei
+ */
+public class NoopPresenter extends BaseMediaPresenter {
+ public NoopPresenter(IMusicView view) {
+ super(view);
+ }
+
+ @Override
+ public void init(Context context) {
+
+ }
+
+ @Override
+ public void play(MediaInfoData mediaInfoData) {
+
+ }
+
+ @Override
+ public void pause(MediaInfoData mediaInfoData) {
+
+ }
+
+ @Override
+ public void stop(MediaInfoData mediaInfoData) {
+
+ }
+
+ @Override
+ public void pre() {
+
+ }
+
+ @Override
+ public void next() {
+
+ }
+
+ @Override
+ public void openApp() {
+
+ }
+}
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/PresenterFactory.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/PresenterFactory.java
new file mode 100644
index 0000000000..c5661387b7
--- /dev/null
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/PresenterFactory.java
@@ -0,0 +1,45 @@
+package com.mogo.module.media.presenter;
+
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+
+import com.mogo.module.media.view.IMusicView;
+
+import java.util.List;
+
+/**
+ * Presenter简单工厂,根据包名判断选择哪个presenter
+ *
+ * @author tongchenfei
+ */
+public class PresenterFactory {
+ private static final String KW_PKG_NAME = "cn.kuwo.kwmusiccar";
+ private static final String WE_CAR_FLOW_PKG_NAME = "com.tencent.wecarflow";
+
+ /**
+ * 获取泛型是IMusicView的BaseMediaPresenter
+ *
+ * @param context 上下文,用来遍历机器上的包名
+ * @param view IMusicView,用来做view展示
+ * @return presenter
+ */
+ public static BaseMediaPresenter createMusicViewPresenter(Context context,
+ IMusicView view) {
+ BaseMediaPresenter result = null;
+ PackageManager pkm = context.getPackageManager();
+ List pkgInfoList = pkm.getInstalledPackages(0);
+ // 只做了两级优先级判断,比较简单
+ for (PackageInfo pkgInfo : pkgInfoList) {
+ if (pkgInfo.packageName.equals(KW_PKG_NAME)) {
+ result = new KwPresenter(view);
+ } else if (pkgInfo.packageName.equals(WE_CAR_FLOW_PKG_NAME) && result == null) {
+ result = new WeCarFlowPresenter(view);
+ }
+ }
+ if (result == null) {
+ result = new NoopPresenter(view);
+ }
+ return result;
+ }
+}
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java
index 55eb757511..5991f1ed25 100644
--- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java
@@ -17,7 +17,9 @@ import com.mogo.module.media.ServiceMediaHandler;
import com.mogo.module.media.constants.MusicConstant;
import com.mogo.module.media.listener.NoDoubleClickListener;
import com.mogo.module.media.model.MediaInfoData;
+import com.mogo.module.media.presenter.BaseMediaPresenter;
import com.mogo.module.media.presenter.KwPresenter;
+import com.mogo.module.media.presenter.PresenterFactory;
import com.mogo.module.media.utils.Utils;
import com.mogo.module.media.view.IMusicView;
import com.mogo.module.media.widget.AnimCircleImageView;
@@ -41,7 +43,7 @@ public class MediaWindow2 implements IMusicView {
public static final String TAG = MediaWindow2.class.getName();
private Context mContext;
- private KwPresenter mPresenter;
+ private BaseMediaPresenter mPresenter;
private MediaInfoData mMediaInfoData = new MediaInfoData();
@@ -60,7 +62,7 @@ public class MediaWindow2 implements IMusicView {
public void initMedia(Context context) {
mContext = context;
- mPresenter = new KwPresenter(this);
+ mPresenter = PresenterFactory.createMusicViewPresenter(context, this);
mPresenter.init(context);
if(DebugConfig.isLauncher()) {
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 6f90c84d79..3d0c6ad1fc 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
@@ -226,4 +226,10 @@ public class MogoServicePaths {
*/
@Deprecated
public static final String PATH_AGREEMENT = "/agreement/showFragment";
+
+ /**
+ * 日志上传
+ */
+ @Deprecated
+ public static final String PATH_LOG_LIB = "/loglib/api";
}