Merge branch 'dev' into dev_1.1.2

This commit is contained in:
董宏宇
2020-08-03 11:28:29 +08:00
3 changed files with 101 additions and 2 deletions

View File

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

View File

@@ -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<IMusicView> createMusicViewPresenter(Context context,
IMusicView view) {
BaseMediaPresenter<IMusicView> result = null;
PackageManager pkm = context.getPackageManager();
List<PackageInfo> 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;
}
}

View File

@@ -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<IMusicView> 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()) {