package com.konka.music.loader;
import java.util.ArrayList;
import android.content.Context;
import android.database.Cursor;
import android.support.v4.util.LongSparseArray;
import com.konka.music.core.providers.DownloadManager;
import com.konka.music.pojo.DownLoadFinishResult;
import com.konka.music.pojo.MusicInfo;
import com.konka.music.wedget.MusicApplication;
import com.kubeiwu.baseclass.loader.BaseLoader;
public class DownLoadFinishLoader extends BaseLoader<DownLoadFinishResult> {
private DownloadManager mDownloadManager;
public DownLoadFinishLoader(Context context, DownloadManager downloadManager) {
super(context);
this.mDownloadManager = downloadManager;
}
private Cursor mCurrentCursor;
@Override
public DownLoadFinishResult loadInBackground() {
String where = "download_id != 0";
ArrayList<MusicInfo> musicinfos = MusicApplication.mKCommonToolDb.findAllByWhere(MusicInfo.class, where);
int count = musicinfos.size();
if (count == 0) {
return null;
}
long[] ids = new long[count];
LongSparseArray<MusicInfo> array = new LongSparseArray<>();
for (int i = 0; i < musicinfos.size(); i++) {
MusicInfo musicInfo = musicinfos.get(i);
long id = musicInfo.getDownload_id();
ids[i] = id;
array.put(id, musicInfo);
}
// ids=new long[]{1,2,3,4,5,6};
DownloadManager.Query baseQuery = new DownloadManager.Query().setOnlyIncludeVisibleInDownloadsUi(true);
// closeCursor(mCurrentCursor);
Cursor mDownloadingCursor = mDownloadManager.query(baseQuery.setFilterById(ids).setFilterByStatus(DownloadManager.STATUS_SUCCESSFUL).orderBy(DownloadManager.COLUMN_TOTAL_SIZE_BYTES, DownloadManager.Query.ORDER_DESCENDING));
// mCurrentCursor = mDownloadingCursor;
DownLoadFinishResult downLoadFinishResult = new DownLoadFinishResult(mDownloadingCursor, array);
return downLoadFinishResult;
}
private void closeCursor(Cursor mCurrentCursor) {
if (mCurrentCursor != null) {
if (!mCurrentCursor.isClosed()) {
mCurrentCursor.close();
}
mCurrentCursor = null;
}
}
}