From 0279bd019bff3a97e72877de176aa2262522d332 Mon Sep 17 00:00:00 2001
From: lyy <511455842@qq.com>
Date: Fri, 23 Sep 2016 15:56:00 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=91=BD=E4=BB=A4=E5=AE=9E?=
=?UTF-8?q?=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/.name | 1 -
.idea/gradle.xml | 8 +-
.idea/misc.xml | 2 +-
.idea/modules.xml | 1 +
downloadutil/build.gradle | 2 +-
.../downloadutil/core/DownloadTarget.java | 58 ++++-----
.../downloadutil/core/IDownloadTarget.java | 6 +-
.../com/arialyy/downloadutil/core/Task.java | 12 +-
.../downloadutil/core/command/AddCommand.java | 22 +---
.../core/command/CancelCommand.java | 17 +--
.../core/command/CommandFactory.java | 115 ++++++++++++++++++
.../core/command/GetStateCommand.java | 18 ---
.../core/command/IDownloadCommand.java | 22 +++-
.../core/command/StartCommand.java | 15 ++-
.../core/command/StateCommand.java | 23 ++++
.../core/command/StopCommand.java | 19 +--
.../arialyy/downloadutil/core/inf/ITask.java | 30 ++---
.../downloadutil/entity/DownloadEntity.java | 18 +++
.../arialyy/downloadutil/help/CheckHelp.java | 50 ++++++++
downloadutil/src/main/res/values/strings.xml | 5 +
20 files changed, 314 insertions(+), 130 deletions(-)
delete mode 100644 .idea/.name
create mode 100644 downloadutil/src/main/java/com/arialyy/downloadutil/core/command/CommandFactory.java
delete mode 100644 downloadutil/src/main/java/com/arialyy/downloadutil/core/command/GetStateCommand.java
create mode 100644 downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StateCommand.java
create mode 100644 downloadutil/src/main/java/com/arialyy/downloadutil/help/CheckHelp.java
diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index 2ac081d5..00000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-DownloadDemo
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 6f6d0974..276576f1 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -13,13 +13,7 @@
-
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index ba75a422..04c63e41 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -53,7 +53,7 @@
-
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index d9fb88b4..45f2cb6a 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,6 +3,7 @@
+
diff --git a/downloadutil/build.gradle b/downloadutil/build.gradle
index f7e29d9b..b0037d56 100644
--- a/downloadutil/build.gradle
+++ b/downloadutil/build.gradle
@@ -23,4 +23,4 @@ dependencies {
compile 'com.android.support:appcompat-v7:23.1.1'
}
-apply from: 'jcenter.gradle'
\ No newline at end of file
+//apply from: 'jcenter.gradle'
\ No newline at end of file
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/DownloadTarget.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/DownloadTarget.java
index e3cba753..23110d75 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/DownloadTarget.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/DownloadTarget.java
@@ -1,6 +1,7 @@
package com.arialyy.downloadutil.core;
import android.content.Context;
+import android.text.TextUtils;
import android.util.Log;
import com.arialyy.downloadutil.entity.DownloadEntity;
@@ -16,10 +17,6 @@ public class DownloadTarget extends IDownloadTarget {
private Context mContext;
public static DownloadTarget getInstance(Context context) {
-// if (INSTANCE == null) {
-// Log.e(TAG, "请在Application中调用DownloadTarget.init()方法注册下载器");
-// return null;
-// }
if (INSTANCE == null) {
synchronized (LOCK) {
INSTANCE = new DownloadTarget(context.getApplicationContext());
@@ -27,19 +24,6 @@ public class DownloadTarget extends IDownloadTarget {
}
return INSTANCE;
}
-//
-// /**
-// * 初始化下载器
-// *
-// * @param context 全局Context
-// */
-// public static void init(Context context) {
-// if (INSTANCE == null) {
-// synchronized (LOCK) {
-// INSTANCE = new DownloadTarget(context.getApplicationContext());
-// }
-// }
-// }
private DownloadTarget() {
super();
@@ -81,46 +65,46 @@ public class DownloadTarget extends IDownloadTarget {
}
@Override
- public void createTask(String downloadUrl, String downloadPath) {
- DownloadEntity entity = new DownloadEntity();
- entity.setDownloadUrl(downloadUrl);
- entity.setDownloadPath(downloadPath);
+ public Task createTask(DownloadEntity entity) {
Task task = TaskFactory.getInstance().createTask(mContext, entity, mTaskHandler);
mCachePool.putTask(task);
- }
-
- @Override
- public Task getTask(String downloadUrl) {
- Task task = mCachePool.getTask(downloadUrl);
- if (task == null) {
- task = mExecutePool.getTask(downloadUrl);
- }
-
return task;
}
@Override
- public int getTaskState(String downloadUrl) {
- Task task = getTask(downloadUrl);
+ public Task getTask(DownloadEntity entity) {
+ Task task = mExecutePool.getTask(entity.getDownloadUrl());
if (task == null) {
- Log.e(TAG, "没有找到下载链接为【" + downloadUrl + "】的下载任务");
+ task = mCachePool.getTask(entity.getDownloadUrl());
+ }
+ if (task == null){
+ task = createTask(entity);
+ }
+ return task;
+ }
+
+ @Override
+ public int getTaskState(DownloadEntity entity) {
+ Task task = getTask(entity);
+ if (task == null) {
+ Log.e(TAG, "没有找到下载链接为【" + entity.getDownloadUrl() + "】的下载任务");
return -1;
}
return task.getDownloadEntity().getState();
}
@Override
- public void removeTask(String downloadUrl) {
- Task task = mCachePool.getTask(downloadUrl);
+ public void removeTask(DownloadEntity entity) {
+ Task task = mCachePool.getTask(entity.getDownloadUrl());
if (task != null) {
Log.d(TAG, "任务删除" + (mCachePool.removeTask(task) ? "成功" : "失败"));
} else {
- task = mExecutePool.getTask(downloadUrl);
+ task = mExecutePool.getTask(entity.getDownloadUrl());
}
if (task != null) {
Log.d(TAG, "任务删除" + (mCachePool.removeTask(task) ? "成功" : "失败"));
} else {
- Log.w(TAG, "没有找到下载链接为【" + downloadUrl + "】的任务");
+ Log.w(TAG, "没有找到下载链接为【" + entity.getDownloadUrl() + "】的任务");
}
}
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/IDownloadTarget.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/IDownloadTarget.java
index bee0e374..4f66608d 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/IDownloadTarget.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/IDownloadTarget.java
@@ -177,7 +177,7 @@ public abstract class IDownloadTarget implements IDownloader, ITask {
*/
private void callback(int state, DownloadEntity entity) {
if (target.mTargetListener != null) {
- Task task = target.getTask(entity.getDownloadUrl());
+ Task task = target.getTask(entity);
switch (state) {
case START:
target.mTargetListener.onTaskStart(task);
@@ -205,7 +205,7 @@ public abstract class IDownloadTarget implements IDownloader, ITask {
*/
private void handleFailTask(DownloadEntity entity) {
if (entity.getFailNum() <= target.mFailNum) {
- Task task = target.getTask(entity.getDownloadUrl());
+ Task task = target.getTask(entity);
target.reTryStart(task);
} else {
startNextTask(entity);
@@ -218,7 +218,7 @@ public abstract class IDownloadTarget implements IDownloader, ITask {
* @param entity 通过Handler传递的下载实体
*/
private void startNextTask(DownloadEntity entity) {
- target.removeTask(entity.getDownloadUrl());
+ target.removeTask(entity);
Task newTask = target.getNextTask();
if (newTask == null) {
Log.e(TAG, "没有下一任务");
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/Task.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/Task.java
index bbd7a997..afaafd14 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/Task.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/Task.java
@@ -18,11 +18,11 @@ import java.net.HttpURLConnection;
public class Task {
public static final String TAG = "Task";
- DownloadEntity downloadEntity;
- IDownloadListener listener;
- Handler outHandler;
- Context context;
- DownLoadUtil util;
+ private DownloadEntity downloadEntity;
+ private IDownloadListener listener;
+ private Handler outHandler;
+ private Context context;
+ private DownLoadUtil util;
private Task() {
util = new DownLoadUtil();
@@ -72,7 +72,7 @@ public class Task {
/**
* 下载监听类
*/
- static class DownloadListener extends DownLoadUtil.DownloadListener {
+ private static class DownloadListener extends DownLoadUtil.DownloadListener {
Handler outHandler;
Context context;
Intent sendIntent;
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/AddCommand.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/AddCommand.java
index 30c9a732..af6a5b96 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/AddCommand.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/AddCommand.java
@@ -1,30 +1,20 @@
package com.arialyy.downloadutil.core.command;
-import android.support.annotation.NonNull;
-
-import com.arialyy.downloadutil.core.IDownloadTarget;
+import android.content.Context;
+import com.arialyy.downloadutil.entity.DownloadEntity;
/**
* Created by lyy on 2016/8/22.
* 添加任务的命令
*/
-public class AddCommand extends IDownloadCommand {
- String mDownloadUrl, mDownloadPath;
+class AddCommand extends IDownloadCommand {
- /**
- *
- * @param target 下载调度器
- * @param downloadUrl 下载链接
- * @param downloadPath 文件保存地址
- */
- public AddCommand(@NonNull IDownloadTarget target, String downloadUrl, String downloadPath) {
- super(target);
- mDownloadUrl = downloadUrl;
- mDownloadPath = downloadPath;
+ AddCommand(Context context, DownloadEntity entity) {
+ super(context, entity);
}
@Override
public void executeComment() {
- target.createTask(mDownloadUrl, mDownloadPath);
+ target.createTask(mEntity);
}
}
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/CancelCommand.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/CancelCommand.java
index 2cd79a89..dbdf0c83 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/CancelCommand.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/CancelCommand.java
@@ -1,18 +1,19 @@
package com.arialyy.downloadutil.core.command;
-import com.arialyy.downloadutil.core.IDownloadTarget;
+import android.content.Context;
+import com.arialyy.downloadutil.entity.DownloadEntity;
/**
* Created by lyy on 2016/9/20.
* 取消命令
*/
-public class CancelCommand extends IDownloadCommand{
- public CancelCommand(IDownloadTarget target) {
- super(target);
- }
+public class CancelCommand extends IDownloadCommand {
- @Override
- public void executeComment() {
+ protected CancelCommand(Context context, DownloadEntity entity) {
+ super(context, entity);
+ }
- }
+ @Override public void executeComment() {
+ target.cancelTask(target.getTask(mEntity));
+ }
}
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/CommandFactory.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/CommandFactory.java
new file mode 100644
index 00000000..f98d714f
--- /dev/null
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/CommandFactory.java
@@ -0,0 +1,115 @@
+package com.arialyy.downloadutil.core.command;
+
+import android.content.Context;
+import com.arialyy.downloadutil.entity.DownloadEntity;
+
+/**
+ * Created by Lyy on 2016/9/23.
+ * 命令工厂
+ */
+public class CommandFactory {
+ /**
+ * 创建任务
+ */
+ public static final int TASK_CREATE = 0x122;
+ /**
+ * 启动任务
+ */
+ public static final int TASK_START = 0x123;
+ /**
+ * 取消任务
+ */
+ public static final int TASK_CANCEL = 0x124;
+ /**
+ * 停止任务
+ */
+ public static final int TASK_STOP = 0x125;
+ /**
+ * 获取任务状态
+ */
+ public static final int TASK_STATE = 0x126;
+
+ private static final Object LOCK = new Object();
+ private static volatile CommandFactory INSTANCE = null;
+
+ private CommandFactory() {
+
+ }
+
+ public static CommandFactory getInstance() {
+ if (INSTANCE == null) {
+ synchronized (LOCK) {
+ INSTANCE = new CommandFactory();
+ }
+ }
+ return INSTANCE;
+ }
+
+ /**
+ * @param context context
+ * @param entity 下载实体
+ * @param type 命令类型{@link #TASK_CREATE}、{@link #TASK_START}、{@link #TASK_CANCEL}、{@link
+ * #TASK_STOP}、{@link #TASK_STATE}
+ */
+ public IDownloadCommand createCommand(Context context, DownloadEntity entity, int type) {
+ switch (type) {
+ case TASK_CREATE:
+ return createAddCommand(context, entity);
+ case TASK_START:
+ return createStartCommand(context, entity);
+ case TASK_CANCEL:
+ return createCancelCommand(context, entity);
+ case TASK_STOP:
+ return createStopCommand(context, entity);
+ case TASK_STATE:
+ return createStateCommand(context, entity);
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * 创建获取任务状态的命令
+ *
+ * @return {@link StateCommand}
+ */
+ private StateCommand createStateCommand(Context context, DownloadEntity entity) {
+ return new StateCommand(context, entity);
+ }
+
+ /**
+ * 创建停止命令
+ *
+ * @return {@link StopCommand}
+ */
+ private StopCommand createStopCommand(Context context, DownloadEntity entity) {
+ return new StopCommand(context, entity);
+ }
+
+ /**
+ * 创建下载任务命令
+ *
+ * @return {@link AddCommand}
+ */
+ private AddCommand createAddCommand(Context context, DownloadEntity entity) {
+ return new AddCommand(context, entity);
+ }
+
+ /**
+ * 创建启动下载命令
+ *
+ * @return {@link StartCommand}
+ */
+ private StartCommand createStartCommand(Context context, DownloadEntity entity) {
+ return new StartCommand(context, entity);
+ }
+
+ /**
+ * 创建 取消下载的命令
+ *
+ * @return {@link CancelCommand}
+ */
+ private CancelCommand createCancelCommand(Context context, DownloadEntity entity) {
+ return new CancelCommand(context, entity);
+ }
+}
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/GetStateCommand.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/GetStateCommand.java
deleted file mode 100644
index dc46380d..00000000
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/GetStateCommand.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.arialyy.downloadutil.core.command;
-
-import com.arialyy.downloadutil.core.IDownloadTarget;
-
-/**
- * Created by lyy on 2016/9/20.
- * 获取下载状态的命令
- */
-public class GetStateCommand extends IDownloadCommand {
- public GetStateCommand(IDownloadTarget target) {
- super(target);
- }
-
- @Override
- public void executeComment() {
-
- }
-}
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/IDownloadCommand.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/IDownloadCommand.java
index d96c6d4c..0e61be8f 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/IDownloadCommand.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/IDownloadCommand.java
@@ -1,10 +1,13 @@
package com.arialyy.downloadutil.core.command;
+import android.content.Context;
import android.support.annotation.NonNull;
import com.arialyy.downloadutil.core.DownloadTarget;
import com.arialyy.downloadutil.core.IDownloadTarget;
+import com.arialyy.downloadutil.entity.DownloadEntity;
+import com.arialyy.downloadutil.help.CheckHelp;
import java.util.List;
/**
@@ -13,9 +16,24 @@ import java.util.List;
*/
public abstract class IDownloadCommand {
protected IDownloadTarget target;
+ protected Context mContext;
+ protected DownloadEntity mEntity;
- public IDownloadCommand(@NonNull IDownloadTarget target) {
- this.target = target;
+ /**
+ * @param context context
+ * @param entity 下载实体
+ */
+ protected IDownloadCommand(Context context, DownloadEntity entity){
+ if (!CheckHelp.checkDownloadEntity(entity)){
+ return;
+ }
+ target = DownloadTarget.getInstance(context);
+ mContext = context;
+ mEntity = entity;
+ }
+
+ public Context getContext(){
+ return mContext;
}
/**
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StartCommand.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StartCommand.java
index f06991ed..db2c23b0 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StartCommand.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StartCommand.java
@@ -1,21 +1,20 @@
package com.arialyy.downloadutil.core.command;
-import android.support.annotation.NonNull;
-
-import com.arialyy.downloadutil.core.IDownloadTarget;
-import com.arialyy.downloadutil.core.Task;
+import android.content.Context;
+import com.arialyy.downloadutil.entity.DownloadEntity;
/**
* Created by lyy on 2016/8/22.
* 开始命令
*/
-public class StartCommand extends IDownloadCommand{
- public StartCommand(@NonNull IDownloadTarget target) {
- super(target);
+class StartCommand extends IDownloadCommand{
+
+ StartCommand(Context context, DownloadEntity entity) {
+ super(context, entity);
}
@Override
public void executeComment() {
-// target.startTask();
+ target.startTask(target.getTask(mEntity));
}
}
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StateCommand.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StateCommand.java
new file mode 100644
index 00000000..a2980167
--- /dev/null
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StateCommand.java
@@ -0,0 +1,23 @@
+package com.arialyy.downloadutil.core.command;
+
+import android.content.Context;
+import com.arialyy.downloadutil.entity.DownloadEntity;
+
+/**
+ * Created by lyy on 2016/9/20.
+ * 获取下载状态的命令
+ */
+public class StateCommand extends IDownloadCommand {
+
+ /**
+ * @param context context
+ * @param entity 下载实体
+ */
+ protected StateCommand(Context context, DownloadEntity entity) {
+ super(context, entity);
+ }
+
+ @Override public void executeComment() {
+ target.getTaskState(mEntity);
+ }
+}
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StopCommand.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StopCommand.java
index 216607ca..4c6ec43f 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StopCommand.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/command/StopCommand.java
@@ -1,18 +1,23 @@
package com.arialyy.downloadutil.core.command;
-import com.arialyy.downloadutil.core.IDownloadTarget;
+import android.content.Context;
+import com.arialyy.downloadutil.entity.DownloadEntity;
/**
* Created by lyy on 2016/9/20.
* 停止命令
*/
public class StopCommand extends IDownloadCommand {
- public StopCommand(IDownloadTarget target) {
- super(target);
- }
- @Override
- public void executeComment() {
+ /**
+ * @param context context
+ * @param entity 下载实体
+ */
+ protected StopCommand(Context context, DownloadEntity entity) {
+ super(context, entity);
+ }
- }
+ @Override public void executeComment() {
+ target.stopTask(target.getTask(mEntity));
+ }
}
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/inf/ITask.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/inf/ITask.java
index 27c49d10..241443f8 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/inf/ITask.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/inf/ITask.java
@@ -1,6 +1,7 @@
package com.arialyy.downloadutil.core.inf;
import com.arialyy.downloadutil.core.Task;
+import com.arialyy.downloadutil.entity.DownloadEntity;
/**
* Created by lyy on 2016/8/16.
@@ -11,33 +12,32 @@ public interface ITask {
/**
* 创建一个新的下载任务,创建时只是将新任务存储到缓存池
*
- * @param downloadUrl 下载链接
- * @param downloadPath 保存路径
- */
- public void createTask(String downloadUrl, String downloadPath);
-
- /**
- * 通过下载链接从缓存池或任务池搜索下载任务
- *
- * @param downloadUrl 下载链接
+ * @param entity 下载实体{@link DownloadEntity}
* @return {@link Task}
*/
- public Task getTask(String downloadUrl);
+ public Task createTask(DownloadEntity entity);
+
+ /**
+ * 通过下载链接从缓存池或任务池搜索下载任务,如果缓存池或任务池都没有任务,则创建新任务
+ *
+ * @param entity 下载实体{@link DownloadEntity}
+ * @return {@link Task}
+ */
+ public Task getTask(DownloadEntity entity);
/**
* 通过下载链接搜索下载任务
*
- * @param downloadUrl 下载链接
+ * @param entity 下载实体{@link DownloadEntity}
* @return {@code -1 ==> 错误},{@link com.arialyy.downloadutil.entity.DownloadEntity#STATE_FAIL}
*/
- public int getTaskState(String downloadUrl);
+ public int getTaskState(DownloadEntity entity);
/**
* 通过下载链接删除任务
- *
- * @param downloadUrl 下载链接
+ * @param entity 下载实体{@link DownloadEntity}
*/
- public void removeTask(String downloadUrl);
+ public void removeTask(DownloadEntity entity);
/**
* 获取缓存池的下一个任务
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/entity/DownloadEntity.java b/downloadutil/src/main/java/com/arialyy/downloadutil/entity/DownloadEntity.java
index 97986f8f..664a3537 100644
--- a/downloadutil/src/main/java/com/arialyy/downloadutil/entity/DownloadEntity.java
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/entity/DownloadEntity.java
@@ -41,6 +41,8 @@ public class DownloadEntity extends DbEntity implements Parcelable, Cloneable {
private String downloadUrl; //下载路径
private String downloadPath; //保存路径
+ private String fileName; //文件名
+ private String str; //其它字段
private long completeTime; //完成时间
private long fileSize = 1;
private int state = STATE_WAIT;
@@ -48,6 +50,22 @@ public class DownloadEntity extends DbEntity implements Parcelable, Cloneable {
private long currentProgress = 0; //当前下载进度
private int failNum = 0;
+ public String getStr() {
+ return str;
+ }
+
+ public void setStr(String str) {
+ this.str = str;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
public int getFailNum() {
return failNum;
}
diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/help/CheckHelp.java b/downloadutil/src/main/java/com/arialyy/downloadutil/help/CheckHelp.java
new file mode 100644
index 00000000..03a1a3c5
--- /dev/null
+++ b/downloadutil/src/main/java/com/arialyy/downloadutil/help/CheckHelp.java
@@ -0,0 +1,50 @@
+package com.arialyy.downloadutil.help;
+
+import android.app.Application;
+import android.content.res.Resources;
+import android.text.TextUtils;
+import android.util.Log;
+import com.arialyy.downloadutil.R;
+import com.arialyy.downloadutil.entity.DownloadEntity;
+import java.io.File;
+
+/**
+ * Created by Lyy on 2016/9/23.
+ * 检查帮助类
+ */
+public class CheckHelp {
+ private static final String TAG = "CheckHelp";
+
+ /**
+ * 检测下载实体是否合法
+ *
+ * @param entity 下载实体
+ * @return 合法(true)
+ */
+ public static boolean checkDownloadEntity(DownloadEntity entity) {
+ if (entity == null) {
+ Log.w(TAG, Resources.getSystem().getString(R.string.error_entity_null));
+ return false;
+ } else if (TextUtils.isEmpty(entity.getDownloadUrl())) {
+ Log.w(TAG, Resources.getSystem().getString(R.string.error_download_url_null));
+ return false;
+ } else if (TextUtils.isEmpty(entity.getFileName())){
+ Log.w(TAG, Resources.getSystem().getString(R.string.error_file_name_null));
+ return false;
+ } else if (TextUtils.isEmpty(entity.getDownloadPath())){
+ Log.w(TAG, Resources.getSystem().getString(R.string.error_file_name_null));
+ return false;
+ }
+ String fileName = entity.getFileName();
+ if (fileName.contains(" ")){
+ fileName = fileName.replace(" ", "_");
+ }
+ String dPath = entity.getDownloadPath();
+ File file = new File(dPath);
+ if (file.isDirectory()){
+ dPath += fileName;
+ entity.setDownloadPath(dPath);
+ }
+ return true;
+ }
+}
diff --git a/downloadutil/src/main/res/values/strings.xml b/downloadutil/src/main/res/values/strings.xml
index 650de897..502c5311 100644
--- a/downloadutil/src/main/res/values/strings.xml
+++ b/downloadutil/src/main/res/values/strings.xml
@@ -1,3 +1,8 @@
DownloadUtil
+
+ 下载实体不能为空
+ 下载链接不能为空
+ 存储地址不能为空
+ 文件名不能为空