Merge branch 'v_3.0' of github.com:AriaLyy/Aria into v_3.0

This commit is contained in:
AriaLyy
2017-09-07 21:43:58 +08:00
4 changed files with 66 additions and 14 deletions

View File

@@ -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);
}
}
/**
* 处理上传的删除
*/

View File

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