修复重构loader模块后出现的组合任务的bug

This commit is contained in:
laoyuyu
2020-01-02 21:04:44 +08:00
parent 102d3ba0f6
commit c39bfbdd88
29 changed files with 390 additions and 262 deletions

View File

@@ -45,13 +45,18 @@ final class FtpDGLoader extends AbsGroupLoader {
@Override
protected AbsSubDLoadUtil createSubLoader(DTaskWrapper wrapper, boolean needGetFileInfo) {
return new FtpSubDLoaderUtil(wrapper, getScheduler(), needGetFileInfo);
return new FtpSubDLoaderUtil(wrapper, getScheduler(), needGetFileInfo, getKey());
}
/**
* 启动子任务下载
*/
private void startSub() {
if (isBreak()) {
return;
}
onPostStart();
// ftp需要获取完成只任务信息才更新只任务数量
getState().setSubSize(getWrapper().getSubTaskWrapper().size());
@@ -70,12 +75,12 @@ final class FtpDGLoader extends AbsGroupLoader {
startSub();
} else {
ALog.e(TAG, "获取任务信息失败code" + info.code);
mListener.onFail(false, null);
getListener().onFail(false, null);
}
}
@Override public void onFail(AbsEntity entity, BaseException e, boolean needRetry) {
mListener.onFail(needRetry, e);
getListener().onFail(needRetry, e);
}
});
}

View File

@@ -31,14 +31,16 @@ final class FtpSubDLoaderUtil extends AbsSubDLoadUtil {
* @param schedulers 调度器
* @param needGetInfo {@code true} 需要获取文件信息。{@code false} 不需要获取文件信息
*/
FtpSubDLoaderUtil(DTaskWrapper taskWrapper, Handler schedulers, boolean needGetInfo) {
super(taskWrapper, schedulers, needGetInfo);
FtpSubDLoaderUtil(DTaskWrapper taskWrapper, Handler schedulers, boolean needGetInfo,
String parentKey) {
super(taskWrapper, schedulers, needGetInfo, parentKey);
}
@Override protected SubLoader getLoader() {
if (mDLoader == null) {
mDLoader = new SubLoader(getWrapper(), getSchedulers());
mDLoader.setNeedGetInfo(isNeedGetInfo());
mDLoader.setParentKey(getParentKey());
}
return mDLoader;
}