package com.dingmouren.dingdingmusic.ui.localmusic;
import android.database.Cursor;
import android.provider.MediaStore;
import android.support.design.widget.Snackbar;
import android.widget.Toast;
import com.dingmouren.dingdingmusic.Constant;
import com.dingmouren.dingdingmusic.MyApplication;
import com.dingmouren.dingdingmusic.bean.MusicBean;
import com.dingmouren.greendao.MusicBeanDao;
import com.jiongbull.jlog.JLog;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.functions.Func1;
import rx.schedulers.Schedulers;
/**
* Created by dingmouren on 2017/1/17.
*/
public class LocalMusicPresenter implements LocalMusicConstract.Presenter {
private static final String TAG = LocalMusicPresenter.class.getName();
private LocalMusicConstract.View mView;
private Cursor mCursor;
List<MusicBean> list = new ArrayList<>();
public LocalMusicPresenter(LocalMusicConstract.View view) {
this.mView = view;
}
@Override
public void requestData() {
mCursor = ((LocalMusicActivity)mView).getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
if ( null != mCursor) {
list.clear();
Observable.just(mCursor).flatMap(new Func1<Cursor, Observable<?>>() {
@Override
public Observable<List<MusicBean>> call(Cursor cursor) {
for (int i = 0; i < mCursor.getCount(); i++) {
MusicBean bean = new MusicBean();
mCursor.moveToNext();
bean.setSongid((int) mCursor.getLong(mCursor.getColumnIndex(MediaStore.Audio.Media._ID)));//音乐id
bean.setSongname(mCursor.getString((mCursor.getColumnIndex(MediaStore.Audio.Media.TITLE))));//歌曲名称
bean.setSingername(mCursor.getString(mCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)));//歌手
bean.setUrl(mCursor.getString(mCursor.getColumnIndex(MediaStore.Audio.Media.DATA)));//歌曲路径
bean.setType(Integer.parseInt(Constant.MUSIC_LOCAL));
MyApplication.getDaoSession().getMusicBeanDao().insertOrReplace(bean);
list.add(bean);
}
return Observable.just(list);
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Object>() {
@Override
public void onCompleted() {
Toast.makeText(MyApplication.mContext,"扫描到"+ mCursor.getCount()+"首本地歌曲",Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Throwable e) {
JLog.e(TAG,e.getMessage());
}
@Override
public void onNext(Object o) {
mView.setData((List<MusicBean>)o);
}
});
/* for (int i = 0; i < mCursor.getCount(); i++) {
MusicBean bean = new MusicBean();
mCursor.moveToNext();
bean.setSongid((int) mCursor.getLong(mCursor.getColumnIndex(MediaStore.Audio.Media._ID)));//音乐id
bean.setSongname(mCursor.getString((mCursor.getColumnIndex(MediaStore.Audio.Media.TITLE))));//歌曲名称
bean.setSingername(mCursor.getString(mCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)));//歌手
bean.setUrl(mCursor.getString(mCursor.getColumnIndex(MediaStore.Audio.Media.DATA)));//歌曲路径
bean.setType(Integer.parseInt(Constant.MUSIC_LOCAL));
JLog.e(TAG,"本地音乐路径:"+bean.getUrl());
MyApplication.getDaoSession().getMusicBeanDao().insertOrReplace(bean);
list.add(bean);
}
mView.setData(list);*/
}
}
}