修复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() {
|
||||
|
||||
@@ -17,7 +17,6 @@ package com.arialyy.aria.http.download;
|
||||
|
||||
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.download.DownloadEntity;
|
||||
import com.arialyy.aria.core.inf.IEntity;
|
||||
@@ -28,7 +27,6 @@ import com.arialyy.aria.exception.AriaIOException;
|
||||
import com.arialyy.aria.exception.BaseException;
|
||||
import com.arialyy.aria.core.group.AbsGroupUtil;
|
||||
import com.arialyy.aria.core.group.AbsSubDLoadUtil;
|
||||
import com.arialyy.aria.core.listener.IDGroupListener;
|
||||
import com.arialyy.aria.http.HttpFileInfoThread;
|
||||
import com.arialyy.aria.http.HttpTaskOption;
|
||||
import com.arialyy.aria.util.ALog;
|
||||
@@ -55,7 +53,7 @@ public class DGroupLoaderUtil extends AbsGroupUtil {
|
||||
|
||||
@Override
|
||||
protected AbsSubDLoadUtil createSubLoader(DTaskWrapper wrapper, boolean needGetFileInfo) {
|
||||
return new SubDLoaderUtil(getScheduler(), wrapper, needGetFileInfo);
|
||||
return new HttpSubDLoaderUtil(getScheduler(), wrapper, needGetFileInfo);
|
||||
}
|
||||
|
||||
@Override public void onPreCancel() {
|
||||
|
||||
@@ -19,27 +19,25 @@ import android.os.Handler;
|
||||
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.group.AbsSubDLoadUtil;
|
||||
import com.arialyy.aria.core.group.ChildDLoadListener;
|
||||
import com.arialyy.aria.core.inf.OnFileInfoCallback;
|
||||
import com.arialyy.aria.core.listener.ISchedulers;
|
||||
import com.arialyy.aria.core.loader.NormalLoader;
|
||||
import com.arialyy.aria.exception.BaseException;
|
||||
import com.arialyy.aria.core.group.AbsSubDLoadUtil;
|
||||
import com.arialyy.aria.core.group.ChildDLoadListener;
|
||||
import com.arialyy.aria.http.HttpFileInfoThread;
|
||||
import com.arialyy.aria.http.HttpTaskOption;
|
||||
|
||||
/**
|
||||
* @Author lyy
|
||||
* @Date 2019-09-28
|
||||
*/
|
||||
class SubDLoaderUtil extends AbsSubDLoadUtil {
|
||||
class HttpSubDLoaderUtil extends AbsSubDLoadUtil {
|
||||
/**
|
||||
* @param schedulers 调度器
|
||||
* @param needGetInfo {@code true} 需要获取文件信息。{@code false} 不需要获取文件信息
|
||||
*/
|
||||
SubDLoaderUtil(Handler schedulers, DTaskWrapper taskWrapper, boolean needGetInfo) {
|
||||
HttpSubDLoaderUtil(Handler schedulers, DTaskWrapper taskWrapper, boolean needGetInfo) {
|
||||
super(schedulers, taskWrapper, needGetInfo);
|
||||
taskWrapper.generateTaskOption(HttpTaskOption.class);
|
||||
}
|
||||
|
||||
@Override protected NormalLoader createLoader(ChildDLoadListener listener, DTaskWrapper wrapper) {
|
||||
@@ -58,7 +56,7 @@ class SubDLoaderUtil extends AbsSubDLoadUtil {
|
||||
}
|
||||
|
||||
@Override public void onFail(AbsEntity entity, BaseException e, boolean needRetry) {
|
||||
getSchedulers().obtainMessage(ISchedulers.FAIL, SubDLoaderUtil.this).sendToTarget();
|
||||
getSchedulers().obtainMessage(ISchedulers.FAIL, HttpSubDLoaderUtil.this).sendToTarget();
|
||||
}
|
||||
})).start();
|
||||
} else {
|
||||
@@ -55,9 +55,6 @@ public abstract class AbsGroupUtil implements IUtil, Runnable {
|
||||
mListener = (IDGroupListener) listener;
|
||||
mGTWrapper = (DGTaskWrapper) groupWrapper;
|
||||
mUpdateInterval = Configuration.getInstance().downloadCfg.getUpdateInterval();
|
||||
mState = new GroupRunState(groupWrapper.getKey(), mListener,
|
||||
mGTWrapper.getSubTaskWrapper().size(), mSubQueue);
|
||||
mScheduler = new Handler(Looper.getMainLooper(), SimpleSchedulers.newInstance(mState));
|
||||
initState();
|
||||
}
|
||||
|
||||
@@ -84,6 +81,8 @@ public abstract class AbsGroupUtil implements IUtil, Runnable {
|
||||
* 初始化组合任务状态
|
||||
*/
|
||||
protected void initState() {
|
||||
mState = new GroupRunState(getWrapper().getKey(), mListener,
|
||||
mGTWrapper.getSubTaskWrapper().size(), mSubQueue);
|
||||
for (DTaskWrapper wrapper : mGTWrapper.getSubTaskWrapper()) {
|
||||
if (wrapper.getEntity().getState() == IEntity.STATE_COMPLETE) {
|
||||
mState.updateCompleteNum();
|
||||
@@ -94,6 +93,7 @@ public abstract class AbsGroupUtil implements IUtil, Runnable {
|
||||
}
|
||||
}
|
||||
mState.updateProgress(mCurrentLocation);
|
||||
mScheduler = new Handler(Looper.getMainLooper(), SimpleSchedulers.newInstance(mState));
|
||||
}
|
||||
|
||||
@Override public String getKey() {
|
||||
|
||||
@@ -27,10 +27,10 @@ import com.arialyy.aria.util.RecordUtil;
|
||||
/**
|
||||
* 下载监听类
|
||||
*/
|
||||
class BaseUListener extends BaseListener<UploadEntity, UTaskWrapper, AbsTask<UTaskWrapper>>
|
||||
public class BaseUListener extends BaseListener<UploadEntity, UTaskWrapper, AbsTask<UTaskWrapper>>
|
||||
implements IUploadListener {
|
||||
|
||||
BaseUListener(AbsTask<UTaskWrapper> task, Handler outHandler) {
|
||||
public BaseUListener(AbsTask<UTaskWrapper> task, Handler outHandler) {
|
||||
super(task, outHandler);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2016 AriaLyy(https://github.com/AriaLyy/Aria)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.arialyy.aria.core.processor;
|
||||
|
||||
import com.arialyy.aria.core.inf.IEventHandler;
|
||||
import java.lang.reflect.InvocationHandler;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Proxy;
|
||||
|
||||
/**
|
||||
* @Author lyy
|
||||
* @Date 2019-10-7
|
||||
* 处理器的动态代理
|
||||
*/
|
||||
public class ProxyHandler implements InvocationHandler {
|
||||
|
||||
private Object mTarget;
|
||||
|
||||
/**
|
||||
* 绑定代理对象并返回代理类
|
||||
*/
|
||||
public Object bind(Class<? extends IEventHandler> clazz) {
|
||||
//绑定该类实现的所有接口,取得代理类
|
||||
try {
|
||||
mTarget = clazz.newInstance();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InstantiationException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return Proxy.newProxyInstance(clazz.getClassLoader(), clazz.getInterfaces(), this);
|
||||
}
|
||||
|
||||
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
|
||||
return method.invoke(mTarget, args);
|
||||
}
|
||||
}
|
||||
@@ -84,6 +84,10 @@ public abstract class AbsTaskWrapper<ENTITY extends AbsEntity>
|
||||
*/
|
||||
private TaskOptionParams optionParams = new TaskOptionParams();
|
||||
|
||||
public void setTaskOption(ITaskOption option) {
|
||||
this.taskOption = option;
|
||||
}
|
||||
|
||||
public ITaskOption getTaskOption() {
|
||||
return taskOption;
|
||||
}
|
||||
|
||||
@@ -74,6 +74,7 @@ dependencies {
|
||||
implementation 'com.pddstudio:highlightjs-android:1.5.0'
|
||||
implementation 'org.greenrobot:eventbus:3.1.1'
|
||||
implementation project(path: ':M3U8Component')
|
||||
implementation project(path: ':FtpComponent')
|
||||
}
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
||||
@@ -48,7 +48,7 @@ public class FtpDownloadActivity extends BaseActivity<ActivityFtpDownloadBinding
|
||||
private String mUrl, mFilePath;
|
||||
private FtpDownloadModule mModule;
|
||||
private long mTaskId;
|
||||
private String user = "tester", passw = "password";
|
||||
private String user = "lao", passw = "123456";
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
@@ -96,9 +96,8 @@ public class FtpDownloadActivity extends BaseActivity<ActivityFtpDownloadBinding
|
||||
mTaskId = Aria.download(this).loadFtp(mUrl)
|
||||
.setFilePath(mFilePath, true)
|
||||
.option()
|
||||
//.login("lao", "123456")
|
||||
.login(user, passw)
|
||||
.asFtps()
|
||||
//.asFtps()
|
||||
.controller(ControllerType.CREATE_CONTROLLER)
|
||||
.create();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
@@ -112,8 +111,8 @@ public class FtpDownloadActivity extends BaseActivity<ActivityFtpDownloadBinding
|
||||
.loadFtp(mTaskId)
|
||||
.option()
|
||||
.login(user, passw)
|
||||
.asFtps()
|
||||
.setProtocol(ProtocolType.SSL)
|
||||
//.asFtps()
|
||||
//.setProtocol(ProtocolType.SSL)
|
||||
.controller(ControllerType.TASK_CONTROLLER)
|
||||
.resume();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
|
||||
@@ -33,7 +33,7 @@ public class FtpDownloadModule extends BaseViewModule {
|
||||
private final String FTP_URL_KEY = "FTP_URL_KEY";
|
||||
private final String FTP_PATH_KEY = "FTP_PATH_KEY";
|
||||
|
||||
private final String ftpDefUrl = "ftp://9.9.9.50:22/Cyberduck-6.9.4.30164.zip";
|
||||
private final String ftpDefUrl = "ftp://9.9.9.50:2121/Cyberduck-6.9.4.30164.zip";
|
||||
private final String ftpDefPath =
|
||||
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath();
|
||||
|
||||
@@ -43,6 +43,8 @@ public class FtpDownloadModule extends BaseViewModule {
|
||||
/**
|
||||
* xx
|
||||
* 单任务下载的信息
|
||||
*
|
||||
*
|
||||
*/
|
||||
LiveData<DownloadEntity> getFtpDownloadInfo(Context context) {
|
||||
String url = AppUtil.getConfigValue(context, FTP_URL_KEY, ftpDefUrl);
|
||||
|
||||
@@ -35,10 +35,11 @@ import com.arialyy.simple.widget.SubStateLinearLayout;
|
||||
* Created by lyy on 2017/7/6.
|
||||
*/
|
||||
public class FTPDirDownloadActivity extends BaseActivity<ActivityDownloadGroupBinding> {
|
||||
private static final String dir = "ftp://9.9.9.205:2121/upload/测试";
|
||||
private static final String dir = "ftp://9.9.9.50:2121/upload/测试";
|
||||
|
||||
private SubStateLinearLayout mChildList;
|
||||
private long mTaskId = -1;
|
||||
private String user = "lao", pwd = "123456";
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
@@ -78,7 +79,7 @@ public class FTPDirDownloadActivity extends BaseActivity<ActivityDownloadGroupBi
|
||||
Environment.getExternalStorageDirectory().getPath() + "/Download/ftp_dir")
|
||||
.setGroupAlias("ftp文件夹下载")
|
||||
.option()
|
||||
.login("8L8e", "8guD")
|
||||
.login(user, pwd)
|
||||
.controller(ControllerType.CREATE_CONTROLLER)
|
||||
.create();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
@@ -91,7 +92,7 @@ public class FTPDirDownloadActivity extends BaseActivity<ActivityDownloadGroupBi
|
||||
Aria.download(this)
|
||||
.loadFtpDir(mTaskId)
|
||||
.option()
|
||||
.login("8L8e", "8guD")
|
||||
.login(user, pwd)
|
||||
.controller(ControllerType.TASK_CONTROLLER)
|
||||
.resume();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
@@ -144,6 +145,8 @@ public class FTPDirDownloadActivity extends BaseActivity<ActivityDownloadGroupBi
|
||||
@DownloadGroup.onTaskComplete() void taskComplete(DownloadGroupTask task) {
|
||||
getBinding().setProgress(100);
|
||||
mChildList.updateChildProgress(task.getEntity().getSubEntities());
|
||||
getBinding().setStateStr(getString(R.string.re_start));
|
||||
getBinding().setSpeed("");
|
||||
T.showShort(this, "任务组下载完成");
|
||||
L.d(TAG, "任务组下载完成");
|
||||
}
|
||||
|
||||
@@ -25,12 +25,12 @@ import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProviders;
|
||||
import com.arialyy.annotations.Upload;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.processor.FtpInterceptHandler;
|
||||
import com.arialyy.aria.core.processor.IFtpUploadInterceptor;
|
||||
import com.arialyy.aria.core.common.controller.ControllerType;
|
||||
import com.arialyy.aria.core.inf.IEntity;
|
||||
import com.arialyy.aria.core.upload.UploadEntity;
|
||||
import com.arialyy.aria.core.processor.FtpInterceptHandler;
|
||||
import com.arialyy.aria.core.processor.IFtpUploadInterceptor;
|
||||
import com.arialyy.aria.core.task.UploadTask;
|
||||
import com.arialyy.aria.core.upload.UploadEntity;
|
||||
import com.arialyy.aria.util.ALog;
|
||||
import com.arialyy.aria.util.CommonUtil;
|
||||
import com.arialyy.frame.util.FileUtil;
|
||||
@@ -53,6 +53,7 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
|
||||
private String mUrl;
|
||||
private UploadModule mModule;
|
||||
private long mTaskId = -1;
|
||||
private String user = "lao", pwd = "123456";
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
setTile("D_FTP 文件上传");
|
||||
@@ -117,20 +118,8 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
|
||||
mTaskId = Aria.upload(this)
|
||||
.loadFtp(mFilePath)
|
||||
.setUploadUrl(mUrl)
|
||||
.setUploadInterceptor(
|
||||
new IFtpUploadInterceptor() {
|
||||
|
||||
@Override
|
||||
public FtpInterceptHandler onIntercept(UploadEntity entity,
|
||||
List<String> fileList) {
|
||||
FtpInterceptHandler.Builder builder = new FtpInterceptHandler.Builder();
|
||||
//builder.coverServerFile();
|
||||
builder.resetFileName("test.zip");
|
||||
return builder.build();
|
||||
}
|
||||
})
|
||||
.option()
|
||||
.login("8L8e", "8guD")
|
||||
.login(user, pwd)
|
||||
.controller(ControllerType.CREATE_CONTROLLER)
|
||||
.create();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
@@ -143,7 +132,7 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
|
||||
Aria.upload(this)
|
||||
.loadFtp(mTaskId)
|
||||
.option()
|
||||
.login("8L8e", "8guD")
|
||||
.login(user, pwd)
|
||||
.controller(ControllerType.TASK_CONTROLLER)
|
||||
.resume();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
|
||||
@@ -35,9 +35,9 @@ public class UploadModule extends BaseViewModule {
|
||||
* 获取Ftp上传信息
|
||||
*/
|
||||
LiveData<UploadEntity> getFtpInfo(Context context) {
|
||||
String url = AppUtil.getConfigValue(context, FTP_URL_KEY, "ftp://9.9.9.205:2121/aa/你好");
|
||||
String url = AppUtil.getConfigValue(context, FTP_URL_KEY, "ftp://9.9.9.50:2121/aa/你好");
|
||||
String filePath = AppUtil.getConfigValue(context, FTP_PATH_KEY,
|
||||
Environment.getExternalStorageDirectory().getPath() + "/AriaPrj.rar");
|
||||
Environment.getExternalStorageDirectory().getPath() + "/Download/PaNTFS15562.zip");
|
||||
|
||||
UploadEntity entity = Aria.upload(context).getFirstUploadEntity(filePath);
|
||||
if (entity != null) {
|
||||
|
||||
Reference in New Issue
Block a user