package com.dh.foundation.receiver;
import android.app.DownloadManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Handler;
import com.dh.foundation.manager.FoundationManager;
import com.dh.foundation.utils.download.DownLoadUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 下载完成广播接收器
* Created By: Seal.Wu
* Date: 2015/8/28
* Time: 18:03
*/
public class DownloadCompleteReceiver extends BroadcastReceiver {
public static final int DOWNLOAD_COMPLETE = -1;
private static List<Long> downloadIds = new ArrayList<>();
@Override
public void onReceive(Context context, Intent intent) {
// get complete download id
long completeDownloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
// to do here
Handler handler = FoundationManager.getHandleManager().getHandler(DownLoadUtil.DOWNLOAD_COMPLETE_HANDLER);
DownloadManager downloadManager = FoundationManager.getDownloadManager();
Cursor cursor = downloadManager.query(new DownloadManager.Query().setFilterById(completeDownloadId));
if (cursor != null && cursor.moveToFirst()) {
if (DownloadManager.STATUS_SUCCESSFUL == cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS))) {
if (handler != null && downloadIds.contains(completeDownloadId)) {
handler.sendMessage(handler.obtainMessage(DOWNLOAD_COMPLETE, completeDownloadId));
downloadIds.remove(completeDownloadId);
}
}
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
}
public static void registerDownloadTask(long downloadId) {
downloadIds.add(downloadId);
}
public static long getDownloadId(int position) {
return downloadIds.get(position);
}
}