Merge branch 'dev' into dev_1.1.2
This commit is contained in:
@@ -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() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user