修复4.4.4系统在多个dex的情况下,无法进行回调的问题;修复组合任务子任务索引问题
This commit is contained in:
@@ -15,26 +15,47 @@
|
|||||||
*/
|
*/
|
||||||
package com.arialyy.aria.core.common;
|
package com.arialyy.aria.core.common;
|
||||||
|
|
||||||
|
import android.os.Build;
|
||||||
import com.arialyy.aria.core.AriaManager;
|
import com.arialyy.aria.core.AriaManager;
|
||||||
import com.arialyy.aria.util.CommonUtil;
|
import com.arialyy.aria.util.CommonUtil;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Aria.Lao on 2017/7/10.
|
* Created by Aria.Lao on 2017/7/10.
|
||||||
* 代理参数获取
|
* 代理参数获取
|
||||||
*/
|
*/
|
||||||
public class ProxyHelper {
|
public class ProxyHelper {
|
||||||
|
/**
|
||||||
|
* 普通下载任务类型
|
||||||
|
*/
|
||||||
|
public static int PROXY_TYPE_DOWNLOAD = 0x01;
|
||||||
|
/**
|
||||||
|
* 组合下载任务类型
|
||||||
|
*/
|
||||||
|
public static int PROXY_TYPE_DOWNLOAD_GROUP = 0x02;
|
||||||
|
///**
|
||||||
|
// * 组合任务子任务类型
|
||||||
|
// */
|
||||||
|
//public static int PROXY_TYPE_DOWNLOAD_GROUP_SUB = 0x03;
|
||||||
|
/**
|
||||||
|
* 普通上传任务类型
|
||||||
|
*/
|
||||||
|
public static int PROXY_TYPE_UPLOAD = 0x04;
|
||||||
public Set<String> downloadCounter = new HashSet<>(), uploadCounter = new HashSet<>(),
|
public Set<String> downloadCounter = new HashSet<>(), uploadCounter = new HashSet<>(),
|
||||||
downloadGroupCounter = new HashSet<>(), downloadGroupSubCounter = new HashSet<>();
|
downloadGroupCounter = new HashSet<>(), downloadGroupSubCounter = new HashSet<>();
|
||||||
|
private Map<String, Set<Integer>> mProxyCache = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public static volatile ProxyHelper INSTANCE = null;
|
public static volatile ProxyHelper INSTANCE = null;
|
||||||
|
private boolean canLoadClass = false;
|
||||||
|
|
||||||
private ProxyHelper() {
|
private ProxyHelper() {
|
||||||
init();
|
//init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ProxyHelper getInstance() {
|
public static ProxyHelper getInstance() {
|
||||||
@@ -46,14 +67,63 @@ public class ProxyHelper {
|
|||||||
return INSTANCE;
|
return INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 3.4.6 版本开始,已经在ElementHandler中关闭了ProxyClassCounter对象的生成
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
private void init() {
|
private void init() {
|
||||||
List<String> classes = CommonUtil.getPkgClassNames(AriaManager.APP,
|
List<String> classes = CommonUtil.getPkgClassNames(AriaManager.APP,
|
||||||
"com.arialyy.aria.ProxyClassCounter");
|
"com.arialyy.aria.ProxyClassCounter");
|
||||||
for (String className : classes) {
|
canLoadClass = classes != null
|
||||||
count(className);
|
&& !classes.isEmpty()
|
||||||
|
&& Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
|
||||||
|
if (canLoadClass) {
|
||||||
|
for (String className : classes) {
|
||||||
|
count(className);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否能读取到代理计数文件
|
||||||
|
*
|
||||||
|
* @return {@code true} 可以读取,{@code false} 不能读取
|
||||||
|
*/
|
||||||
|
public boolean isCanLoadCountClass() {
|
||||||
|
return canLoadClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查观察者对象的代理文件类型
|
||||||
|
*
|
||||||
|
* @param clazz 观察者对象
|
||||||
|
* @return {@link #PROXY_TYPE_DOWNLOAD},如果没有实体对象则返回空的list
|
||||||
|
*/
|
||||||
|
public Set<Integer> checkProxyType(Class clazz) {
|
||||||
|
final String className = clazz.getName();
|
||||||
|
Set<Integer> result = mProxyCache.get(clazz.getName());
|
||||||
|
if (result != null) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
result = new HashSet<>();
|
||||||
|
try {
|
||||||
|
if (Class.forName(className.concat("$$DownloadGroupListenerProxy")) != null) {
|
||||||
|
result.add(PROXY_TYPE_DOWNLOAD_GROUP);
|
||||||
|
} else if (Class.forName(className.concat("$$DownloadListenerProxy")) != null) {
|
||||||
|
result.add(PROXY_TYPE_DOWNLOAD);
|
||||||
|
} else if (Class.forName(className.concat("$$UploadListenerProxy")) != null) {
|
||||||
|
result.add(PROXY_TYPE_UPLOAD);
|
||||||
|
}
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
//e.printStackTrace();
|
||||||
|
}
|
||||||
|
if (!result.isEmpty()) {
|
||||||
|
mProxyCache.put(clazz.getName(), result);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
private void count(String className) {
|
private void count(String className) {
|
||||||
try {
|
try {
|
||||||
Class clazz = Class.forName(className);
|
Class clazz = Class.forName(className);
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ public class StateConstance {
|
|||||||
* 所有子线程是否都已经停止
|
* 所有子线程是否都已经停止
|
||||||
*/
|
*/
|
||||||
public boolean isStop() {
|
public boolean isStop() {
|
||||||
ALog.d(TAG, String.format("stop_num=%s; start_thread_num=%s; complete_num=%s", STOP_NUM,
|
//ALog.d(TAG, String.format("stop_num=%s; start_thread_num=%s; complete_num=%s", STOP_NUM,
|
||||||
START_THREAD_NUM, COMPLETE_THREAD_NUM));
|
// START_THREAD_NUM, COMPLETE_THREAD_NUM));
|
||||||
return STOP_NUM == START_THREAD_NUM || STOP_NUM + COMPLETE_THREAD_NUM == START_THREAD_NUM;
|
return STOP_NUM == START_THREAD_NUM || STOP_NUM + COMPLETE_THREAD_NUM == START_THREAD_NUM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.arialyy.aria.core.download;
|
|||||||
import android.support.annotation.CheckResult;
|
import android.support.annotation.CheckResult;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
import com.arialyy.aria.core.common.RequestEnum;
|
import com.arialyy.aria.core.common.RequestEnum;
|
||||||
import com.arialyy.aria.core.delegate.HttpHeaderDelegate;
|
import com.arialyy.aria.core.delegate.HttpHeaderDelegate;
|
||||||
import com.arialyy.aria.core.inf.IHttpHeaderTarget;
|
import com.arialyy.aria.core.inf.IHttpHeaderTarget;
|
||||||
@@ -66,8 +67,8 @@ public class DownloadGroupTarget extends BaseGroupTarget<DownloadGroupTarget> im
|
|||||||
private void init() {
|
private void init() {
|
||||||
mGroupName = CommonUtil.getMd5Code(mUrls);
|
mGroupName = CommonUtil.getMd5Code(mUrls);
|
||||||
mTaskEntity = TEManager.getInstance().getGTEntity(DownloadGroupTaskEntity.class, mUrls);
|
mTaskEntity = TEManager.getInstance().getGTEntity(DownloadGroupTaskEntity.class, mUrls);
|
||||||
|
//ALog.d(TAG, "gHash=" + mEntity.getSubEntities().get(0).hashCode() + "; subHash="+mEntity.getT)
|
||||||
mEntity = mTaskEntity.getEntity();
|
mEntity = mTaskEntity.getEntity();
|
||||||
|
|
||||||
if (mEntity != null) {
|
if (mEntity != null) {
|
||||||
mDirPathTemp = mEntity.getDirPath();
|
mDirPathTemp = mEntity.getDirPath();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ public class DownloadGroupTask extends AbsGroupTask<DownloadGroupTaskEntity> {
|
|||||||
mUtil = new FtpDirDownloadUtil(mListener, mTaskEntity);
|
mUtil = new FtpDirDownloadUtil(mListener, mTaskEntity);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Log.d(TAG, "FTP_TASK_MD5:" + mTaskEntity.hashCode());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean isRunning() {
|
@Override public boolean isRunning() {
|
||||||
|
|||||||
@@ -160,15 +160,17 @@ public class DownloadReceiver extends AbsReceiver {
|
|||||||
ALog.e(TAG, String.format("【%s】观察者为空", targetName));
|
ALog.e(TAG, String.format("【%s】观察者为空", targetName));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Set<String> dCounter = ProxyHelper.getInstance().downloadCounter;
|
Set<Integer> set = ProxyHelper.getInstance().checkProxyType(obj.getClass());
|
||||||
Set<String> dgCounter = ProxyHelper.getInstance().downloadGroupCounter;
|
if (set != null && !set.isEmpty()) {
|
||||||
Set<String> dgsCounter = ProxyHelper.getInstance().downloadGroupSubCounter;
|
for (Integer type : set) {
|
||||||
if (dCounter != null && dCounter.contains(targetName)) {
|
if (type == ProxyHelper.PROXY_TYPE_DOWNLOAD) {
|
||||||
DownloadSchedulers.getInstance().register(obj);
|
DownloadSchedulers.getInstance().register(obj);
|
||||||
}
|
} else if (type == ProxyHelper.PROXY_TYPE_DOWNLOAD_GROUP) {
|
||||||
if ((dgCounter != null && dgCounter.contains(targetName)) || (dgsCounter != null
|
DownloadGroupSchedulers.getInstance().register(obj);
|
||||||
&& dgsCounter.contains(targetName))) {
|
}
|
||||||
DownloadGroupSchedulers.getInstance().register(obj);
|
}
|
||||||
|
} else {
|
||||||
|
ALog.i(TAG, "没有Aria的注解方法");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,15 +59,11 @@ class DGTEFactory implements IGTEFactory<DownloadGroupEntity, DownloadGroupTaskE
|
|||||||
if (gte == null) {
|
if (gte == null) {
|
||||||
// 创建新的任务组任务实体
|
// 创建新的任务组任务实体
|
||||||
gte = new DownloadGroupTaskEntity();
|
gte = new DownloadGroupTaskEntity();
|
||||||
//创建子任务的任务实体
|
|
||||||
gte.setSubTaskEntities(createDGSubTaskEntity(entity));
|
|
||||||
} else if (gte.getSubTaskEntities() == null || gte.getSubTaskEntities().isEmpty()) {
|
|
||||||
gte.setSubTaskEntities(createDGSubTaskEntity(entity));
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gte = new DownloadGroupTaskEntity();
|
gte = new DownloadGroupTaskEntity();
|
||||||
gte.setSubTaskEntities(createDGSubTaskEntity(entity));
|
|
||||||
}
|
}
|
||||||
|
gte.setSubTaskEntities(createDGSubTaskEntity(entity));
|
||||||
gte.setKey(entity.getGroupName());
|
gte.setKey(entity.getGroupName());
|
||||||
gte.setEntity(entity);
|
gte.setEntity(entity);
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import android.support.annotation.NonNull;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import com.arialyy.aria.core.AriaManager;
|
import com.arialyy.aria.core.AriaManager;
|
||||||
import com.arialyy.aria.core.command.ICmd;
|
import com.arialyy.aria.core.command.ICmd;
|
||||||
|
import com.arialyy.aria.core.command.normal.CancelAllCmd;
|
||||||
import com.arialyy.aria.core.command.normal.NormalCmdFactory;
|
import com.arialyy.aria.core.command.normal.NormalCmdFactory;
|
||||||
import com.arialyy.aria.core.common.ProxyHelper;
|
import com.arialyy.aria.core.common.ProxyHelper;
|
||||||
import com.arialyy.aria.core.inf.AbsReceiver;
|
import com.arialyy.aria.core.inf.AbsReceiver;
|
||||||
@@ -125,10 +126,11 @@ public class UploadReceiver extends AbsReceiver {
|
|||||||
*/
|
*/
|
||||||
public void removeAllTask(boolean removeFile) {
|
public void removeAllTask(boolean removeFile) {
|
||||||
final AriaManager am = AriaManager.getInstance(AriaManager.APP);
|
final AriaManager am = AriaManager.getInstance(AriaManager.APP);
|
||||||
|
CancelAllCmd cancelCmd =
|
||||||
am.setCmd(CommonUtil.createNormalCmd(targetName, new UploadTaskEntity(),
|
(CancelAllCmd) CommonUtil.createNormalCmd(targetName, new UploadTaskEntity(),
|
||||||
NormalCmdFactory.TASK_CANCEL_ALL, ICmd.TASK_TYPE_UPLOAD)).exe();
|
NormalCmdFactory.TASK_CANCEL_ALL, ICmd.TASK_TYPE_UPLOAD);
|
||||||
|
cancelCmd.removeFile = removeFile;
|
||||||
|
am.setCmd(cancelCmd).exe();
|
||||||
Set<String> keys = am.getReceiver().keySet();
|
Set<String> keys = am.getReceiver().keySet();
|
||||||
for (String key : keys) {
|
for (String key : keys) {
|
||||||
am.getReceiver().remove(key);
|
am.getReceiver().remove(key);
|
||||||
@@ -148,9 +150,15 @@ public class UploadReceiver extends AbsReceiver {
|
|||||||
ALog.e(TAG, String.format("【%s】观察者为空", targetName));
|
ALog.e(TAG, String.format("【%s】观察者为空", targetName));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Set<String> cCounter = ProxyHelper.getInstance().uploadCounter;
|
Set<Integer> set = ProxyHelper.getInstance().checkProxyType(obj.getClass());
|
||||||
if (cCounter != null && cCounter.contains(targetName)) {
|
if (set != null && !set.isEmpty()) {
|
||||||
UploadSchedulers.getInstance().register(obj);
|
for (Integer type : set) {
|
||||||
|
if (type == ProxyHelper.PROXY_TYPE_UPLOAD) {
|
||||||
|
UploadSchedulers.getInstance().register(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ALog.i(TAG, "没有Aria的注解方法");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import javax.lang.model.element.Modifier;
|
|||||||
* Created by lyy on 2017/9/6.
|
* Created by lyy on 2017/9/6.
|
||||||
* 各类注解统计技术类
|
* 各类注解统计技术类
|
||||||
*/
|
*/
|
||||||
final class CountFiler {
|
@Deprecated final class CountFiler {
|
||||||
private Filer mFiler;
|
private Filer mFiler;
|
||||||
private ParamObtainUtil mPbUtil;
|
private ParamObtainUtil mPbUtil;
|
||||||
|
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ class ElementHandler {
|
|||||||
void createProxyFile() {
|
void createProxyFile() {
|
||||||
try {
|
try {
|
||||||
new EventProxyFiler(mFiler, mPbUtil).createEventProxyFile();
|
new EventProxyFiler(mFiler, mPbUtil).createEventProxyFile();
|
||||||
new CountFiler(mFiler, mPbUtil).createCountFile();
|
//new CountFiler(mFiler, mPbUtil).createCountFile();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
## 开发日志
|
## 开发日志
|
||||||
|
+ v_3.4.6
|
||||||
|
- 修复android 4.4.4 版本多dex下无法进行回调的问题
|
||||||
|
- 优化分块下载
|
||||||
|
- 修复了字符串中有特殊字符导致的路径冲突问题;修复ftp分块下载失败问题
|
||||||
|
- 修复连接中有`+`导致的地址呗使用问题。
|
||||||
|
- 修复表重复创建导致的崩溃问题 https://github.com/AriaLyy/Aria/issues/264
|
||||||
+ v_3.4.4
|
+ v_3.4.4
|
||||||
- 实现[多线程分块下载](https://aria.laoyuyu.me/aria_doc/start/config.html)
|
- 实现[多线程分块下载](https://aria.laoyuyu.me/aria_doc/start/config.html)
|
||||||
- 修复`stopAll()`和`resumeAll()`导致的进度为0问题
|
- 修复`stopAll()`和`resumeAll()`导致的进度为0问题
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import android.view.View;
|
|||||||
import butterknife.Bind;
|
import butterknife.Bind;
|
||||||
import com.arialyy.annotations.DownloadGroup;
|
import com.arialyy.annotations.DownloadGroup;
|
||||||
import com.arialyy.aria.core.Aria;
|
import com.arialyy.aria.core.Aria;
|
||||||
|
import com.arialyy.aria.core.download.DownloadEntity;
|
||||||
import com.arialyy.aria.core.download.DownloadGroupEntity;
|
import com.arialyy.aria.core.download.DownloadGroupEntity;
|
||||||
import com.arialyy.aria.core.download.DownloadGroupTask;
|
import com.arialyy.aria.core.download.DownloadGroupTask;
|
||||||
import com.arialyy.aria.core.download.DownloadGroupTaskEntity;
|
import com.arialyy.aria.core.download.DownloadGroupTaskEntity;
|
||||||
@@ -133,14 +134,15 @@ public class DownloadGroupActivity extends BaseActivity<ActivityDownloadGroupBin
|
|||||||
}
|
}
|
||||||
|
|
||||||
@DownloadGroup.onTaskRunning() protected void running(DownloadGroupTask task) {
|
@DownloadGroup.onTaskRunning() protected void running(DownloadGroupTask task) {
|
||||||
Log.d(TAG, "group running, p = "
|
//Log.d(TAG, "group running, p = "
|
||||||
+ task.getPercent()
|
// + task.getPercent()
|
||||||
+ ", speed = "
|
// + ", speed = "
|
||||||
+ task.getConvertSpeed()
|
// + task.getConvertSpeed()
|
||||||
+ "current_p = "
|
// + "current_p = "
|
||||||
+ task.getCurrentProgress());
|
// + task.getCurrentProgress());
|
||||||
getBinding().setProgress(task.getPercent());
|
getBinding().setProgress(task.getPercent());
|
||||||
getBinding().setSpeed(task.getConvertSpeed());
|
getBinding().setSpeed(task.getConvertSpeed());
|
||||||
|
//Log.d(TAG, "sub_len = " + task.getEntity().getSubEntities().size());
|
||||||
mChildList.updateChildProgress(task.getEntity().getSubEntities());
|
mChildList.updateChildProgress(task.getEntity().getSubEntities());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,4 +172,54 @@ public class DownloadGroupActivity extends BaseActivity<ActivityDownloadGroupBin
|
|||||||
T.showShort(this, "任务组下载完成");
|
T.showShort(this, "任务组下载完成");
|
||||||
L.d(TAG, "任务组下载完成");
|
L.d(TAG, "任务组下载完成");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DownloadGroup.onSubTaskRunning void onSubTaskRunning(DownloadGroupTask groupTask,
|
||||||
|
DownloadEntity subEntity) {
|
||||||
|
//ALog.d(TAG, "sub_percent = " + subEntity.getPercent());
|
||||||
|
Log.e(TAG, "gHash = "
|
||||||
|
+ groupTask.getEntity().getSubEntities().get(0).hashCode()
|
||||||
|
+ "; subHash = "
|
||||||
|
+ groupTask.getTaskEntity().getSubTaskEntities().get(0).getEntity().hashCode() +
|
||||||
|
"; subHash = " + subEntity.hashCode());
|
||||||
|
int percent = subEntity.getPercent();
|
||||||
|
//如果你打开了速度单位转换配置,将可以通过以下方法获取带单位的下载速度,如:1 mb/s
|
||||||
|
String convertSpeed = subEntity.getConvertSpeed();
|
||||||
|
//当前下载完成的进度,长度bytes
|
||||||
|
long completedSize = subEntity.getCurrentProgress();
|
||||||
|
Log.d(TAG, "subTask名字:"
|
||||||
|
+ subEntity.getFileName()
|
||||||
|
+ ", "
|
||||||
|
+ " speed:"
|
||||||
|
+ convertSpeed
|
||||||
|
+ ",percent: "
|
||||||
|
+ percent
|
||||||
|
+ "%, completedSize:"
|
||||||
|
+ completedSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DownloadGroup.onSubTaskPre void onSubTaskPre(DownloadGroupTask groupTask,
|
||||||
|
DownloadEntity subEntity) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@DownloadGroup.onSubTaskStop void onSubTaskStop(DownloadGroupTask groupTask,
|
||||||
|
DownloadEntity subEntity) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@DownloadGroup.onSubTaskStart void onSubTaskStart(DownloadGroupTask groupTask,
|
||||||
|
DownloadEntity subEntity) {
|
||||||
|
}
|
||||||
|
|
||||||
|
//@DownloadGroup.onSubTaskCancel void onSubTaskCancel(DownloadGroupTask groupTask,
|
||||||
|
// DownloadEntity subEntity) {
|
||||||
|
// Log.d(TAG, "new Size: " + groupTask.getConvertFileSize());
|
||||||
|
// mSub.setText("子任务:" + mChildName + ",状态:取消下载");
|
||||||
|
//}
|
||||||
|
|
||||||
|
@DownloadGroup.onSubTaskComplete void onSubTaskComplete(DownloadGroupTask groupTask,
|
||||||
|
DownloadEntity subEntity) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@DownloadGroup.onSubTaskFail void onSubTaskFail(DownloadGroupTask groupTask,
|
||||||
|
DownloadEntity subEntity) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,8 +58,8 @@ public class GroupModule extends BaseModule {
|
|||||||
// taskSubFile.add("2115.mp4");
|
// taskSubFile.add("2115.mp4");
|
||||||
//taskSubFile.add("2009.mp4");
|
//taskSubFile.add("2009.mp4");
|
||||||
//taskSubFile.add("1893.mp4");
|
//taskSubFile.add("1893.mp4");
|
||||||
//taskSubFile.add("1952.mp4");
|
taskSubFile.add("1952.mp4");
|
||||||
//taskSubFile.add("1958.mp4");
|
taskSubFile.add("1958.mp4");
|
||||||
taskSubFile.add("1994.mp4");
|
taskSubFile.add("1994.mp4");
|
||||||
//taskSubFile.add("2083.mp4");
|
//taskSubFile.add("2083.mp4");
|
||||||
taskSubFile.add("2305.JPG");
|
taskSubFile.add("2305.JPG");
|
||||||
@@ -88,10 +88,10 @@ public class GroupModule extends BaseModule {
|
|||||||
// "http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=2009&clientId=A000011106034058176");
|
// "http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=2009&clientId=A000011106034058176");
|
||||||
//downLoadUrls.add(
|
//downLoadUrls.add(
|
||||||
// "http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=1893&clientId=A000011106034058176");
|
// "http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=1893&clientId=A000011106034058176");
|
||||||
//downLoadUrls.add(
|
downLoadUrls.add(
|
||||||
// "http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=1952&clientId=A000011106034058176");
|
"http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=1952&clientId=A000011106034058176");
|
||||||
//downLoadUrls.add(
|
downLoadUrls.add(
|
||||||
// "http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=1958&clientId=A000011106034058176");
|
"http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=1958&clientId=A000011106034058176");
|
||||||
downLoadUrls.add(
|
downLoadUrls.add(
|
||||||
"http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=1994&clientId=A000011106034058176");
|
"http://d.quanscreen.com/k/down/resourceDownLoad?resourceId=1994&clientId=A000011106034058176");
|
||||||
//downLoadUrls.add(
|
//downLoadUrls.add(
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.arialyy.simple.widget;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
import android.util.Log;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -105,6 +106,7 @@ public class SubStateLinearLayout extends LinearLayout implements View.OnClickLi
|
|||||||
if (position != -1) {
|
if (position != -1) {
|
||||||
TextView child = ((TextView) getChildAt(position));
|
TextView child = ((TextView) getChildAt(position));
|
||||||
int p = getPercent(entity);
|
int p = getPercent(entity);
|
||||||
|
Log.d("TAG", "p = " + p);
|
||||||
child.setText(entity.getFileName() + ": " + p + "%" + " | " + entity.getConvertSpeed());
|
child.setText(entity.getFileName() + ": " + p + "%" + " | " + entity.getConvertSpeed());
|
||||||
child.invalidate();
|
child.invalidate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ task clean(type: Delete) {
|
|||||||
ext {
|
ext {
|
||||||
userOrg = 'arialyy'
|
userOrg = 'arialyy'
|
||||||
groupId = 'com.arialyy.aria'
|
groupId = 'com.arialyy.aria'
|
||||||
publishVersion = '3.4.5'
|
publishVersion = '3.4.6_dev2'
|
||||||
// publishVersion = '1.0.3' //FTP插件
|
// publishVersion = '1.0.3' //FTP插件
|
||||||
repoName='maven'
|
repoName='maven'
|
||||||
desc = 'android 下载框架'
|
desc = 'android 下载框架'
|
||||||
|
|||||||
Reference in New Issue
Block a user