DownloadLimitObserver.java 1.45 KB
package com.cnlive.downloadfile.download.limit;

import org.greenrobot.eventbus.EventBus;

import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;

/**
 * 观察者
 */
public class DownloadLimitObserver implements Observer<DownloadInfo> {

    public Disposable d;//可以用于取消注册的监听者
    public DownloadInfo downloadInfo;

    @Override
    public void onSubscribe(Disposable d) {
        this.d = d;
    }

    @Override
    public void onNext(DownloadInfo value) {
        this.downloadInfo = value;
        downloadInfo.setDownloadStatus(DownloadStatus.DOWNLOAD);
        EventBus.getDefault().post(downloadInfo);
    }

    @Override
    public void onError(Throwable e) {
//        Log.d("My_Log","onError");
//        if (downloadInfo.getUrl() != null && DownloadLimitManager.getInstance().getDownloadUrl(downloadInfo.getUrl())){
//            DownloadLimitManager.getInstance().pauseDownload(downloadInfo.getUrl());
//            downloadInfo.setDownloadStatus(DownloadStatus.DOWNLOAD_ERROR);
//            EventBus.getDefault().post(downloadInfo);
//        }else{
//            downloadInfo.setDownloadStatus(DownloadStatus.DOWNLOAD_PAUSE);
//            EventBus.getDefault().post(downloadInfo);
//        }
    }

    @Override
    public void onComplete() {
        if (downloadInfo != null){
            downloadInfo.setDownloadStatus(DownloadStatus.DOWNLOAD_OVER);
            EventBus.getDefault().post(downloadInfo);
        }
    }
}