修复ftp组件出现的问题

This commit is contained in:
laoyuyu
2019-10-14 20:00:06 +08:00
parent 9f673503c1
commit ce408c0d5c
18 changed files with 122 additions and 64 deletions

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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) {

View File

@@ -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() {