修复ftp组件出现的问题
This commit is contained in:
@@ -43,7 +43,7 @@ public abstract class BaseFtpThreadTaskAdapter extends AbsThreadTaskAdapter {
|
||||
|
||||
protected BaseFtpThreadTaskAdapter(SubThreadConfig config) {
|
||||
super(config);
|
||||
|
||||
mTaskOption = (FtpTaskOption) getTaskWrapper().getTaskOption();
|
||||
}
|
||||
|
||||
protected void closeClient(FTPClient client) {
|
||||
|
||||
@@ -91,10 +91,17 @@ public class FtpDirInfoThread extends AbsFtpInfoThread<DownloadGroupEntity, DGTa
|
||||
}
|
||||
|
||||
private void cloneInfo(DTaskWrapper subWrapper, FtpUrlEntity urlEntity) {
|
||||
FtpTaskOption subOption = (FtpTaskOption) subWrapper.getTaskOption();
|
||||
FtpTaskOption subOption = new FtpTaskOption();
|
||||
subOption.setUrlEntity(urlEntity);
|
||||
subOption.setCharSet(mTaskOption.getCharSet());
|
||||
subOption.setProxy(mTaskOption.getProxy());
|
||||
subOption.setClientConfig(mTaskOption.getClientConfig());
|
||||
subOption.setNewFileName(mTaskOption.getNewFileName());
|
||||
subOption.setProxy(mTaskOption.getProxy());
|
||||
subOption.setUploadInterceptor(mTaskOption.getUploadInterceptor());
|
||||
|
||||
subWrapper.setTaskOption(subOption);
|
||||
|
||||
}
|
||||
|
||||
@Override protected void failDownload(BaseException e, boolean needRetry) {
|
||||
|
||||
@@ -19,10 +19,11 @@ import com.arialyy.aria.core.common.AbsEntity;
|
||||
import com.arialyy.aria.core.common.CompleteInfo;
|
||||
import com.arialyy.aria.core.download.DTaskWrapper;
|
||||
import com.arialyy.aria.core.inf.OnFileInfoCallback;
|
||||
import com.arialyy.aria.core.listener.IDLoadListener;
|
||||
import com.arialyy.aria.core.listener.IEventListener;
|
||||
import com.arialyy.aria.core.loader.AbsLoader;
|
||||
import com.arialyy.aria.core.loader.AbsNormalLoaderUtil;
|
||||
import com.arialyy.aria.core.loader.NormalLoader;
|
||||
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
|
||||
import com.arialyy.aria.exception.BaseException;
|
||||
import com.arialyy.aria.ftp.FtpTaskOption;
|
||||
|
||||
@@ -32,8 +33,8 @@ import com.arialyy.aria.ftp.FtpTaskOption;
|
||||
*/
|
||||
public class FtpDLoaderUtil extends AbsNormalLoaderUtil {
|
||||
|
||||
public FtpDLoaderUtil(DTaskWrapper wrapper, IDLoadListener downloadListener) {
|
||||
super(wrapper, downloadListener);
|
||||
public FtpDLoaderUtil(AbsTaskWrapper wrapper, IEventListener listener) {
|
||||
super(wrapper, listener);
|
||||
wrapper.generateTaskOption(FtpTaskOption.class);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,16 +20,16 @@ import android.text.TextUtils;
|
||||
import com.arialyy.aria.core.FtpUrlEntity;
|
||||
import com.arialyy.aria.core.common.AbsEntity;
|
||||
import com.arialyy.aria.core.common.CompleteInfo;
|
||||
import com.arialyy.aria.core.download.DGTaskWrapper;
|
||||
import com.arialyy.aria.core.download.DTaskWrapper;
|
||||
import com.arialyy.aria.core.group.AbsGroupUtil;
|
||||
import com.arialyy.aria.core.group.AbsSubDLoadUtil;
|
||||
import com.arialyy.aria.core.inf.IEntity;
|
||||
import com.arialyy.aria.core.inf.OnFileInfoCallback;
|
||||
import com.arialyy.aria.core.listener.IEventListener;
|
||||
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
|
||||
import com.arialyy.aria.exception.BaseException;
|
||||
import com.arialyy.aria.ftp.FtpDirInfoThread;
|
||||
import com.arialyy.aria.ftp.FtpTaskOption;
|
||||
import com.arialyy.aria.core.group.AbsGroupUtil;
|
||||
import com.arialyy.aria.core.group.AbsSubDLoadUtil;
|
||||
import com.arialyy.aria.core.listener.IDGroupListener;
|
||||
import java.util.concurrent.locks.Condition;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
@@ -41,14 +41,14 @@ public class FtpDirDLoaderUtil extends AbsGroupUtil {
|
||||
private ReentrantLock LOCK = new ReentrantLock();
|
||||
private Condition condition = LOCK.newCondition();
|
||||
|
||||
public FtpDirDLoaderUtil(IDGroupListener listener, DGTaskWrapper wrapper) {
|
||||
super(listener, wrapper);
|
||||
public FtpDirDLoaderUtil(AbsTaskWrapper wrapper, IEventListener listener) {
|
||||
super(wrapper, listener);
|
||||
wrapper.generateTaskOption(FtpTaskOption.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AbsSubDLoadUtil createSubLoader(DTaskWrapper wrapper, boolean needGetFileInfo) {
|
||||
return new SubDLoaderUtil(getScheduler(), wrapper, needGetFileInfo);
|
||||
return new FtpSubDLoaderUtil(getScheduler(), wrapper, needGetFileInfo);
|
||||
}
|
||||
|
||||
@Override protected boolean onStart() {
|
||||
@@ -109,9 +109,15 @@ public class FtpDirDLoaderUtil extends AbsGroupUtil {
|
||||
String remotePath = uri.getPath();
|
||||
urlEntity.remotePath = TextUtils.isEmpty(remotePath) ? "/" : remotePath;
|
||||
|
||||
FtpTaskOption subOption = ((FtpTaskOption) subWrapper.getTaskOption());
|
||||
FtpTaskOption subOption = new FtpTaskOption();
|
||||
subOption.setUrlEntity(urlEntity);
|
||||
subOption.setCharSet(option.getCharSet());
|
||||
subOption.setProxy(option.getProxy());
|
||||
subOption.setClientConfig(option.getClientConfig());
|
||||
subOption.setNewFileName(option.getNewFileName());
|
||||
subOption.setProxy(option.getProxy());
|
||||
subOption.setUploadInterceptor(option.getUploadInterceptor());
|
||||
|
||||
subWrapper.setTaskOption(subOption);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,23 +17,21 @@ package com.arialyy.aria.ftp.download;
|
||||
|
||||
import android.os.Handler;
|
||||
import com.arialyy.aria.core.download.DTaskWrapper;
|
||||
import com.arialyy.aria.core.loader.NormalLoader;
|
||||
import com.arialyy.aria.ftp.FtpTaskOption;
|
||||
import com.arialyy.aria.core.group.AbsSubDLoadUtil;
|
||||
import com.arialyy.aria.core.group.ChildDLoadListener;
|
||||
import com.arialyy.aria.core.loader.NormalLoader;
|
||||
|
||||
/**
|
||||
* @Author lyy
|
||||
* @Date 2019-09-28
|
||||
*/
|
||||
class SubDLoaderUtil extends AbsSubDLoadUtil {
|
||||
class FtpSubDLoaderUtil extends AbsSubDLoadUtil {
|
||||
/**
|
||||
* @param schedulers 调度器
|
||||
* @param needGetInfo {@code true} 需要获取文件信息。{@code false} 不需要获取文件信息
|
||||
*/
|
||||
SubDLoaderUtil(Handler schedulers, DTaskWrapper taskWrapper, boolean needGetInfo) {
|
||||
FtpSubDLoaderUtil(Handler schedulers, DTaskWrapper taskWrapper, boolean needGetInfo) {
|
||||
super(schedulers, taskWrapper, needGetInfo);
|
||||
taskWrapper.generateTaskOption(FtpTaskOption.class);
|
||||
}
|
||||
|
||||
@Override protected NormalLoader createLoader(ChildDLoadListener listener, DTaskWrapper wrapper) {
|
||||
@@ -19,11 +19,13 @@ import com.arialyy.aria.core.common.AbsEntity;
|
||||
import com.arialyy.aria.core.common.CompleteInfo;
|
||||
import com.arialyy.aria.core.download.DTaskWrapper;
|
||||
import com.arialyy.aria.core.inf.OnFileInfoCallback;
|
||||
import com.arialyy.aria.core.listener.IEventListener;
|
||||
import com.arialyy.aria.core.listener.IUploadListener;
|
||||
import com.arialyy.aria.core.loader.AbsLoader;
|
||||
import com.arialyy.aria.core.loader.AbsNormalLoaderUtil;
|
||||
import com.arialyy.aria.core.loader.NormalLoader;
|
||||
import com.arialyy.aria.core.upload.UTaskWrapper;
|
||||
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
|
||||
import com.arialyy.aria.exception.BaseException;
|
||||
import com.arialyy.aria.ftp.FtpTaskOption;
|
||||
|
||||
@@ -33,15 +35,15 @@ import com.arialyy.aria.ftp.FtpTaskOption;
|
||||
*/
|
||||
public class FtpULoaderUtil extends AbsNormalLoaderUtil {
|
||||
|
||||
public FtpULoaderUtil(DTaskWrapper wrapper, IUploadListener uploadListener) {
|
||||
super(wrapper, uploadListener);
|
||||
public FtpULoaderUtil(AbsTaskWrapper wrapper, IEventListener listener) {
|
||||
super(wrapper, listener);
|
||||
wrapper.generateTaskOption(FtpTaskOption.class);
|
||||
}
|
||||
|
||||
@Override protected AbsLoader createLoader() {
|
||||
NormalLoader loader = new NormalLoader(getListener(), getTaskWrapper());
|
||||
loader.setAdapter(new FtpULoaferAdapter(getTaskWrapper()));
|
||||
return null;
|
||||
return loader;
|
||||
}
|
||||
|
||||
@Override protected Runnable createInfoThread() {
|
||||
|
||||
Reference in New Issue
Block a user