From 3386b14dfce32684d4b7be748db5d4380235a249 Mon Sep 17 00:00:00 2001 From: AriaLyy <511455842@qq.com> Date: Fri, 21 Jul 2017 15:39:18 +0800 Subject: [PATCH] bug fix https://github.com/AriaLyy/Aria/issues/72 --- .../aria/core/command/normal/StartCmd.java | 6 -- .../core/queue/DownloadGroupTaskQueue.java | 3 - .../aria/core/queue/DownloadTaskQueue.java | 3 - .../aria/core/queue/pool/BaseExecutePool.java | 3 - .../aria/core/scheduler/DQueueMapping.java | 89 ------------------- .../scheduler/DownloadGroupSchedulers.java | 21 ----- .../core/scheduler/DownloadSchedulers.java | 23 ----- app/src/main/assets/aria_config.xml | 6 +- 8 files changed, 3 insertions(+), 151 deletions(-) delete mode 100644 Aria/src/main/java/com/arialyy/aria/core/scheduler/DQueueMapping.java diff --git a/Aria/src/main/java/com/arialyy/aria/core/command/normal/StartCmd.java b/Aria/src/main/java/com/arialyy/aria/core/command/normal/StartCmd.java index 7da4a5ca..25e9a8e7 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/command/normal/StartCmd.java +++ b/Aria/src/main/java/com/arialyy/aria/core/command/normal/StartCmd.java @@ -19,15 +19,9 @@ package com.arialyy.aria.core.command.normal; import android.text.TextUtils; import com.arialyy.aria.core.AriaManager; import com.arialyy.aria.core.QueueMod; -import com.arialyy.aria.core.download.DownloadGroupTask; -import com.arialyy.aria.core.download.DownloadTask; import com.arialyy.aria.core.inf.AbsTask; import com.arialyy.aria.core.inf.IEntity; import com.arialyy.aria.core.inf.AbsTaskEntity; -import com.arialyy.aria.core.queue.DownloadGroupTaskQueue; -import com.arialyy.aria.core.queue.DownloadTaskQueue; -import com.arialyy.aria.core.scheduler.DQueueMapping; -import com.arialyy.aria.orm.Primary; /** * Created by lyy on 2016/8/22. diff --git a/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadGroupTaskQueue.java b/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadGroupTaskQueue.java index 1cbd63f1..781e2e1e 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadGroupTaskQueue.java +++ b/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadGroupTaskQueue.java @@ -25,7 +25,6 @@ import com.arialyy.aria.core.download.DownloadGroupTaskEntity; import com.arialyy.aria.core.queue.pool.BaseCachePool; import com.arialyy.aria.core.queue.pool.BaseExecutePool; import com.arialyy.aria.core.queue.pool.DownloadSharePool; -import com.arialyy.aria.core.scheduler.DQueueMapping; import com.arialyy.aria.core.scheduler.DownloadGroupSchedulers; /** @@ -65,8 +64,6 @@ public class DownloadGroupTaskQueue .createTask(targetName, entity, DownloadGroupSchedulers.getInstance()); entity.key = entity.getEntity().getGroupName(); mCachePool.putTask(task); - - DQueueMapping.getInstance().addType(task.getKey(), DQueueMapping.QUEUE_TYPE_DOWNLOAD_GROUP); } else { Log.e(TAG, "target name 为 null!!"); } diff --git a/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java b/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java index 24d4344c..3eda8f38 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java +++ b/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java @@ -25,7 +25,6 @@ import com.arialyy.aria.core.download.DownloadTaskEntity; import com.arialyy.aria.core.queue.pool.BaseCachePool; import com.arialyy.aria.core.queue.pool.BaseExecutePool; import com.arialyy.aria.core.queue.pool.DownloadSharePool; -import com.arialyy.aria.core.scheduler.DQueueMapping; import com.arialyy.aria.core.scheduler.DownloadSchedulers; import java.util.LinkedHashSet; import java.util.Map; @@ -130,8 +129,6 @@ public class DownloadTaskQueue .createTask(target, entity, DownloadSchedulers.getInstance()); entity.key = entity.getEntity().getDownloadPath(); mCachePool.putTask(task); - - DQueueMapping.getInstance().addType(task.getKey(), DQueueMapping.QUEUE_TYPE_DOWNLOAD); } else { Log.e(TAG, "target name 为 null!!"); } diff --git a/Aria/src/main/java/com/arialyy/aria/core/queue/pool/BaseExecutePool.java b/Aria/src/main/java/com/arialyy/aria/core/queue/pool/BaseExecutePool.java index fda42905..ee9a10a0 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/queue/pool/BaseExecutePool.java +++ b/Aria/src/main/java/com/arialyy/aria/core/queue/pool/BaseExecutePool.java @@ -21,7 +21,6 @@ import android.util.Log; import com.arialyy.aria.core.AriaManager; import com.arialyy.aria.core.inf.AbsTask; import com.arialyy.aria.core.inf.ITask; -import com.arialyy.aria.core.scheduler.DQueueMapping; import com.arialyy.aria.util.CommonUtil; import java.util.HashMap; import java.util.Map; @@ -186,8 +185,6 @@ public class BaseExecutePool implements IPool { String convertKey = CommonUtil.keyToHashKey(key); TASK task = mExecuteMap.get(convertKey); mExecuteMap.remove(convertKey); - - DQueueMapping.getInstance().removeType(key); return mExecuteQueue.remove(task); } } diff --git a/Aria/src/main/java/com/arialyy/aria/core/scheduler/DQueueMapping.java b/Aria/src/main/java/com/arialyy/aria/core/scheduler/DQueueMapping.java deleted file mode 100644 index 623a4a0e..00000000 --- a/Aria/src/main/java/com/arialyy/aria/core/scheduler/DQueueMapping.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * 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.scheduler; - -import com.arialyy.aria.core.AriaManager; -import com.arialyy.aria.core.queue.DownloadGroupTaskQueue; -import com.arialyy.aria.core.queue.DownloadTaskQueue; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * Created by Aria.Lao on 2017/7/13. - * 下载任务和队列的映射表 - */ -public class DQueueMapping { - - public static final int QUEUE_TYPE_DOWNLOAD = 0xa1; - public static final int QUEUE_TYPE_DOWNLOAD_GROUP = 0xa2; - public static final int QUEUE_NONE = 0xab2; - private LinkedHashMap types = new LinkedHashMap<>(); - - private static volatile DQueueMapping instance = null; - - private DQueueMapping() { - - } - - public static DQueueMapping getInstance() { - if (instance == null) { - synchronized (AriaManager.LOCK) { - instance = new DQueueMapping(); - } - } - return instance; - } - - /** - * map中增加类型 - * - * @param key 任务的key - * @param type {@link #QUEUE_TYPE_DOWNLOAD}、{@link #QUEUE_TYPE_DOWNLOAD} - */ - public void addType(String key, int type) { - types.put(key, type); - } - - /** - * @param key 任务的key - */ - public void removeType(String key) { - types.remove(key); - } - - /** - * 获取下一个任务类型 - * - * @return {@link #QUEUE_TYPE_DOWNLOAD}、{@link #QUEUE_TYPE_DOWNLOAD} - */ - public int nextType() { - Iterator> iter = types.entrySet().iterator(); - if (iter.hasNext()) { - Map.Entry next = iter.next(); - int type = next.getValue(); - iter.remove(); - return type; - } - return QUEUE_NONE; - } - - public boolean canStart() { - return DownloadTaskQueue.getInstance().getCurrentExePoolNum() - + DownloadGroupTaskQueue.getInstance().getCurrentExePoolNum() >= AriaManager.getInstance( - AriaManager.APP).getDownloadConfig().getMaxTaskNum(); - } -} diff --git a/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadGroupSchedulers.java b/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadGroupSchedulers.java index dd4dde4a..9d2a6d11 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadGroupSchedulers.java +++ b/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadGroupSchedulers.java @@ -50,25 +50,4 @@ public class DownloadGroupSchedulers extends @Override String getProxySuffix() { return "$$DownloadGroupListenerProxy"; } - - @Override protected void startNextTask() { - if (getExeTaskNum() + DownloadSchedulers.getInstance().getExeTaskNum() - >= AriaManager.getInstance(AriaManager.APP).getDownloadConfig().getMaxTaskNum()) { - return; - } - if (!DownloadSchedulers.getInstance().hasNextTask()) { - nextSelf(); - } else { - Integer nextType = DQueueMapping.getInstance().nextType(); - if (nextType == DQueueMapping.QUEUE_TYPE_DOWNLOAD) { - DownloadSchedulers.getInstance().nextSelf(); - } else { - nextSelf(); - } - } - } - - void nextSelf() { - super.startNextTask(); - } } diff --git a/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadSchedulers.java b/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadSchedulers.java index 5226c13b..3c492174 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadSchedulers.java +++ b/Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadSchedulers.java @@ -16,13 +16,11 @@ package com.arialyy.aria.core.scheduler; -import com.arialyy.aria.core.Aria; import com.arialyy.aria.core.AriaManager; import com.arialyy.aria.core.download.DownloadTaskEntity; import com.arialyy.aria.core.queue.DownloadTaskQueue; import com.arialyy.aria.core.download.DownloadEntity; import com.arialyy.aria.core.download.DownloadTask; -import java.nio.MappedByteBuffer; /** * Created by lyy on 2016/8/16. @@ -54,25 +52,4 @@ public class DownloadSchedulers @Override String getProxySuffix() { return "$$DownloadListenerProxy"; } - - @Override protected void startNextTask() { - if (getExeTaskNum() + DownloadGroupSchedulers.getInstance().getExeTaskNum() - >= AriaManager.getInstance(AriaManager.APP).getDownloadConfig().getMaxTaskNum()) { - return; - } - if (!DownloadGroupSchedulers.getInstance().hasNextTask()) { - nextSelf(); - } else { - Integer nextType = DQueueMapping.getInstance().nextType(); - if (nextType == DQueueMapping.QUEUE_TYPE_DOWNLOAD_GROUP) { - DownloadGroupSchedulers.getInstance().nextSelf(); - } else { - nextSelf(); - } - } - } - - void nextSelf() { - super.startNextTask(); - } } diff --git a/app/src/main/assets/aria_config.xml b/app/src/main/assets/aria_config.xml index b9a32817..43a593a2 100644 --- a/app/src/main/assets/aria_config.xml +++ b/app/src/main/assets/aria_config.xml @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@ - +