fix bug
This commit is contained in:
@@ -41,10 +41,10 @@
|
||||
3、从3.4.1开始,如果线程数为1,文件初始化时将不再预占用对应长度的空间,下载多少byte,则占多大的空间;
|
||||
对于3.4.1之前版本的未完成的老任务,依然采用原来的文件空间占用方式;
|
||||
-->
|
||||
<threadNum value="3"/>
|
||||
<threadNum value="1"/>
|
||||
|
||||
<!--设置下载队列最大任务数, 默认为2-->
|
||||
<maxTaskNum value="1"/>
|
||||
<maxTaskNum value="3"/>
|
||||
|
||||
<!--设置下载失败,重试次数,默认为10-->
|
||||
<reTryNum value="1"/>
|
||||
|
||||
@@ -40,7 +40,7 @@ public class FtpDownload extends BaseActivity<ActivityTestBinding> {
|
||||
}
|
||||
|
||||
@Download.onTaskStart void taskStart(DownloadTask task) {
|
||||
Log.d(TAG, "onStart");
|
||||
Log.d(TAG, "onPreStart");
|
||||
}
|
||||
|
||||
@Download.onTaskRunning protected void running(DownloadTask task) {
|
||||
|
||||
@@ -46,7 +46,7 @@ import java.io.IOException;
|
||||
public class FtpDownloadActivity extends BaseActivity<ActivityFtpDownloadBinding> {
|
||||
private String mUrl, mFilePath;
|
||||
private FtpDownloadModule mModule;
|
||||
private DownloadEntity mEntity;
|
||||
private long mTaskId;
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
@@ -60,10 +60,10 @@ public class FtpDownloadActivity extends BaseActivity<ActivityFtpDownloadBinding
|
||||
if (entity == null) {
|
||||
return;
|
||||
}
|
||||
mEntity = entity;
|
||||
if (mEntity.getState() == IEntity.STATE_STOP) {
|
||||
mTaskId = entity.getId();
|
||||
if (entity.getState() == IEntity.STATE_STOP) {
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
} else if (mEntity.getState() == IEntity.STATE_RUNNING) {
|
||||
} else if (entity.getState() == IEntity.STATE_RUNNING) {
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
}
|
||||
|
||||
@@ -90,29 +90,34 @@ public class FtpDownloadActivity extends BaseActivity<ActivityFtpDownloadBinding
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
|
||||
if (!AppUtil.chekEntityValid(mEntity)) {
|
||||
|
||||
Aria.download(this).loadFtp(mUrl)
|
||||
if (mTaskId == -1) {
|
||||
mTaskId = Aria.download(this).loadFtp(mUrl)
|
||||
.setFilePath(mFilePath, true)
|
||||
.option().login("N0rI", "0qcK")
|
||||
.option()
|
||||
.login("8L8e", "8guD")
|
||||
.controller(ControllerType.START_CONTROLLER)
|
||||
.start();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
break;
|
||||
}
|
||||
if (Aria.download(this).load(mEntity.getId()).isRunning()) {
|
||||
if (Aria.download(this).load(mTaskId).isRunning()) {
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
Aria.download(this).loadFtp(mEntity.getId()).stop();
|
||||
Aria.download(this).loadFtp(mTaskId).stop();
|
||||
} else {
|
||||
Aria.download(this).loadFtp(mEntity.getId()).resume();
|
||||
Aria.download(this)
|
||||
.loadFtp(mTaskId)
|
||||
.option()
|
||||
.login("8L8e", "8guD")
|
||||
.controller(ControllerType.NORMAL_CONTROLLER)
|
||||
.resume();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
}
|
||||
break;
|
||||
|
||||
case R.id.cancel:
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this).loadFtp(mEntity.getId()).cancel();
|
||||
}
|
||||
Aria.download(this).loadFtp(mTaskId).cancel();
|
||||
getBinding().setStateStr(getString(R.string.start));
|
||||
mTaskId = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -162,12 +167,13 @@ public class FtpDownloadActivity extends BaseActivity<ActivityFtpDownloadBinding
|
||||
|
||||
@Download.onTaskFail() void taskFail(DownloadTask task) {
|
||||
L.d(TAG, "ftp task fail");
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
}
|
||||
|
||||
@Download.onTaskComplete() void taskComplete(DownloadTask task) {
|
||||
getBinding().setSpeed("");
|
||||
getBinding().setProgress(100);
|
||||
Log.d(TAG, "md5 ==> " + CommonUtil.getFileMD5(new File(task.getDownloadPath())));
|
||||
Log.d(TAG, "md5 ==> " + CommonUtil.getFileMD5(new File(task.getFilePath())));
|
||||
T.showShort(this, "文件:" + task.getEntity().getFileName() + ",下载完成");
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package com.arialyy.simple.core.download;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.Menu;
|
||||
@@ -149,15 +148,11 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this)
|
||||
.load(DOWNLOAD_URL)
|
||||
.setFilePath(Environment.getExternalStorageDirectory().getPath()
|
||||
+ "/Download/"
|
||||
+ mTaskName
|
||||
+ ".apk")
|
||||
.setHighestPriority();
|
||||
} else {
|
||||
Aria.download(this).load(mEntity.getId()).resume();
|
||||
String text = ((TextView) view).getText().toString();
|
||||
if (text.equals("重新开始?") || text.equals("开始")) {
|
||||
} else {
|
||||
Aria.download(this).load(mEntity.getId()).resume();
|
||||
}
|
||||
}
|
||||
((TextView) view).setText(getString(R.string.stop));
|
||||
break;
|
||||
|
||||
@@ -55,7 +55,7 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
private String mUrl;
|
||||
private String mFilePath;
|
||||
private HttpDownloadModule mModule;
|
||||
private DownloadEntity mEntity;
|
||||
private long mTaskId = -1;
|
||||
|
||||
BroadcastReceiver receiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
@@ -95,11 +95,10 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
if (entity == null) {
|
||||
return;
|
||||
}
|
||||
mEntity = entity;
|
||||
|
||||
if (mEntity.getState() == IEntity.STATE_STOP) {
|
||||
mTaskId = entity.getId();
|
||||
if (entity.getState() == IEntity.STATE_STOP) {
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
} else if (mEntity.getState() == IEntity.STATE_RUNNING) {
|
||||
} else if (entity.getState() == IEntity.STATE_RUNNING) {
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
}
|
||||
|
||||
@@ -231,6 +230,7 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
@Download.onTaskCancel
|
||||
void taskCancel(DownloadTask task) {
|
||||
if (task.getKey().equals(mUrl)) {
|
||||
mTaskId = -1;
|
||||
getBinding().setProgress(0);
|
||||
getBinding().setStateStr(getString(R.string.start));
|
||||
getBinding().setSpeed("");
|
||||
@@ -267,25 +267,24 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
if (!AppUtil.chekEntityValid(mEntity)) {
|
||||
if (mTaskId == -1) {
|
||||
startD();
|
||||
break;
|
||||
}
|
||||
if (Aria.download(this).load(mEntity.getId()).isRunning()) {
|
||||
Aria.download(this).load(mEntity.getId()).stop();
|
||||
if (Aria.download(this).load(mTaskId).isRunning()) {
|
||||
Aria.download(this).load(mTaskId).stop();
|
||||
} else {
|
||||
Aria.download(this).load(mEntity.getId()).resume();
|
||||
Aria.download(this).load(mTaskId).resume();
|
||||
}
|
||||
break;
|
||||
case R.id.cancel:
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this).load(mEntity.getId()).cancel(true);
|
||||
}
|
||||
Aria.download(this).load(mTaskId).cancel(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void startD() {
|
||||
Aria.download(SingleTaskActivity.this)
|
||||
mTaskId = Aria.download(SingleTaskActivity.this)
|
||||
.load(mUrl)
|
||||
.useServerFileName(true)
|
||||
.setFilePath(mFilePath, true)
|
||||
|
||||
@@ -32,7 +32,6 @@ import com.arialyy.frame.util.show.T;
|
||||
import com.arialyy.simple.R;
|
||||
import com.arialyy.simple.base.BaseActivity;
|
||||
import com.arialyy.simple.databinding.ActivityDownloadGroupBinding;
|
||||
import com.arialyy.simple.util.AppUtil;
|
||||
import com.arialyy.simple.widget.SubStateLinearLayout;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -44,7 +43,7 @@ public class DownloadGroupActivity extends BaseActivity<ActivityDownloadGroupBin
|
||||
|
||||
private SubStateLinearLayout mChildList;
|
||||
private List<String> mUrls;
|
||||
private DownloadGroupEntity mEntity;
|
||||
private long mTaskId = -1;
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
@@ -53,21 +52,22 @@ public class DownloadGroupActivity extends BaseActivity<ActivityDownloadGroupBin
|
||||
|
||||
mChildList = getBinding().childList;
|
||||
mUrls = getModule(GroupModule.class).getUrls();
|
||||
mEntity = Aria.download(this).getGroupEntity(mUrls);
|
||||
if (mEntity != null) {
|
||||
mChildList.addData(mEntity.getSubEntities());
|
||||
DownloadGroupEntity entity = Aria.download(this).getGroupEntity(mUrls);
|
||||
if (entity != null) {
|
||||
mTaskId = entity.getId();
|
||||
mChildList.addData(entity.getSubEntities());
|
||||
getBinding().setStateStr(
|
||||
mEntity.getState() == IEntity.STATE_RUNNING ? getString(R.string.stop)
|
||||
entity.getState() == IEntity.STATE_RUNNING ? getString(R.string.stop)
|
||||
: getString(R.string.resume));
|
||||
getBinding().setFileSize(mEntity.getConvertFileSize());
|
||||
if (mEntity.getFileSize() == 0) {
|
||||
getBinding().setFileSize(entity.getConvertFileSize());
|
||||
if (entity.getFileSize() == 0) {
|
||||
getBinding().setProgress(0);
|
||||
} else {
|
||||
getBinding().setProgress(mEntity.isComplete() ? 100
|
||||
: (int) (mEntity.getCurrentProgress() * 100 / mEntity.getFileSize()));
|
||||
getBinding().setProgress(entity.isComplete() ? 100
|
||||
: (int) (entity.getCurrentProgress() * 100 / entity.getFileSize()));
|
||||
}
|
||||
ALog.d(TAG,
|
||||
"size = " + mEntity.getSubEntities().size() + "; len = " + mEntity.getConvertFileSize());
|
||||
"size = " + entity.getSubEntities().size() + "; len = " + entity.getConvertFileSize());
|
||||
}
|
||||
|
||||
mChildList.setOnItemClickListener(new SubStateLinearLayout.OnItemClickListener() {
|
||||
@@ -90,8 +90,8 @@ public class DownloadGroupActivity extends BaseActivity<ActivityDownloadGroupBin
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
if (!AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this)
|
||||
if (mTaskId == -1) {
|
||||
mTaskId = Aria.download(this)
|
||||
.loadGroup(mUrls)
|
||||
.setDirPath(
|
||||
Environment.getExternalStorageDirectory().getPath() + "/Download/group_test_2")
|
||||
@@ -117,17 +117,17 @@ public class DownloadGroupActivity extends BaseActivity<ActivityDownloadGroupBin
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
break;
|
||||
}
|
||||
if (Aria.download(this).loadGroup(mEntity.getId()).isRunning()) {
|
||||
Aria.download(this).loadGroup(mEntity.getId()).stop();
|
||||
if (Aria.download(this).loadGroup(mTaskId).isRunning()) {
|
||||
Aria.download(this).loadGroup(mTaskId).stop();
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
} else {
|
||||
Aria.download(this).loadGroup(mEntity.getId()).resume();
|
||||
Aria.download(this).loadGroup(mTaskId).resume();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
}
|
||||
break;
|
||||
case R.id.cancel:
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
|
||||
Aria.download(this).loadGroup(mEntity.getId()).cancel(true);
|
||||
}
|
||||
Aria.download(this).loadGroup(mTaskId).cancel(true);
|
||||
mTaskId = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -141,9 +141,6 @@ public class DownloadGroupActivity extends BaseActivity<ActivityDownloadGroupBin
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskPre() protected void onTaskPre(DownloadGroupTask task) {
|
||||
if (mChildList.getSubData().size() <= 0) {
|
||||
mChildList.addData(task.getEntity().getSubEntities());
|
||||
}
|
||||
L.d(TAG, "group task pre");
|
||||
getBinding().setFileSize(task.getConvertFileSize());
|
||||
if (mChildList.getSubData().size() <= 0) {
|
||||
|
||||
@@ -23,37 +23,43 @@ import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.common.controller.ControllerType;
|
||||
import com.arialyy.aria.core.download.DownloadGroupEntity;
|
||||
import com.arialyy.aria.core.download.DownloadGroupTask;
|
||||
import com.arialyy.aria.core.inf.IEntity;
|
||||
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.ActivityDownloadGroupBinding;
|
||||
import com.arialyy.simple.util.AppUtil;
|
||||
import com.arialyy.simple.widget.SubStateLinearLayout;
|
||||
|
||||
/**
|
||||
* Created by lyy on 2017/7/6.
|
||||
*/
|
||||
public class FTPDirDownloadActivity extends BaseActivity<ActivityDownloadGroupBinding> {
|
||||
private static final String dir = "ftp://9.9.9.50:21/upload/测试";
|
||||
private static final String dir = "ftp://9.9.9.205:2121/upload/测试";
|
||||
|
||||
private SubStateLinearLayout mChildList;
|
||||
private DownloadGroupEntity mEntity;
|
||||
private long mTaskId = -1;
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
Aria.download(this).register();
|
||||
setTitle("FTP文件夹下载");
|
||||
mChildList = findViewById(R.id.child_list);
|
||||
mEntity = Aria.download(this).getFtpDirEntity(dir);
|
||||
if (mEntity != null) {
|
||||
mChildList.addData(mEntity.getSubEntities());
|
||||
getBinding().setFileSize(mEntity.getConvertFileSize());
|
||||
if (mEntity.getFileSize() == 0) {
|
||||
DownloadGroupEntity entity = Aria.download(this).getFtpDirEntity(dir);
|
||||
if (entity != null) {
|
||||
mTaskId = entity.getId();
|
||||
mChildList.addData(entity.getSubEntities());
|
||||
getBinding().setFileSize(entity.getConvertFileSize());
|
||||
if (entity.getState() == IEntity.STATE_RUNNING) {
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
} else {
|
||||
getBinding().setStateStr(getString(R.string.start));
|
||||
}
|
||||
if (entity.getFileSize() == 0) {
|
||||
getBinding().setProgress(0);
|
||||
} else {
|
||||
getBinding().setProgress(mEntity.isComplete() ? 100
|
||||
: (int) (mEntity.getCurrentProgress() * 100 / mEntity.getFileSize()));
|
||||
getBinding().setProgress(entity.isComplete() ? 100
|
||||
: (int) (entity.getCurrentProgress() * 100 / entity.getFileSize()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -65,28 +71,35 @@ public class FTPDirDownloadActivity extends BaseActivity<ActivityDownloadGroupBi
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
if (!AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this)
|
||||
if (mTaskId == -1) {
|
||||
mTaskId = Aria.download(this)
|
||||
.loadFtpDir(dir)
|
||||
.setDirPath(
|
||||
Environment.getExternalStorageDirectory().getPath() + "/Download/ftp_dir")
|
||||
.setGroupAlias("ftp文件夹下载")
|
||||
.option()
|
||||
.login("lao", "123456")
|
||||
.login("8L8e", "8guD")
|
||||
.controller(ControllerType.START_CONTROLLER)
|
||||
.start();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
break;
|
||||
}
|
||||
if (Aria.download(this).loadFtpDir(mEntity.getId()).isRunning()) {
|
||||
Aria.download(this).loadFtpDir(mEntity.getId()).stop();
|
||||
if (Aria.download(this).loadFtpDir(mTaskId).isRunning()) {
|
||||
Aria.download(this).loadFtpDir(mTaskId).stop();
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
} else {
|
||||
Aria.download(this).loadFtpDir(mEntity.getId()).resume();
|
||||
Aria.download(this)
|
||||
.loadFtpDir(mTaskId)
|
||||
.option()
|
||||
.login("8L8e", "8guD")
|
||||
.controller(ControllerType.NORMAL_CONTROLLER)
|
||||
.resume();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
}
|
||||
break;
|
||||
case R.id.cancel:
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this).loadFtpDir(mEntity.getId()).cancel();
|
||||
}
|
||||
Aria.download(this).loadFtpDir(mTaskId).cancel();
|
||||
mTaskId = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -99,12 +112,10 @@ public class FTPDirDownloadActivity extends BaseActivity<ActivityDownloadGroupBi
|
||||
if (mChildList.getSubData().size() <= 0) {
|
||||
mChildList.addData(task.getEntity().getSubEntities());
|
||||
}
|
||||
L.d(TAG, "group task pre");
|
||||
getBinding().setFileSize(task.getConvertFileSize());
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskStart() void taskStart(DownloadGroupTask task) {
|
||||
L.d(TAG, "group task start");
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskRunning() protected void running(DownloadGroupTask task) {
|
||||
@@ -114,17 +125,16 @@ public class FTPDirDownloadActivity extends BaseActivity<ActivityDownloadGroupBi
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskResume() void taskResume(DownloadGroupTask task) {
|
||||
L.d(TAG, "group task resume");
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskStop() void taskStop(DownloadGroupTask task) {
|
||||
L.d(TAG, "group task stop");
|
||||
getBinding().setSpeed("");
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskCancel() void taskCancel(DownloadGroupTask task) {
|
||||
getBinding().setSpeed("");
|
||||
getBinding().setProgress(0);
|
||||
getBinding().setStateStr(getString(R.string.start));
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskFail() void taskFail(DownloadGroupTask task) {
|
||||
|
||||
@@ -47,7 +47,6 @@ import com.arialyy.simple.common.ModifyPathDialog;
|
||||
import com.arialyy.simple.common.ModifyUrlDialog;
|
||||
import com.arialyy.simple.databinding.ActivityM3u8VodBinding;
|
||||
import com.arialyy.simple.to.PeerIndex;
|
||||
import com.arialyy.simple.util.AppUtil;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -61,7 +60,7 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
private String mFilePath;
|
||||
private M3U8VodModule mModule;
|
||||
private VideoPlayerFragment mVideoFragment;
|
||||
private DownloadEntity mEntity;
|
||||
private long mTaskId;
|
||||
|
||||
@Override
|
||||
protected void init(Bundle savedInstanceState) {
|
||||
@@ -75,10 +74,10 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
if (entity == null) {
|
||||
return;
|
||||
}
|
||||
mEntity = entity;
|
||||
if (mEntity.getState() == IEntity.STATE_STOP) {
|
||||
mTaskId = entity.getId();
|
||||
if (entity.getState() == IEntity.STATE_STOP) {
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
} else if (mEntity.getState() == IEntity.STATE_RUNNING) {
|
||||
} else if (entity.getState() == IEntity.STATE_RUNNING) {
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
}
|
||||
|
||||
@@ -272,26 +271,47 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
if (!AppUtil.chekEntityValid(mEntity)) {
|
||||
if (mTaskId == -1) {
|
||||
startD();
|
||||
break;
|
||||
}
|
||||
if (Aria.download(this).load(mEntity.getId()).isRunning()) {
|
||||
Aria.download(this).load(mEntity.getId()).stop();
|
||||
if (Aria.download(this).load(mTaskId).isRunning()) {
|
||||
Aria.download(this).load(mTaskId).stop();
|
||||
} else {
|
||||
Aria.download(this).load(mEntity.getId()).resume();
|
||||
Aria.download(this)
|
||||
.load(mTaskId)
|
||||
.asM3U8()
|
||||
.setBandWidthUrlConverter(new IBandWidthUrlConverter() {
|
||||
@Override public String convert(String bandWidthUrl) {
|
||||
int index = mUrl.lastIndexOf("/");
|
||||
return mUrl.substring(0, index + 1) + bandWidthUrl;
|
||||
}
|
||||
})
|
||||
.setTsUrlConvert(new IVodTsUrlConverter() {
|
||||
@Override public List<String> convert(String m3u8Url, List<String> tsUrls) {
|
||||
int index = m3u8Url.lastIndexOf("/");
|
||||
String parentUrl = m3u8Url.substring(0, index + 1);
|
||||
List<String> newUrls = new ArrayList<>();
|
||||
for (String url : tsUrls) {
|
||||
newUrls.add(parentUrl + url);
|
||||
}
|
||||
|
||||
return newUrls;
|
||||
}
|
||||
})
|
||||
.controller(ControllerType.NORMAL_CONTROLLER)
|
||||
.resume();
|
||||
}
|
||||
break;
|
||||
case R.id.cancel:
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this).load(mEntity.getId()).cancel(true);
|
||||
}
|
||||
Aria.download(this).load(mTaskId).cancel(true);
|
||||
mTaskId = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void startD() {
|
||||
Aria.download(M3U8VodDLoadActivity.this)
|
||||
mTaskId = Aria.download(M3U8VodDLoadActivity.this)
|
||||
.load(mUrl)
|
||||
.useServerFileName(true)
|
||||
.setFilePath(mFilePath, true)
|
||||
@@ -315,15 +335,13 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
}
|
||||
})
|
||||
.setMergeHandler(new ITsMergeHandler() {
|
||||
@Override public boolean merge(@Nullable M3U8KeyInfo keyInfo, List<String> tsPath) {
|
||||
public boolean merge(@Nullable M3U8KeyInfo keyInfo, List<String> tsPath) {
|
||||
ALog.d(TAG, "合并TS....");
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.controller(ControllerType.START_CONTROLLER)
|
||||
.start();
|
||||
//.start();
|
||||
//.asVod().setPeerIndex(50)
|
||||
//.start();
|
||||
}
|
||||
|
||||
private Class<StartController> c = StartController.class;
|
||||
|
||||
@@ -55,7 +55,7 @@ public class VideoPlayerFragment extends BaseFragment<FragmentVideoPlayerBinding
|
||||
getBinding().surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
|
||||
@Override public void surfaceCreated(SurfaceHolder holder) {
|
||||
mSurfaceHolder = holder;
|
||||
startNewPlayer(mPlayers.valueAt(0));
|
||||
//startNewPlayer(mPlayers.valueAt(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -207,10 +207,10 @@ public class DownloadAdapter extends AbsRVAdapter<AbsEntity, DownloadAdapter.Sim
|
||||
//删除按钮事件
|
||||
holder.cancel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override public void onClick(View v) {
|
||||
// mData.remove(entity);
|
||||
mData.remove(entity);
|
||||
notifyDataSetChanged();
|
||||
// cancel(entity);
|
||||
stop(entity);
|
||||
cancel(entity);
|
||||
//stop(entity);
|
||||
}
|
||||
});
|
||||
//if (holder instanceof GroupHolder){
|
||||
|
||||
@@ -32,8 +32,8 @@ import com.arialyy.aria.util.ALog;
|
||||
import com.arialyy.frame.util.FileUtil;
|
||||
import com.arialyy.simple.R;
|
||||
import com.arialyy.simple.base.BaseActivity;
|
||||
import com.arialyy.simple.databinding.ActivityMultiBinding;
|
||||
import com.arialyy.simple.core.download.DownloadModule;
|
||||
import com.arialyy.simple.databinding.ActivityMultiBinding;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -136,7 +136,7 @@ public class MultiTaskActivity extends BaseActivity<ActivityMultiBinding> {
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskFail void groupTaskFail(DownloadGroupTask task) {
|
||||
if (task == null){
|
||||
if (task == null) {
|
||||
return;
|
||||
}
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
|
||||
@@ -52,7 +52,7 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
|
||||
private String mFilePath;
|
||||
private String mUrl;
|
||||
private UploadModule mModule;
|
||||
private UploadEntity mEntity;
|
||||
private long mTaskId = -1;
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
setTile("D_FTP 文件上传");
|
||||
@@ -67,8 +67,8 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
|
||||
mModule = ViewModelProviders.of(this).get(UploadModule.class);
|
||||
mModule.getFtpInfo(this).observe(this, new Observer<UploadEntity>() {
|
||||
@Override public void onChanged(@Nullable UploadEntity entity) {
|
||||
mEntity = entity;
|
||||
if (entity != null) {
|
||||
mTaskId = entity.getId();
|
||||
if (entity.getFileSize() != 0) {
|
||||
getBinding().setFileSize(CommonUtil.formatFileSize(entity.getFileSize()));
|
||||
getBinding().setProgress(entity.isComplete() ? 100
|
||||
@@ -79,7 +79,7 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
|
||||
mUrl = entity.getUrl();
|
||||
mFilePath = entity.getFilePath();
|
||||
getBinding().setStateStr(getString(
|
||||
entity.getState() == IEntity.STATE_RUNNING ? R.string.stop : R.string.resume));
|
||||
entity.getState() == IEntity.STATE_RUNNING ? R.string.stop : R.string.start));
|
||||
} else {
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
}
|
||||
@@ -113,38 +113,47 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
if (!AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.upload(this).loadFtp(mFilePath).setUploadUrl(mUrl).setUploadInterceptor(
|
||||
new IFtpUploadInterceptor() {
|
||||
if (mTaskId == -1) {
|
||||
mTaskId = Aria.upload(this)
|
||||
.loadFtp(mFilePath)
|
||||
.setUploadUrl(mUrl)
|
||||
.setUploadInterceptor(
|
||||
new IFtpUploadInterceptor() {
|
||||
|
||||
@Override
|
||||
public FtpInterceptHandler onIntercept(UploadEntity entity, List<String> fileList) {
|
||||
FtpInterceptHandler.Builder builder = new FtpInterceptHandler.Builder();
|
||||
//builder.coverServerFile();
|
||||
builder.resetFileName("test.zip");
|
||||
return builder.build();
|
||||
}
|
||||
})
|
||||
@Override
|
||||
public FtpInterceptHandler onIntercept(UploadEntity entity,
|
||||
List<String> fileList) {
|
||||
FtpInterceptHandler.Builder builder = new FtpInterceptHandler.Builder();
|
||||
//builder.coverServerFile();
|
||||
builder.resetFileName("test.zip");
|
||||
return builder.build();
|
||||
}
|
||||
})
|
||||
.option()
|
||||
.login("N0rI", "0qcK")
|
||||
.login("8L8e", "8guD")
|
||||
.controller(ControllerType.START_CONTROLLER)
|
||||
.start();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
break;
|
||||
}
|
||||
if (Aria.download(this).loadFtp(mEntity.getId()).isRunning()) {
|
||||
Aria.download(this).loadFtp(mEntity.getId()).stop();
|
||||
if (Aria.upload(this).loadFtp(mTaskId).isRunning()) {
|
||||
Aria.upload(this).loadFtp(mTaskId).stop();
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
} else {
|
||||
Aria.download(this).loadFtp(mEntity.getId()).resume();
|
||||
Aria.upload(this)
|
||||
.loadFtp(mTaskId)
|
||||
.option()
|
||||
.login("8L8e", "8guD")
|
||||
.controller(ControllerType.NORMAL_CONTROLLER)
|
||||
.resume();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
}
|
||||
|
||||
break;
|
||||
case R.id.cancel:
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.upload(this).loadFtp(mEntity.getId()).cancel();
|
||||
}
|
||||
Aria.upload(this).loadFtp(mTaskId).cancel();
|
||||
mTaskId = -1;
|
||||
getBinding().setStateStr(getString(R.string.start));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -179,6 +188,7 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
|
||||
|
||||
@Upload.onTaskFail public void taskFail(UploadTask task) {
|
||||
Log.d(TAG, "上传失败");
|
||||
getBinding().setStateStr(getString(R.string.resume));
|
||||
}
|
||||
|
||||
@Upload.onTaskRunning public void taskRunning(UploadTask task) {
|
||||
@@ -191,6 +201,7 @@ public class FtpUploadActivity extends BaseActivity<ActivityFtpUploadBinding> {
|
||||
getBinding().setProgress(100);
|
||||
getBinding().setSpeed("");
|
||||
T.showShort(this, "文件:" + task.getEntity().getFileName() + ",上传完成");
|
||||
getBinding().setStateStr(getString(R.string.re_start));
|
||||
}
|
||||
|
||||
@Override protected void dataCallback(int result, Object data) {
|
||||
|
||||
@@ -52,7 +52,7 @@ public class AnyRunnModule {
|
||||
}
|
||||
|
||||
@Download.onTaskStart void taskStart(DownloadTask task) {
|
||||
Log.d(TAG, "onStart");
|
||||
Log.d(TAG, "onPreStart");
|
||||
}
|
||||
|
||||
@Download.onTaskRunning protected void running(DownloadTask task) {
|
||||
|
||||
@@ -64,26 +64,16 @@
|
||||
|
||||
|
||||
<string-array name="test_apk_download_url">
|
||||
<item>http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk</item> <!--300M的文件-->
|
||||
<item>http://static.gaoshouyou.com/d/21/e8/61218d78d0e8b79df68dbc18dd484c97.apk</item>
|
||||
<item>http://static.gaoshouyou.com/d/12/0d/7f120f50c80d2e7b8c4ba24ece4f9cdd.apk</item>
|
||||
<item>http://static.gaoshouyou.com/d/d4/4f/d6d48db3794fb9ecf47e83c346570881.apk</item>
|
||||
<!--<item>http://static.gaoshouyou.com/d/18/cf/ba18113bc6cf56c1c5863e761e717003.apk</item>-->
|
||||
<!--<item>http://static.gaoshouyou.com/d/60/17/2460921367173ea7145f11194a6f2587.apk</item>-->
|
||||
<!--<item>http://static.gaoshouyou.com/d/32/e0/1a32123ecbe0ee010d35479df248f90f.apk</item>-->
|
||||
<!--<item>http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk</item>-->
|
||||
<!--<item>http://static.gaoshouyou.com/d/e6/f5/4de6329f9cf5dc3a1d1e6bbcca0d003c.apk</item>-->
|
||||
<!--<item>http://static.gaoshouyou.com/d/6e/e5/ff6ecaaf45e532e6d07747af82357472.apk</item>-->
|
||||
<!--<item>http://static.gaoshouyou.com/d/36/69/2d3699acfa69e9632262442c46516ad8.apk</item>-->
|
||||
</string-array>
|
||||
|
||||
<string-array name="file_nams">
|
||||
<item>阴阳师</item>
|
||||
<item>奇迹暖暖</item>
|
||||
<item>幻影纹章</item>
|
||||
<item>史上最坑爹的游戏10</item>
|
||||
<item>鲜果消消乐</item>
|
||||
<item>航海奇迹</item>
|
||||
<item>王者荣耀</item>
|
||||
<item>植物大战僵尸</item>
|
||||
<item>部落冲突</item>
|
||||
<item>瘟疫公司</item>
|
||||
<item>水上公园大战</item>
|
||||
<item>死亡之雨</item>
|
||||
|
||||
<item>test_1</item>
|
||||
<item>test_2</item>
|
||||
@@ -91,13 +81,12 @@
|
||||
|
||||
</string-array>
|
||||
<string-array name="download_url">
|
||||
<item>https://g37.gdl.netease.com/onmyoji_netease_10_1.0.20.apk</item>
|
||||
<item>http://static.gaoshouyou.com/d/eb/f2/dfeba30541f209ab8a50d847fc1661ce.apk</item>
|
||||
<item>http://rs.0.gaoshouyou.com/d/51/46/58514d126c46b8a3f27fc8c7db3b09ec.apk</item>
|
||||
<item>http://rs.0.gaoshouyou.com/d/23/69/07238f952669727878d7a0e180534c8b.apk</item>
|
||||
<item>http://rs.0.gaoshouyou.com/d/e7/3d/73e716d3353de5b479fcf7da8d36a5ef.apk</item>
|
||||
<item>http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk</item>
|
||||
|
||||
<item>https://downs.muzhiwan.com/2019/06/28/com.tencent.tmgp.sgame5d15f9df3bb4d.gpk</item>
|
||||
<item>https://downs.muzhiwan.com/2017/03/15/com.ea.game.pvz2_row58c8bfc00eea8.gpk</item>
|
||||
<item>https://downs.muzhiwan.com/2019/07/04/com.supercell.clashofclans.ewan.mzw_5d1da09397884.apk</item>
|
||||
<item>https://downs.muzhiwan.com/2019/02/28/com.miniclip.plagueinc_5c77596c79179.apk</item>
|
||||
<item>https://downs.muzhiwan.com/2019/06/03/com.aqua.slide_5cf4b69e90e6a.apk</item>
|
||||
<item>https://downs.muzhiwan.com/2019/05/07/com.tinydevbox.deadrain2_g_5cd14a8aedb2f.apk</item>
|
||||
<item>http://dby-resource-android.duobeiyun.com/jz22a8508b4265466b9fb4bb29082eaa2d.zip</item>
|
||||
<item>http://dby-resource-android.duobeiyun.com/jz05fa8faf068145fcb25c93c8091297ad.zip</item>
|
||||
<item>http://dby-resource-android.duobeiyun.com/jz684e1b4c2f6b4576979e60fd95edebad.zip</item>
|
||||
|
||||
Reference in New Issue
Block a user