fix bug https://github.com/AriaLyy/Aria/issues/542
fix bug https://github.com/AriaLyy/Aria/issues/547
修复下载失败时,中断重试无效的问题
增加忽略权限检查的api,`ignoreCheckPermissions()`
This commit is contained in:
laoyuyu
2019-12-02 19:31:39 +08:00
parent 91daecd039
commit 669aa6981c
38 changed files with 294 additions and 241 deletions

View File

@@ -23,8 +23,6 @@ import android.app.Dialog;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.widget.PopupWindow;
import com.arialyy.aria.core.command.CommandManager;
import com.arialyy.aria.core.common.QueueMod;
@@ -76,7 +74,6 @@ import java.util.concurrent.ConcurrentHashMap;
*/
private Map<String, List<String>> mSubClass = new ConcurrentHashMap<>();
private static Context APP;
private Handler mAriaHandler;
private DelegateWrapper mDbWrapper;
private AriaConfig mConfig;
@@ -168,13 +165,6 @@ import java.util.concurrent.ConcurrentHashMap;
}
}
public synchronized Handler getAriaHandler() {
if (mAriaHandler == null) {
mAriaHandler = new Handler(Looper.getMainLooper());
}
return mAriaHandler;
}
public Map<String, AbsReceiver> getReceiver() {
return mReceivers;
}

View File

@@ -15,6 +15,7 @@
*/
package com.arialyy.aria.core.command;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.task.DownloadTask;
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
@@ -41,7 +42,7 @@ final class HighestPriorityCmd<T extends AbsTaskWrapper> extends AbsNormalCmd<T>
@Override public void executeCmd() {
if (!canExeCmd) return;
if (!NetUtils.isConnected(AriaManager.getInstance().getAPP())){
if (!NetUtils.isConnected(AriaConfig.getInstance().getAPP())){
ALog.e(TAG, "启动任务失败,网络未连接");
return;
}

View File

@@ -15,7 +15,7 @@
*/
package com.arialyy.aria.core.command;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.inf.IEntity;
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
import com.arialyy.aria.util.ALog;
@@ -36,7 +36,7 @@ final class ResumeAllCmd<T extends AbsTaskWrapper> extends AbsNormalCmd<T> {
}
@Override public void executeCmd() {
if (!NetUtils.isConnected(AriaManager.getInstance().getAPP())) {
if (!NetUtils.isConnected(AriaConfig.getInstance().getAPP())) {
ALog.w(TAG, "恢复任务失败,网络未连接");
return;
}

View File

@@ -16,7 +16,7 @@
package com.arialyy.aria.core.command;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.common.QueueMod;
import com.arialyy.aria.core.inf.IEntity;
import com.arialyy.aria.core.task.AbsTask;
@@ -37,6 +37,7 @@ final public class StartCmd<T extends AbsTaskWrapper> extends AbsNormalCmd<T> {
/**
* 立即执行任务
*
* @param newStart true 立即执行任务,无论执行队列是否满了
*/
public void setNewStart(boolean newStart) {
@@ -45,17 +46,17 @@ final public class StartCmd<T extends AbsTaskWrapper> extends AbsNormalCmd<T> {
@Override public void executeCmd() {
if (!canExeCmd) return;
if (!NetUtils.isConnected(AriaManager.getInstance().getAPP())) {
if (!NetUtils.isConnected(AriaConfig.getInstance().getAPP())) {
ALog.e(TAG, "启动任务失败,网络未连接");
return;
}
String mod;
int maxTaskNum = mQueue.getMaxTaskNum();
AriaManager manager = AriaManager.getInstance();
AriaConfig config = AriaConfig.getInstance();
if (isDownloadCmd) {
mod = manager.getDownloadConfig().getQueueMod();
mod = config.getDConfig().getQueueMod();
} else {
mod = manager.getUploadConfig().getQueueMod();
mod = config.getUConfig().getQueueMod();
}
AbsTask task = getTask();
@@ -81,9 +82,9 @@ final public class StartCmd<T extends AbsTaskWrapper> extends AbsNormalCmd<T> {
startTask();
}
} else {
if (newStart){
if (newStart) {
startTask();
}else {
} else {
sendWaitState(task);
}
}

View File

@@ -15,8 +15,8 @@
*/
package com.arialyy.aria.core.common;
import com.arialyy.aria.core.common.controller.IStartFeature;
import com.arialyy.aria.core.common.controller.BuilderController;
import com.arialyy.aria.core.common.controller.IStartFeature;
import com.arialyy.aria.core.inf.AbsTarget;
/**
@@ -34,6 +34,14 @@ public abstract class AbsBuilderTarget<TARGET extends AbsBuilderTarget> extends
return mStartController;
}
/**
* 是否忽略权限检查
*/
public TARGET ignoreCheckPermissions() {
getController().ignoreCheckPermissions();
return (TARGET) this;
}
/**
* 添加任务
*

View File

@@ -31,6 +31,14 @@ import com.arialyy.aria.util.RecordUtil;
public abstract class AbsNormalTarget<TARGET extends AbsNormalTarget> extends AbsTarget<TARGET>
implements INormalFeature {
/**
* 是否忽略权限检查
*/
public TARGET ignoreCheckPermissions() {
getController().ignoreCheckPermissions();
return (TARGET) this;
}
/**
* 任务是否在执行
*

View File

@@ -19,21 +19,21 @@ import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Handler;
import android.os.Looper;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.common.AbsEntity;
import com.arialyy.aria.core.download.CheckDEntityUtil;
import com.arialyy.aria.core.download.CheckDGEntityUtil;
import com.arialyy.aria.core.download.CheckFtpDirEntityUtil;
import com.arialyy.aria.core.download.DGTaskWrapper;
import com.arialyy.aria.core.download.DTaskWrapper;
import com.arialyy.aria.core.common.AbsEntity;
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
import com.arialyy.aria.core.inf.ICheckEntityUtil;
import com.arialyy.aria.core.task.ITask;
import com.arialyy.aria.core.wrapper.ITaskWrapper;
import com.arialyy.aria.core.listener.ISchedulers;
import com.arialyy.aria.core.scheduler.TaskSchedulers;
import com.arialyy.aria.core.task.ITask;
import com.arialyy.aria.core.upload.CheckUEntityUtil;
import com.arialyy.aria.core.upload.UTaskWrapper;
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
import com.arialyy.aria.core.wrapper.ITaskWrapper;
import com.arialyy.aria.util.ALog;
import com.arialyy.aria.util.CommonUtil;
import java.lang.reflect.Constructor;
@@ -46,6 +46,10 @@ public abstract class FeatureController {
private final String TAG;
private AbsTaskWrapper mTaskWrapper;
/**
* 是否忽略权限检查 true 忽略权限检查
*/
private boolean ignoreCheckPermissions = false;
FeatureController(AbsTaskWrapper wrapper) {
mTaskWrapper = wrapper;
@@ -87,6 +91,13 @@ public abstract class FeatureController {
return null;
}
/**
* 是否忽略权限检查
*/
public void ignoreCheckPermissions() {
this.ignoreCheckPermissions = true;
}
protected AbsTaskWrapper getTaskWrapper() {
return mTaskWrapper;
}
@@ -111,7 +122,7 @@ public abstract class FeatureController {
* 如果检查实体失败,将错误回调
*/
boolean checkConfig() {
if (!checkPermission()) {
if (!ignoreCheckPermissions && !checkPermission()) {
return false;
}
boolean b = checkEntity();
@@ -134,21 +145,21 @@ public abstract class FeatureController {
*/
private boolean checkPermission() {
if (AriaManager.getInstance()
if (AriaConfig.getInstance()
.getAPP()
.checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ALog.e(TAG, "启动失败缺少权限Manifest.permission.WRITE_EXTERNAL_STORAGE");
return false;
}
if (AriaManager.getInstance()
if (AriaConfig.getInstance()
.getAPP()
.checkCallingOrSelfPermission(Manifest.permission.INTERNET)
!= PackageManager.PERMISSION_GRANTED) {
ALog.e(TAG, "启动失败缺少权限Manifest.permission.INTERNET");
return false;
}
if (AriaManager.getInstance()
if (AriaConfig.getInstance()
.getAPP()
.checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {

View File

@@ -23,6 +23,7 @@ import com.arialyy.aria.core.wrapper.ITaskWrapper;
import com.arialyy.aria.util.ALog;
import com.arialyy.aria.util.CheckUtil;
import com.arialyy.aria.util.CommonUtil;
import com.arialyy.aria.util.FileUtil;
import com.arialyy.aria.util.RecordUtil;
import java.io.File;
@@ -65,8 +66,7 @@ public class CheckDEntityUtil implements ICheckEntityUtil {
File file = new File(mWrapper.getTempFilePath());
Object bw = mWrapper.getM3U8Params().getParam(IOptionConstant.bandWidth);
int bandWidth = bw == null ? 0 : (int) bw;
// 缓存文件夹格式:问文件夹/.文件名_码率
String cacheDir = String.format("%s/.%s_%s", file.getParent(), file.getName(), bandWidth);
String cacheDir = FileUtil.getTsCacheDir(file.getPath(), bandWidth);
mWrapper.getM3U8Params().setParams(IOptionConstant.cacheDir, cacheDir);
M3U8Entity m3U8Entity = mEntity.getM3U8Entity();

View File

@@ -18,6 +18,7 @@ package com.arialyy.aria.core.download;
import androidx.annotation.CheckResult;
import androidx.annotation.NonNull;
import com.arialyy.annotations.TaskEnum;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.command.CancelAllCmd;
import com.arialyy.aria.core.command.CmdHelper;
@@ -64,7 +65,7 @@ public class DownloadReceiver extends AbsReceiver {
*/
@Deprecated
public DownloadReceiver setMaxSpeed(int maxSpeed) {
AriaManager.getInstance().getDownloadConfig().setMaxSpeed(maxSpeed);
AriaConfig.getInstance().getDConfig().setMaxSpeed(maxSpeed);
return this;
}
@@ -287,7 +288,7 @@ public class DownloadReceiver extends AbsReceiver {
* @return 如果实体不存在返回null
*/
public DownloadGroupEntity getGroupEntity(List<String> urls) {
if (CheckUtil.checkDownloadUrlsIsEmpty(urls)){
if (CheckUtil.checkDownloadUrlsIsEmpty(urls)) {
return null;
}
return DbDataHelper.getDGEntity(CommonUtil.getMd5Code(urls));

View File

@@ -16,13 +16,13 @@
package com.arialyy.aria.core.queue;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.download.DGTaskWrapper;
import com.arialyy.aria.core.task.DownloadGroupTask;
import com.arialyy.aria.core.event.DGMaxNumEvent;
import com.arialyy.aria.core.event.Event;
import com.arialyy.aria.core.event.EventMsgUtil;
import com.arialyy.aria.core.scheduler.TaskSchedulers;
import com.arialyy.aria.core.task.DownloadGroupTask;
import com.arialyy.aria.util.ALog;
/**
@@ -57,7 +57,7 @@ public class DGroupTaskQueue
}
@Override public int getMaxTaskNum() {
return AriaManager.getInstance().getDGroupConfig().getMaxTaskNum();
return AriaConfig.getInstance().getDConfig().getMaxTaskNum();
}
@Override public DownloadGroupTask createTask(DGTaskWrapper wrapper) {
@@ -74,6 +74,6 @@ public class DGroupTaskQueue
}
@Override public int getOldMaxNum() {
return AriaManager.getInstance().getDGroupConfig().oldMaxTaskNum;
return AriaConfig.getInstance().getDGConfig().oldMaxTaskNum;
}
}

View File

@@ -16,14 +16,14 @@
package com.arialyy.aria.core.queue;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.download.DTaskWrapper;
import com.arialyy.aria.core.task.DownloadTask;
import com.arialyy.aria.core.event.DMaxNumEvent;
import com.arialyy.aria.core.event.Event;
import com.arialyy.aria.core.event.EventMsgUtil;
import com.arialyy.aria.core.inf.TaskSchedulerType;
import com.arialyy.aria.core.scheduler.TaskSchedulers;
import com.arialyy.aria.core.task.DownloadTask;
import com.arialyy.aria.util.ALog;
import java.util.LinkedHashSet;
import java.util.Map;
@@ -60,7 +60,7 @@ public class DTaskQueue extends AbsTaskQueue<DownloadTask, DTaskWrapper> {
}
@Override public int getOldMaxNum() {
return AriaManager.getInstance().getDownloadConfig().oldMaxTaskNum;
return AriaConfig.getInstance().getDConfig().oldMaxTaskNum;
}
/**
@@ -81,7 +81,7 @@ public class DTaskQueue extends AbsTaskQueue<DownloadTask, DTaskWrapper> {
}
}
}
int maxSize = AriaManager.getInstance().getDownloadConfig().getMaxTaskNum();
int maxSize = AriaConfig.getInstance().getDConfig().getMaxTaskNum();
int currentSize = mExecutePool.size();
if (currentSize == 0 || currentSize < maxSize) {
startTask(task);
@@ -126,6 +126,6 @@ public class DTaskQueue extends AbsTaskQueue<DownloadTask, DTaskWrapper> {
}
@Override public int getMaxTaskNum() {
return AriaManager.getInstance().getDownloadConfig().getMaxTaskNum();
return AriaConfig.getInstance().getDConfig().getMaxTaskNum();
}
}

View File

@@ -16,6 +16,7 @@
package com.arialyy.aria.core.queue;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.event.Event;
import com.arialyy.aria.core.event.EventMsgUtil;
@@ -55,11 +56,11 @@ public class UTaskQueue extends AbsTaskQueue<UploadTask, UTaskWrapper> {
}
@Override public int getOldMaxNum() {
return AriaManager.getInstance().getUploadConfig().oldMaxTaskNum;
return AriaConfig.getInstance().getUConfig().oldMaxTaskNum;
}
@Override public int getMaxTaskNum() {
return AriaManager.getInstance().getUploadConfig().getMaxTaskNum();
return AriaConfig.getInstance().getUConfig().getMaxTaskNum();
}
@Override public UploadTask createTask(UTaskWrapper wrapper) {

View File

@@ -15,6 +15,7 @@
*/
package com.arialyy.aria.core.queue.pool;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.task.AbsTask;
@@ -26,6 +27,6 @@ class DGLoadExecutePool<TASK extends AbsTask> extends DLoadExecutePool<TASK> {
private final String TAG = "DGLoadExecutePool";
@Override protected int getMaxSize() {
return AriaManager.getInstance().getDGroupConfig().getMaxTaskNum();
return AriaConfig.getInstance().getDGConfig().getMaxTaskNum();
}
}

View File

@@ -15,7 +15,7 @@
*/
package com.arialyy.aria.core.queue.pool;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.task.AbsTask;
import com.arialyy.aria.util.ALog;
import com.arialyy.aria.util.CommonUtil;
@@ -30,7 +30,7 @@ class DLoadExecutePool<TASK extends AbsTask> extends BaseExecutePool<TASK> {
private final String TAG = "DownloadExecutePool";
@Override protected int getMaxSize() {
return AriaManager.getInstance().getDownloadConfig().getMaxTaskNum();
return AriaConfig.getInstance().getDConfig().getMaxTaskNum();
}
@Override public boolean putTask(TASK task) {

View File

@@ -15,7 +15,7 @@
*/
package com.arialyy.aria.core.queue.pool;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.task.AbsTask;
/**
@@ -23,6 +23,6 @@ import com.arialyy.aria.core.task.AbsTask;
*/
public class UploadExecutePool<TASK extends AbsTask> extends BaseExecutePool<TASK> {
@Override protected int getMaxSize() {
return AriaManager.getInstance().getUploadConfig().getMaxTaskNum();
return AriaConfig.getInstance().getUConfig().getMaxTaskNum();
}
}

View File

@@ -15,11 +15,11 @@
*/
package com.arialyy.aria.core.scheduler;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.common.AbsEntity;
import com.arialyy.aria.core.task.ITask;
import com.arialyy.aria.core.manager.TaskWrapperManager;
import com.arialyy.aria.core.queue.ITaskQueue;
import com.arialyy.aria.core.task.ITask;
import com.arialyy.aria.util.ALog;
import com.arialyy.aria.util.CommonUtil;
import java.util.ArrayList;
@@ -42,7 +42,6 @@ class FailureTaskHandler<TASK extends ITask> {
private TaskSchedulers mSchedulers;
private final ReentrantLock LOCK = new ReentrantLock();
private Condition mCondition = LOCK.newCondition();
private AriaManager mAriaManager;
static FailureTaskHandler init(TaskSchedulers schedulers) {
if (INSTANCE == null) {
@@ -57,7 +56,6 @@ class FailureTaskHandler<TASK extends ITask> {
private FailureTaskHandler(TaskSchedulers schedulers) {
mSchedulers = schedulers;
mAriaManager = AriaManager.getInstance();
new Thread(new Runnable() {
@Override public void run() {
while (true) {
@@ -82,35 +80,46 @@ class FailureTaskHandler<TASK extends ITask> {
}
private void retryTask(final TASK task) {
long interval = task.getTaskWrapper().getConfig().getReTryInterval();
final int num = task.getTaskWrapper().getConfig().getReTryNum();
final ITaskQueue queue = mSchedulers.getQueue(task.getTaskType());
mAriaManager.getAriaHandler().postDelayed(new Runnable() {
@Override public void run() {
AbsEntity entity = task.getTaskWrapper().getEntity();
if (entity.getFailNum() <= num) {
ALog.d(TAG, String.format("任务【%s】开始重试", task.getTaskName()));
queue.reTryStart(task);
} else {
queue.removeTaskFormQueue(task.getKey());
mSchedulers.startNextTask(queue, task.getSchedulerType());
TaskWrapperManager.getInstance().removeTaskWrapper(task.getTaskWrapper());
}
mExeQueue.remove(task);
int index = mHashList.indexOf(task.hashCode());
if (index != -1) {
mHashList.remove(index);
}
if (LOCK.isLocked()) {
try {
LOCK.lock();
mCondition.signalAll();
} finally {
LOCK.unlock();
if (task.isNeedRetry()){
long interval = task.getTaskWrapper().getConfig().getReTryInterval();
final int num = task.getTaskWrapper().getConfig().getReTryNum();
AriaConfig.getInstance().getAriaHandler().postDelayed(new Runnable() {
@Override public void run() {
AbsEntity entity = task.getTaskWrapper().getEntity();
if (entity.getFailNum() <= num) {
ALog.d(TAG, String.format("任务【%s】开始重试", task.getTaskName()));
queue.reTryStart(task);
} else {
queue.removeTaskFormQueue(task.getKey());
mSchedulers.startNextTask(queue, task.getSchedulerType());
TaskWrapperManager.getInstance().removeTaskWrapper(task.getTaskWrapper());
}
next(task);
}
}, interval);
}else {
queue.removeTaskFormQueue(task.getKey());
mSchedulers.startNextTask(queue, task.getSchedulerType());
TaskWrapperManager.getInstance().removeTaskWrapper(task.getTaskWrapper());
next(task);
}
}
private void next(TASK task){
mExeQueue.remove(task);
int index = mHashList.indexOf(task.hashCode());
if (index != -1) {
mHashList.remove(index);
}
if (LOCK.isLocked()) {
try {
LOCK.lock();
mCondition.signalAll();
} finally {
LOCK.unlock();
}
}, interval);
}
}
void offer(TASK task) {

View File

@@ -19,7 +19,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import com.arialyy.annotations.TaskEnum;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.common.AbsEntity;
import com.arialyy.aria.core.common.AbsNormalEntity;
import com.arialyy.aria.core.group.GroupSendParams;
@@ -53,10 +53,10 @@ public class TaskSchedulers<TASK extends ITask> implements ISchedulers {
private static FailureTaskHandler mFailureTaskHandler;
private Map<String, Map<TaskEnum, ISchedulerListener>> mObservers = new ConcurrentHashMap<>();
private AriaManager mAriaManager;
private AriaConfig mAriaConfig;
private TaskSchedulers() {
mAriaManager = AriaManager.getInstance();
mAriaConfig = AriaConfig.getInstance();
}
public static TaskSchedulers getInstance() {
@@ -230,11 +230,11 @@ public class TaskSchedulers<TASK extends ITask> implements ISchedulers {
}
}
boolean canSend = mAriaManager.getAppConfig().isUseBroadcast();
boolean canSend = mAriaConfig.getAConfig().isUseBroadcast();
if (canSend) {
Intent intent = new Intent(ISchedulers.ARIA_TASK_INFO_ACTION);
intent.putExtras(data);
mAriaManager.getAPP().sendBroadcast(intent);
mAriaConfig.getAPP().sendBroadcast(intent);
}
return true;
@@ -284,9 +284,9 @@ public class TaskSchedulers<TASK extends ITask> implements ISchedulers {
}
}
boolean canSend = mAriaManager.getAppConfig().isUseBroadcast();
boolean canSend = mAriaConfig.getAConfig().isUseBroadcast();
if (canSend) {
mAriaManager.getAPP().sendBroadcast(
mAriaConfig.getAPP().sendBroadcast(
createData(msg.what, ITask.DOWNLOAD_GROUP_SUB, params.entity));
}
@@ -353,13 +353,13 @@ public class TaskSchedulers<TASK extends ITask> implements ISchedulers {
startNextTask(getQueue(taskType), TaskSchedulerType.TYPE_DEFAULT);
// 发送广播
boolean canSend = mAriaManager.getAppConfig().isUseBroadcast();
boolean canSend = mAriaConfig.getAConfig().isUseBroadcast();
if (canSend) {
Intent intent = new Intent(ISchedulers.ARIA_TASK_INFO_ACTION);
Bundle b = new Bundle();
b.putInt(ISchedulers.TASK_TYPE, taskType);
b.putInt(ISchedulers.TASK_STATE, ISchedulers.FAIL);
mAriaManager.getAPP().sendBroadcast(intent);
mAriaConfig.getAPP().sendBroadcast(intent);
}
// 处理回调
@@ -470,16 +470,16 @@ public class TaskSchedulers<TASK extends ITask> implements ISchedulers {
* 发送普通任务的广播
*/
private void sendNormalBroadcast(int state, TASK task) {
boolean canSend = mAriaManager.getAppConfig().isUseBroadcast();
boolean canSend = mAriaConfig.getAConfig().isUseBroadcast();
if (!canSend) {
return;
}
int type = task.getTaskType();
if (type == ITask.DOWNLOAD || type == ITask.DOWNLOAD_GROUP) {
mAriaManager.getAPP().sendBroadcast(
mAriaConfig.getAPP().sendBroadcast(
createData(state, type, task.getTaskWrapper().getEntity()));
} else if (type == ITask.UPLOAD) {
mAriaManager.getAPP().sendBroadcast(
mAriaConfig.getAPP().sendBroadcast(
createData(state, type, task.getTaskWrapper().getEntity()));
} else {
ALog.w(TAG, "发送广播失败,没有对应的任务");
@@ -519,9 +519,9 @@ public class TaskSchedulers<TASK extends ITask> implements ISchedulers {
}
int num = task.getTaskWrapper().getConfig().getReTryNum();
boolean isNotNetRetry = mAriaManager.getAppConfig().isNotNetRetry();
boolean isNotNetRetry = mAriaConfig.getAConfig().isNotNetRetry();
if ((!NetUtils.isConnected(mAriaManager.getAPP()) && !isNotNetRetry)
if ((!NetUtils.isConnected(mAriaConfig.getAPP()) && !isNotNetRetry)
|| task.getTaskWrapper().getEntity().getFailNum() > num) {
queue.removeTaskFormQueue(task.getKey());
startNextTask(queue, task.getSchedulerType());

View File

@@ -19,6 +19,7 @@ import android.text.TextUtils;
import androidx.annotation.CheckResult;
import androidx.annotation.NonNull;
import com.arialyy.annotations.TaskEnum;
import com.arialyy.aria.core.AriaConfig;
import com.arialyy.aria.core.AriaManager;
import com.arialyy.aria.core.command.CancelAllCmd;
import com.arialyy.aria.core.command.CmdHelper;
@@ -58,7 +59,7 @@ public class UploadReceiver extends AbsReceiver {
*/
@Deprecated
public UploadReceiver setMaxSpeed(int maxSpeed) {
AriaManager.getInstance().getUploadConfig().setMaxSpeed(maxSpeed);
AriaConfig.getInstance().getUConfig().setMaxSpeed(maxSpeed);
return this;
}