任务组测试
This commit is contained in:
@@ -20,10 +20,12 @@ import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Environment;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
import com.arialyy.aria.util.CommonUtil;
|
||||
import com.arialyy.simple.R;
|
||||
import com.arialyy.simple.download.multi_download.FileListEntity;
|
||||
import com.arialyy.simple.base.BaseModule;
|
||||
import com.arialyy.simple.download.multi_download.FileListEntity;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -54,14 +56,14 @@ public class DownloadModule extends BaseModule {
|
||||
* 创建下载地址
|
||||
*/
|
||||
public List<FileListEntity> createMultiTestList() {
|
||||
String[] names = getContext().getResources().getStringArray(R.array.file_nams);
|
||||
String[] downloadUrl = getContext().getResources().getStringArray(R.array.download_url);
|
||||
String[] names = getStringArray(R.array.file_nams);
|
||||
String[] downloadUrl = getStringArray(R.array.download_url);
|
||||
List<FileListEntity> list = new ArrayList<>();
|
||||
int i = 0;
|
||||
for (String name : names) {
|
||||
FileListEntity entity = new FileListEntity();
|
||||
entity.name = name;
|
||||
entity.downloadUrl = downloadUrl[i];
|
||||
entity.key = downloadUrl[i];
|
||||
entity.downloadPath = Environment.getExternalStorageDirectory() + "/Download/" + name;
|
||||
list.add(entity);
|
||||
i++;
|
||||
@@ -69,6 +71,33 @@ public class DownloadModule extends BaseModule {
|
||||
return list;
|
||||
}
|
||||
|
||||
private String[] getStringArray(int array) {
|
||||
return getContext().getResources().getStringArray(array);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建任务组
|
||||
*/
|
||||
public List<FileListEntity> createGroupTestList() {
|
||||
List<FileListEntity> list = new ArrayList<>();
|
||||
list.add(createGroupEntity(R.array.group_urls, R.array.group_names, "任务组_0"));
|
||||
list.add(createGroupEntity(R.array.group_urls_1, R.array.group_names_1, "任务组_1"));
|
||||
list.add(createGroupEntity(R.array.group_urls_2, R.array.group_names_2, "任务组_2"));
|
||||
list.add(createGroupEntity(R.array.group_urls_3, R.array.group_names_3, "任务组_3"));
|
||||
return list;
|
||||
}
|
||||
|
||||
private FileListEntity createGroupEntity(int urls, int names, String alias) {
|
||||
FileListEntity entity = new FileListEntity();
|
||||
entity.urls = getStringArray(urls);
|
||||
entity.names = getStringArray(names);
|
||||
entity.isGroup = true;
|
||||
entity.name = alias;
|
||||
entity.key = CommonUtil.getMd5Code(Arrays.asList(entity.urls));
|
||||
entity.downloadPath = Environment.getExternalStorageDirectory() + "/Download/" + alias;
|
||||
return entity;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建下载实体,Aria也可以通过下载实体启动下载
|
||||
*/
|
||||
@@ -80,5 +109,4 @@ public class DownloadModule extends BaseModule {
|
||||
entity.setDownloadPath(path);
|
||||
return entity;
|
||||
}
|
||||
|
||||
}
|
@@ -30,10 +30,13 @@ import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadTarget;
|
||||
import com.arialyy.aria.core.download.DownloadTask;
|
||||
import com.arialyy.aria.core.inf.IEntity;
|
||||
import com.arialyy.aria.util.CommonUtil;
|
||||
import com.arialyy.frame.util.show.L;
|
||||
import com.arialyy.frame.util.show.T;
|
||||
import com.arialyy.simple.R;
|
||||
import com.arialyy.simple.base.BaseActivity;
|
||||
import com.arialyy.simple.databinding.ActivitySingleBinding;
|
||||
import java.io.File;
|
||||
|
||||
public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
|
||||
@@ -157,6 +160,7 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
mCancel.setEnabled(false);
|
||||
setBtState(true);
|
||||
getBinding().setSpeed("");
|
||||
L.d(TAG, "md5Code ==> " + CommonUtil.getFileMD5(new File(task.getDownloadPath())));
|
||||
}
|
||||
|
||||
@Download.onNoSupportBreakPoint(DOWNLOAD_URL)
|
||||
|
@@ -26,6 +26,7 @@ import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.simple.R;
|
||||
import com.arialyy.simple.base.adapter.AbsHolder;
|
||||
import com.arialyy.simple.base.adapter.AbsRVAdapter;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -43,8 +44,8 @@ final class FileListAdapter extends AbsRVAdapter<FileListEntity, FileListAdapter
|
||||
public FileListAdapter(Context context, List<FileListEntity> data) {
|
||||
super(context, data);
|
||||
for (int i = 0, len = data.size(); i < len; i++) {
|
||||
mBtStates.put(data.get(i).downloadUrl, true);
|
||||
mPositions.put(data.get(i).downloadUrl, i);
|
||||
mBtStates.put(data.get(i).key, true);
|
||||
mPositions.put(data.get(i).key, i);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,17 +60,27 @@ final class FileListAdapter extends AbsRVAdapter<FileListEntity, FileListAdapter
|
||||
@Override
|
||||
protected void bindData(FileListHolder holder, int position, final FileListEntity item) {
|
||||
holder.name.setText("文件名:" + item.name);
|
||||
holder.url.setText("下载地址:" + item.downloadUrl);
|
||||
holder.url.setText("下载地址:" + item.key);
|
||||
holder.url.setVisibility(item.isGroup ? View.GONE : View.VISIBLE);
|
||||
holder.path.setText("保存路径:" + item.downloadPath);
|
||||
if (mBtStates.get(item.downloadUrl)) {
|
||||
if (mBtStates.get(item.key)) {
|
||||
holder.bt.setEnabled(true);
|
||||
holder.bt.setOnClickListener(new View.OnClickListener() {
|
||||
@Override public void onClick(View v) {
|
||||
Toast.makeText(getContext(), "开始下载:" + item.name, Toast.LENGTH_SHORT).show();
|
||||
Aria.download(getContext())
|
||||
.load(item.downloadUrl)
|
||||
.setDownloadPath(item.downloadPath)
|
||||
.start();
|
||||
if (item.isGroup) {
|
||||
Aria.download(getContext())
|
||||
.load(Arrays.asList(item.urls))
|
||||
.setSubFileName(Arrays.asList(item.names))
|
||||
.setDownloadDirPath(item.downloadPath)
|
||||
.setGroupAlias(item.name)
|
||||
.start();
|
||||
} else {
|
||||
Aria.download(getContext())
|
||||
.load(item.key)
|
||||
.setDownloadPath(item.downloadPath)
|
||||
.start();
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
|
@@ -21,5 +21,8 @@ package com.arialyy.simple.download.multi_download;
|
||||
*/
|
||||
|
||||
public class FileListEntity {
|
||||
public String name, downloadUrl, downloadPath;
|
||||
public String name, key, downloadPath;
|
||||
public boolean isGroup = false;
|
||||
|
||||
public String[] urls, names;
|
||||
}
|
||||
|
@@ -24,14 +24,14 @@ import android.support.v7.widget.Toolbar;
|
||||
import android.view.View;
|
||||
import butterknife.Bind;
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.annotations.DownloadGroup;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadGroupTask;
|
||||
import com.arialyy.aria.core.download.DownloadTask;
|
||||
import com.arialyy.frame.util.show.T;
|
||||
import com.arialyy.simple.R;
|
||||
import com.arialyy.simple.base.BaseActivity;
|
||||
import com.arialyy.simple.databinding.ActivityMultiBinding;
|
||||
import com.arialyy.simple.download.DownloadModule;
|
||||
import com.arialyy.simple.download.SingleTaskActivity;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -52,6 +52,7 @@ public class MultiTaskActivity extends BaseActivity<ActivityMultiBinding> {
|
||||
super.init(savedInstanceState);
|
||||
Aria.download(this).register();
|
||||
setTitle("多任务下载");
|
||||
mData.addAll(getModule(DownloadModule.class).createGroupTestList());
|
||||
mData.addAll(getModule(DownloadModule.class).createMultiTestList());
|
||||
mAdapter = new FileListAdapter(this, mData);
|
||||
mList.setLayoutManager(new LinearLayoutManager(this));
|
||||
@@ -93,7 +94,32 @@ public class MultiTaskActivity extends BaseActivity<ActivityMultiBinding> {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@Download.onTaskComplete void taskComplete(DownloadTask task) {
|
||||
//############################### 任务组 ##############################
|
||||
@DownloadGroup.onTaskComplete void groupTaskComplete(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskStart void groupTaskStart(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), false);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskResume void groupTaskResume(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), false);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskStop void groupTaskStop(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskCancel void groupTaskCancel(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskFail void groupTaskFail(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskComplete void taskComplete(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user