This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.arialyy.aria.core.command.normal;
|
||||
|
||||
import com.arialyy.aria.core.download.DownloadGroupTaskEntity;
|
||||
import com.arialyy.aria.core.download.DownloadTaskEntity;
|
||||
import com.arialyy.aria.core.inf.AbsTaskEntity;
|
||||
import com.arialyy.aria.core.upload.UploadTaskEntity;
|
||||
@@ -43,13 +44,26 @@ public class CancelAllCmd<T extends AbsTaskEntity> extends AbsNormalCmd<T> {
|
||||
|
||||
@Override public void executeCmd() {
|
||||
removeAll();
|
||||
if (mTaskEntity instanceof DownloadTaskEntity) {
|
||||
if (mTaskEntity instanceof DownloadTaskEntity
|
||||
|| mTaskEntity instanceof DownloadGroupTaskEntity) {
|
||||
handleDownloadRemove();
|
||||
handleDownloadGroupRemove();
|
||||
} else if (mTaskEntity instanceof UploadTaskEntity) {
|
||||
handleUploadRemove();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理下载任务组的删除操作
|
||||
*/
|
||||
private void handleDownloadGroupRemove() {
|
||||
List<DownloadGroupTaskEntity> allEntity = DbEntity.findAllData(DownloadGroupTaskEntity.class);
|
||||
if (allEntity == null || allEntity.size() == 0) return;
|
||||
for (DownloadGroupTaskEntity entity : allEntity) {
|
||||
CommonUtil.delDownloadGroupTaskConfig(removeFile, entity);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理上传的删除
|
||||
*/
|
||||
|
@@ -29,11 +29,14 @@ import com.arialyy.aria.core.command.group.GroupCmdFactory;
|
||||
import com.arialyy.aria.core.command.normal.AbsNormalCmd;
|
||||
import com.arialyy.aria.core.command.normal.NormalCmdFactory;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
import com.arialyy.aria.core.download.DownloadGroupEntity;
|
||||
import com.arialyy.aria.core.download.DownloadGroupTaskEntity;
|
||||
import com.arialyy.aria.core.download.DownloadTaskEntity;
|
||||
import com.arialyy.aria.core.inf.AbsTaskEntity;
|
||||
import com.arialyy.aria.core.inf.BaseGroupTaskEntity;
|
||||
import com.arialyy.aria.core.upload.UploadEntity;
|
||||
import com.arialyy.aria.core.upload.UploadTaskEntity;
|
||||
import com.arialyy.aria.orm.DbEntity;
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.io.FileInputStream;
|
||||
@@ -216,6 +219,39 @@ public class CommonUtil {
|
||||
return md5;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除下载任务组的配置
|
||||
*
|
||||
* @param removeFile {@code true} 不仅删除任务数据库记录,还会删除已经删除完成的文件
|
||||
* {@code false}如果任务已经完成,只删除任务数据库记录
|
||||
*/
|
||||
public static void delDownloadGroupTaskConfig(boolean removeFile,
|
||||
DownloadGroupTaskEntity tEntity) {
|
||||
DownloadGroupEntity entity = tEntity.getEntity();
|
||||
List<DownloadTaskEntity> tasks =
|
||||
DbEntity.findDatas(DownloadTaskEntity.class, "groupName=?", tEntity.key);
|
||||
if (tasks != null && !tasks.isEmpty()) {
|
||||
for (DownloadTaskEntity taskEntity : tasks) {
|
||||
delDownloadTaskConfig(removeFile, taskEntity);
|
||||
}
|
||||
}
|
||||
|
||||
File dir = new File(tEntity.getEntity().getDirPath());
|
||||
if (removeFile) {
|
||||
if (dir.exists()) {
|
||||
dir.delete();
|
||||
}
|
||||
} else {
|
||||
if (!tEntity.getEntity().isComplete()) {
|
||||
dir.delete();
|
||||
}
|
||||
}
|
||||
if (entity != null) {
|
||||
entity.deleteData();
|
||||
}
|
||||
tEntity.deleteData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除上传任务的配置
|
||||
*
|
||||
@@ -246,6 +282,7 @@ public class CommonUtil {
|
||||
*/
|
||||
public static void delDownloadTaskConfig(boolean removeFile, DownloadTaskEntity tEntity) {
|
||||
DownloadEntity dEntity = tEntity.getEntity();
|
||||
if (dEntity == null) return;
|
||||
File file = new File(dEntity.getDownloadPath());
|
||||
if (removeFile) {
|
||||
if (file.exists()) {
|
||||
|
Reference in New Issue
Block a user