diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5d199810..fbb68289 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/Aria/build.gradle b/Aria/build.gradle
index be8d2a90..4aae21af 100644
--- a/Aria/build.gradle
+++ b/Aria/build.gradle
@@ -7,8 +7,8 @@ android {
defaultConfig {
minSdkVersion 9
targetSdkVersion 23
- versionCode 84
- versionName "2.3.6"
+ versionCode 85
+ versionName "2.3.7"
}
buildTypes {
release {
diff --git a/Aria/src/main/java/com/arialyy/aria/core/AMReceiver.java b/Aria/src/main/java/com/arialyy/aria/core/AMReceiver.java
index fc9be612..f6d3e804 100644
--- a/Aria/src/main/java/com/arialyy/aria/core/AMReceiver.java
+++ b/Aria/src/main/java/com/arialyy/aria/core/AMReceiver.java
@@ -27,17 +27,15 @@ import com.arialyy.aria.util.CheckUtil;
* AM 接收器
*/
public class AMReceiver {
- String targetName;
+ String targetName;
OnSchedulerListener listener;
- DownloadEntity entity;
- Object obj;
+ Object obj;
/**
* {@link #load(String)},请使用该方法
*/
@Deprecated public AMTarget load(DownloadEntity entity) {
- this.entity = entity;
- return new AMTarget(this);
+ return new AMTarget(entity, targetName);
}
/**
@@ -45,14 +43,13 @@ public class AMReceiver {
*/
public AMTarget load(@NonNull String downloadUrl) {
CheckUtil.checkDownloadUrl(downloadUrl);
- if (entity == null) {
- entity = DownloadEntity.findData(DownloadEntity.class, "downloadUrl=?", downloadUrl);
- }
+ DownloadEntity entity =
+ DownloadEntity.findData(DownloadEntity.class, "downloadUrl=?", downloadUrl);
if (entity == null) {
entity = new DownloadEntity();
}
entity.setDownloadUrl(downloadUrl);
- return new AMTarget(this);
+ return new AMTarget(entity, targetName);
}
/**
diff --git a/Aria/src/main/java/com/arialyy/aria/core/AMTarget.java b/Aria/src/main/java/com/arialyy/aria/core/AMTarget.java
index 022c2607..cf7e5742 100644
--- a/Aria/src/main/java/com/arialyy/aria/core/AMTarget.java
+++ b/Aria/src/main/java/com/arialyy/aria/core/AMTarget.java
@@ -29,10 +29,13 @@ import java.util.List;
* https://github.com/AriaLyy/Aria
*/
public class AMTarget {
- private AMReceiver mReceiver;
+ //private AMReceiver mReceiver;
+ DownloadEntity entity;
+ String targetName;
- AMTarget(AMReceiver receiver) {
- this.mReceiver = receiver;
+ AMTarget(DownloadEntity entity, String targetName) {
+ this.entity = entity;
+ this.targetName = targetName;
}
/**
@@ -42,7 +45,7 @@ public class AMTarget {
if (TextUtils.isEmpty(downloadPath)) {
throw new IllegalArgumentException("文件保持路径不能为null");
}
- mReceiver.entity.setDownloadPath(downloadPath);
+ entity.setDownloadPath(downloadPath);
return this;
}
@@ -53,7 +56,7 @@ public class AMTarget {
if (TextUtils.isEmpty(downloadName)) {
throw new IllegalArgumentException("文件名不能为null");
}
- mReceiver.entity.setFileName(downloadName);
+ entity.setFileName(downloadName);
return this;
}
@@ -61,7 +64,7 @@ public class AMTarget {
* 获取下载文件大小
*/
public long getFileSize() {
- DownloadEntity entity = getDownloadEntity(mReceiver.entity.getDownloadUrl());
+ DownloadEntity entity = getDownloadEntity(this.entity.getDownloadUrl());
if (entity == null) {
throw new NullPointerException("下载管理器中没有改任务");
}
@@ -72,7 +75,7 @@ public class AMTarget {
* 获取当前下载进度,如果下載实体存在,则返回当前进度
*/
public long getCurrentProgress() {
- DownloadEntity entity = getDownloadEntity(mReceiver.entity.getDownloadUrl());
+ DownloadEntity entity = getDownloadEntity(this.entity.getDownloadUrl());
if (entity == null) {
throw new NullPointerException("下载管理器中没有改任务");
}
@@ -89,8 +92,7 @@ public class AMTarget {
*/
public void add() {
DownloadManager.getInstance()
- .setCmd(
- CommonUtil.createCmd(mReceiver.targetName, mReceiver.entity, CmdFactory.TASK_CREATE))
+ .setCmd(CommonUtil.createCmd(targetName, entity, CmdFactory.TASK_CREATE))
.exe();
}
@@ -99,8 +101,8 @@ public class AMTarget {
*/
public void start() {
List cmds = new ArrayList<>();
- cmds.add(CommonUtil.createCmd(mReceiver.targetName, mReceiver.entity, CmdFactory.TASK_CREATE));
- cmds.add(CommonUtil.createCmd(mReceiver.targetName, mReceiver.entity, CmdFactory.TASK_START));
+ cmds.add(CommonUtil.createCmd(targetName, entity, CmdFactory.TASK_CREATE));
+ cmds.add(CommonUtil.createCmd(targetName, entity, CmdFactory.TASK_START));
DownloadManager.getInstance().setCmds(cmds).exe();
cmds.clear();
}
@@ -110,7 +112,7 @@ public class AMTarget {
*/
public void stop() {
DownloadManager.getInstance()
- .setCmd(CommonUtil.createCmd(mReceiver.targetName, mReceiver.entity, CmdFactory.TASK_STOP))
+ .setCmd(CommonUtil.createCmd(targetName, entity, CmdFactory.TASK_STOP))
.exe();
}
@@ -119,7 +121,7 @@ public class AMTarget {
*/
public void resume() {
DownloadManager.getInstance()
- .setCmd(CommonUtil.createCmd(mReceiver.targetName, mReceiver.entity, CmdFactory.TASK_START))
+ .setCmd(CommonUtil.createCmd(targetName, entity, CmdFactory.TASK_START))
.exe();
}
@@ -128,8 +130,7 @@ public class AMTarget {
*/
public void cancel() {
DownloadManager.getInstance()
- .setCmd(
- CommonUtil.createCmd(mReceiver.targetName, mReceiver.entity, CmdFactory.TASK_CANCEL))
+ .setCmd(CommonUtil.createCmd(targetName, entity, CmdFactory.TASK_CANCEL))
.exe();
}
@@ -137,7 +138,7 @@ public class AMTarget {
* 是否在下载
*/
public boolean isDownloading() {
- return DownloadManager.getInstance().getTaskQueue().getTask(mReceiver.entity).isDownloading();
+ return DownloadManager.getInstance().getTaskQueue().getTask(entity).isDownloading();
}
/**
diff --git a/Aria/src/main/java/com/arialyy/aria/core/Aria.java b/Aria/src/main/java/com/arialyy/aria/core/Aria.java
index 167d7cc4..4aab85f2 100644
--- a/Aria/src/main/java/com/arialyy/aria/core/Aria.java
+++ b/Aria/src/main/java/com/arialyy/aria/core/Aria.java
@@ -24,9 +24,7 @@ import android.app.DialogFragment;
import android.app.Fragment;
import android.app.Service;
import android.content.Context;
-import android.content.ContextWrapper;
import android.os.Build;
-import android.view.ContextThemeWrapper;
import android.widget.PopupWindow;
import com.arialyy.aria.core.scheduler.OnSchedulerListener;
import com.arialyy.aria.core.task.Task;
@@ -51,43 +49,43 @@ import com.arialyy.aria.core.task.Task;
/**
* 预处理完成
*/
- public static final String ACTION_PRE = "ACTION_PRE";
+ public static final String ACTION_PRE = "ACTION_PRE";
/**
* 下载开始前事件
*/
- public static final String ACTION_POST_PRE = "ACTION_POST_PRE";
+ public static final String ACTION_POST_PRE = "ACTION_POST_PRE";
/**
* 开始下载事件
*/
- public static final String ACTION_START = "ACTION_START";
+ public static final String ACTION_START = "ACTION_START";
/**
* 恢复下载事件
*/
- public static final String ACTION_RESUME = "ACTION_RESUME";
+ public static final String ACTION_RESUME = "ACTION_RESUME";
/**
* 正在下载事件
*/
- public static final String ACTION_RUNNING = "ACTION_RUNNING";
+ public static final String ACTION_RUNNING = "ACTION_RUNNING";
/**
* 停止下载事件
*/
- public static final String ACTION_STOP = "ACTION_STOP";
+ public static final String ACTION_STOP = "ACTION_STOP";
/**
* 取消下载事件
*/
- public static final String ACTION_CANCEL = "ACTION_CANCEL";
+ public static final String ACTION_CANCEL = "ACTION_CANCEL";
/**
* 下载完成事件
*/
- public static final String ACTION_COMPLETE = "ACTION_COMPLETE";
+ public static final String ACTION_COMPLETE = "ACTION_COMPLETE";
/**
* 下载失败事件
*/
- public static final String ACTION_FAIL = "ACTION_FAIL";
+ public static final String ACTION_FAIL = "ACTION_FAIL";
/**
* 下载实体
*/
- public static final String ENTITY = "DOWNLOAD_ENTITY";
+ public static final String ENTITY = "DOWNLOAD_ENTITY";
/**
* 位置
*/
@@ -95,7 +93,7 @@ import com.arialyy.aria.core.task.Task;
/**
* 速度
*/
- public static final String CURRENT_SPEED = "CURRENT_SPEED";
+ public static final String CURRENT_SPEED = "CURRENT_SPEED";
private Aria() {
}
@@ -118,7 +116,17 @@ import com.arialyy.aria.core.task.Task;
/**
* 处理Fragment
*/
- private static AMReceiver whit(Fragment fragment) {
+ public static AMReceiver whit(Fragment fragment) {
+ checkNull(fragment);
+ return AriaManager.getInstance(
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? fragment.getContext()
+ : fragment.getActivity()).get(fragment);
+ }
+
+ /**
+ * 处理Fragment
+ */
+ public static AMReceiver whit(android.support.v4.app.Fragment fragment) {
checkNull(fragment);
return AriaManager.getInstance(
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? fragment.getContext()
@@ -151,10 +159,6 @@ import com.arialyy.aria.core.task.Task;
return AriaManager.getInstance(dialog.getContext()).get(dialog);
}
- private static void checkNull(Object obj) {
- if (obj == null) throw new IllegalArgumentException("不能传入空对象");
- }
-
/**
* 处理通用事件
*/
@@ -185,6 +189,30 @@ import com.arialyy.aria.core.task.Task;
return AriaManager.getInstance(popupWindow.getContentView().getContext());
}
+ /**
+ * 处理Fragment的通用任务
+ */
+ public static AriaManager get(Fragment fragment) {
+ checkNull(fragment);
+ return AriaManager.getInstance(
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? fragment.getContext()
+ : fragment.getActivity());
+ }
+
+ /**
+ * 处理Fragment的通用任务
+ */
+ public static AriaManager get(android.support.v4.app.Fragment fragment) {
+ checkNull(fragment);
+ return AriaManager.getInstance(
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? fragment.getContext()
+ : fragment.getActivity());
+ }
+
+ private static void checkNull(Object obj) {
+ if (obj == null) throw new IllegalArgumentException("不能传入空对象");
+ }
+
public static class SimpleSchedulerListener implements OnSchedulerListener {
@Override public void onTaskPre(Task task) {
diff --git a/Aria/src/main/java/com/arialyy/aria/core/task/Task.java b/Aria/src/main/java/com/arialyy/aria/core/task/Task.java
index fdccc9d2..c66b5f67 100644
--- a/Aria/src/main/java/com/arialyy/aria/core/task/Task.java
+++ b/Aria/src/main/java/com/arialyy/aria/core/task/Task.java
@@ -67,17 +67,24 @@ public class Task {
/**
* 获取文件大小
*/
- public long getFileSize(){
+ public long getFileSize() {
return mEntity.getFileSize();
}
/**
* 获取当前下载进度
*/
- public long getCurrentProgress(){
+ public long getCurrentProgress() {
return mEntity.getCurrentProgress();
}
+ /**
+ * 获取当前下载任务的下载地址
+ */
+ public String getDownloadUrl() {
+ return mEntity.getDownloadUrl();
+ }
+
/**
* 开始下载
*/
@@ -202,6 +209,7 @@ public class Task {
public Task build() {
Task task = new Task(context, downloadEntity, outHandler);
task.setTargetName(targetName);
+ //Log.w(TAG, "downloadEntity hashcode ==> " + downloadEntity.hashCode());
downloadEntity.save();
return task;
}
diff --git a/README.md b/README.md
index a151f00b..c63f85e8 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@
## 下载
[](https://bintray.com/arialyy/maven/Aria/_latestVersion)
```java
-compile 'com.arialyy.aria:Aria:2.3.6'
+compile 'com.arialyy.aria:Aria:2.3.8'
```
@@ -30,7 +30,13 @@ compile 'com.arialyy.aria:Aria:2.3.6'
***
## 使用
-### 一、只需要以下参数,你便能很简单的使用Aria下载文件了
+### 一、添加权限
+```xml
+
+
+
+```
+### 二、只需要以下参数,你便能很简单的使用Aria下载文件了
```java
Aria.whit(this)
.load(DOWNLOAD_URL) //下载地址,必填
@@ -38,14 +44,14 @@ compile 'com.arialyy.aria:Aria:2.3.6'
.setDownloadName("test.apk") //文件名,必填
.start();
```
-### 二、为了能接收到Aria传递的数据,你需要把你的Activity或fragment注册到Aria管理器中,注册的方式很简单,在onResume
+### 三、为了能接收到Aria传递的数据,你需要把你的Activity或fragment注册到Aria管理器中,注册的方式很简单,在onResume
```java
@Override protected void onResume() {
super.onResume();
Aria.whit(this).addSchedulerListener(new MySchedulerListener());
}
```
-### 三、通过下载链接,你还能使用Aria执行很多操作,如:
+### 四、通过下载链接,你还能使用Aria执行很多操作,如:
- 添加任务(不进行下载)
```java
@@ -85,7 +91,7 @@ compile 'com.arialyy.aria:Aria:2.3.6'
Aria.whit(this).load(DOWNLOAD_URL).getFileSize();
```
-### 四、关于Aria,你还需要知道的一些东西
+### 五、关于Aria,你还需要知道的一些东西
- 设置下载任务数,Aria默认下载任务为**2**
```java
@@ -114,6 +120,7 @@ compile 'com.arialyy.aria:Aria:2.3.6'
***
## 开发日志
+ + v_2.3.8 修复数据错乱的bug、添加fragment支持
+ v_2.3.6 添加dialog、popupWindow支持
+ v_2.3.3
- 添加断点支持
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5c882e2a..681656f0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
android:theme="@style/AppTheme.NoActionBar">
@@ -24,8 +24,10 @@
-
-
+
+
+
+
diff --git a/app/src/main/java/com/arialyy/simple/activity/MainActivity.java b/app/src/main/java/com/arialyy/simple/MainActivity.java
similarity index 83%
rename from app/src/main/java/com/arialyy/simple/activity/MainActivity.java
rename to app/src/main/java/com/arialyy/simple/MainActivity.java
index 8959c5a7..33a10ee8 100644
--- a/app/src/main/java/com/arialyy/simple/activity/MainActivity.java
+++ b/app/src/main/java/com/arialyy/simple/MainActivity.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.arialyy.simple.activity;
+package com.arialyy.simple;
import android.Manifest;
import android.content.Intent;
@@ -28,21 +28,23 @@ import butterknife.Bind;
import com.arialyy.frame.permission.OnPermissionCallback;
import com.arialyy.frame.permission.PermissionManager;
import com.arialyy.frame.util.show.T;
-import com.arialyy.simple.R;
import com.arialyy.simple.base.BaseActivity;
import com.arialyy.simple.databinding.ActivityMainBinding;
-import com.arialyy.simple.dialog.DownloadDialog;
-import com.arialyy.simple.pop.DownloadPopupWindow;
+import com.arialyy.simple.dialog_task.DownloadDialog;
+import com.arialyy.simple.fragment_task.FragmentActivity;
+import com.arialyy.simple.multi_task.MultiTaskActivity;
+import com.arialyy.simple.pop_task.DownloadPopupWindow;
+import com.arialyy.simple.single_task.SingleTaskActivity;
/**
* Created by Lyy on 2016/10/13.
*/
public class MainActivity extends BaseActivity {
- @Bind(R.id.toolbar) Toolbar mBar;
- @Bind(R.id.single_task) Button mSigleBt;
- @Bind(R.id.multi_task) Button mMultiBt;
- @Bind(R.id.dialog_task) Button mDialogBt;
- @Bind(R.id.pop_task) Button mPopBt;
+ @Bind(R.id.toolbar) Toolbar mBar;
+ @Bind(R.id.single_task) Button mSigleBt;
+ @Bind(R.id.multi_task) Button mMultiBt;
+ @Bind(R.id.dialog_task) Button mDialogBt;
+ @Bind(R.id.pop_task) Button mPopBt;
@Override protected int setLayoutId() {
return R.layout.activity_main;
@@ -99,6 +101,9 @@ public class MainActivity extends BaseActivity {
//pop.showAsDropDown(mRootView);
pop.showAtLocation(mRootView, Gravity.CENTER_VERTICAL, 0, 0);
break;
+ case R.id.fragment_task:
+ startActivity(new Intent(this, FragmentActivity.class));
+ break;
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/arialyy/simple/activity/MultiTaskActivity.java b/app/src/main/java/com/arialyy/simple/activity/MultiTaskActivity.java
deleted file mode 100644
index 5556eafa..00000000
--- a/app/src/main/java/com/arialyy/simple/activity/MultiTaskActivity.java
+++ /dev/null
@@ -1,179 +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.simple.activity;
-
-import android.os.Bundle;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
-import android.view.View;
-import butterknife.Bind;
-import com.arialyy.aria.core.AMTarget;
-import com.arialyy.aria.core.Aria;
-import com.arialyy.aria.core.task.Task;
-import com.arialyy.frame.util.show.L;
-import com.arialyy.simple.R;
-import com.arialyy.simple.adapter.DownloadAdapter;
-import com.arialyy.simple.base.BaseActivity;
-import com.arialyy.simple.databinding.ActivityMultiBinding;
-import com.arialyy.simple.dialog.DownloadNumDialog;
-import com.arialyy.simple.module.DownloadModule;
-
-/**
- * Created by Lyy on 2016/9/27.
- */
-public class MultiTaskActivity extends BaseActivity {
- @Bind(R.id.list) RecyclerView mList;
- @Bind(R.id.toolbar) Toolbar mBar;
- DownloadAdapter mAdapter;
-
- @Override protected int setLayoutId() {
- return R.layout.activity_multi;
- }
-
- @Override protected void init(Bundle savedInstanceState) {
- super.init(savedInstanceState);
- setSupportActionBar(mBar);
- mBar.setTitle("多任务下载");
- mAdapter = new DownloadAdapter(this, getModule(DownloadModule.class).getDownloadData());
- mList.setLayoutManager(new LinearLayoutManager(this));
- mList.setAdapter(mAdapter);
- }
-
- //private BroadcastReceiver mReceiver = new BroadcastReceiver() {
- // long len = 0;
- //
- // @Override public void onReceive(Context context, Intent intent) {
- // String action = intent.getAction();
- // DownloadEntity entity = intent.getParcelableExtra(DownloadManager.ENTITY);
- // switch (action) {
- // case DownloadManager.ACTION_PRE:
- // L.d(TAG, "download pre");
- // mAdapter.updateState(entity);
- // break;
- // case DownloadManager.ACTION_POST_PRE:
- // len = entity.getFileSize();
- // L.d(TAG, "download post pre");
- // break;
- // case DownloadManager.ACTION_START:
- // L.d(TAG, "download start");
- // break;
- // case DownloadManager.ACTION_RESUME:
- // L.d(TAG, "download resume");
- // long location = intent.getLongExtra(DownloadManager.CURRENT_LOCATION, 1);
- // mAdapter.updateState(entity);
- // break;
- // case DownloadManager.ACTION_RUNNING:
- // long current = intent.getLongExtra(DownloadManager.CURRENT_LOCATION, 0);
- // long speed = intent.getLongExtra(DownloadManager.CURRENT_SPEED, 0);
- // //mAdapter.setProgress(entity.getDownloadUrl(), current, speed);
- // mAdapter.setProgress(entity);
- // break;
- // case DownloadManager.ACTION_STOP:
- // L.d(TAG, "download stop");
- // mAdapter.updateState(entity);
- // break;
- // case DownloadManager.ACTION_COMPLETE:
- // L.d(TAG, "download complete");
- // mAdapter.updateState(entity);
- // break;
- // case DownloadManager.ACTION_CANCEL:
- // L.d(TAG, "download cancel");
- // mAdapter.updateState(entity);
- // break;
- // case DownloadManager.ACTION_FAIL:
- // L.d(TAG, "download fail");
- // break;
- // }
- // }
- //};
-
- public void onClick(View view){
- switch (view.getId()){
- case R.id.num:
- DownloadNumDialog dialog = new DownloadNumDialog(this);
- dialog.show(getSupportFragmentManager(), "download_num");
- break;
- case R.id.stop_all:
- Aria.get(this).stopAllTask();
- break;
- }
- }
-
- @Override protected void onResume() {
- super.onResume();
- Aria.whit(this).addSchedulerListener(new MySchedulerListener());
- }
-
- @Override protected void onDestroy() {
- super.onDestroy();
- //unregisterReceiver(mReceiver);
- }
-
- @Override protected void dataCallback(int result, Object data) {
- super.dataCallback(result, data);
- if (result == DownloadNumDialog.RESULT_CODE){
- mAdapter.setDownloadNum(Integer.parseInt(data + ""));
- }
- }
-
- private class MySchedulerListener extends Aria.SimpleSchedulerListener{
- @Override public void onTaskPre(Task task) {
- super.onTaskPre(task);
- L.d(TAG, "download pre");
- mAdapter.updateState(task.getDownloadEntity());
- }
-
- @Override public void onTaskStart(Task task) {
- super.onTaskStart(task);
- L.d(TAG, "download start");
- mAdapter.updateState(task.getDownloadEntity());
- }
-
- @Override public void onTaskResume(Task task) {
- super.onTaskResume(task);
- L.d(TAG, "download resume");
- mAdapter.updateState(task.getDownloadEntity());
- }
-
- @Override public void onTaskRunning(Task task) {
- super.onTaskRunning(task);
- mAdapter.setProgress(task.getDownloadEntity());
- }
-
- @Override public void onTaskStop(Task task) {
- super.onTaskStop(task);
- mAdapter.updateState(task.getDownloadEntity());
- }
-
- @Override public void onTaskCancel(Task task) {
- super.onTaskCancel(task);
- mAdapter.updateState(task.getDownloadEntity());
- }
-
- @Override public void onTaskComplete(Task task) {
- super.onTaskComplete(task);
- mAdapter.updateState(task.getDownloadEntity());
- }
-
- @Override public void onTaskFail(Task task) {
- super.onTaskFail(task);
- L.d(TAG, "download fail");
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/arialyy/simple/dialog/DownloadDialog.java b/app/src/main/java/com/arialyy/simple/dialog_task/DownloadDialog.java
similarity index 98%
rename from app/src/main/java/com/arialyy/simple/dialog/DownloadDialog.java
rename to app/src/main/java/com/arialyy/simple/dialog_task/DownloadDialog.java
index f8e723fd..8f6db116 100644
--- a/app/src/main/java/com/arialyy/simple/dialog/DownloadDialog.java
+++ b/app/src/main/java/com/arialyy/simple/dialog_task/DownloadDialog.java
@@ -1,4 +1,4 @@
-package com.arialyy.simple.dialog;
+package com.arialyy.simple.dialog_task;
import android.content.Context;
import android.os.Environment;
diff --git a/app/src/main/java/com/arialyy/simple/fragment_task/DownloadFragment.java b/app/src/main/java/com/arialyy/simple/fragment_task/DownloadFragment.java
new file mode 100644
index 00000000..19502277
--- /dev/null
+++ b/app/src/main/java/com/arialyy/simple/fragment_task/DownloadFragment.java
@@ -0,0 +1,124 @@
+package com.arialyy.simple.fragment_task;
+
+import android.os.Bundle;
+import android.os.Environment;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+import butterknife.Bind;
+import butterknife.OnClick;
+import com.arialyy.aria.core.AMTarget;
+import com.arialyy.aria.core.Aria;
+import com.arialyy.aria.core.DownloadEntity;
+import com.arialyy.aria.core.task.Task;
+import com.arialyy.aria.util.CommonUtil;
+import com.arialyy.frame.core.AbsFragment;
+import com.arialyy.simple.R;
+import com.arialyy.simple.databinding.FragmentDownloadBinding;
+import com.arialyy.simple.widget.HorizontalProgressBarWithNumber;
+
+/**
+ * Created by Aria.Lao on 2017/1/4.
+ */
+public class DownloadFragment extends AbsFragment {
+ @Bind(R.id.progressBar) HorizontalProgressBarWithNumber mPb;
+ @Bind(R.id.start) Button mStart;
+ @Bind(R.id.stop) Button mStop;
+ @Bind(R.id.cancel) Button mCancel;
+ @Bind(R.id.size) TextView mSize;
+ @Bind(R.id.speed) TextView mSpeed;
+
+ private static final String DOWNLOAD_URL =
+ "http://static.gaoshouyou.com/d/3a/93/573ae1db9493a801c24bf66128b11e39.apk";
+
+ @Override protected void init(Bundle savedInstanceState) {
+ if (Aria.get(this).taskExists(DOWNLOAD_URL)) {
+ AMTarget target = Aria.whit(this).load(DOWNLOAD_URL);
+ int p = (int) (target.getCurrentProgress() * 100 / target.getFileSize());
+ mPb.setProgress(p);
+ }
+ DownloadEntity entity = Aria.get(this).getDownloadEntity(DOWNLOAD_URL);
+ if (entity != null) {
+ mSize.setText(CommonUtil.formatFileSize(entity.getFileSize()));
+ int state = entity.getState();
+ setBtState(state != DownloadEntity.STATE_DOWNLOAD_ING);
+ } else {
+ setBtState(true);
+ }
+ }
+
+ @Override public void onResume() {
+ super.onResume();
+ Aria.whit(this).addSchedulerListener(new DownloadFragment.MyDialogDownloadCallback());
+ }
+
+ @OnClick({ R.id.start, R.id.stop, R.id.cancel }) public void onClick(View view) {
+ switch (view.getId()) {
+ case R.id.start:
+ Aria.whit(this)
+ .load(DOWNLOAD_URL)
+ .setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/daialog.apk")
+ .setDownloadName("daialog.apk")
+ .start();
+ break;
+ case R.id.stop:
+ Aria.whit(this).load(DOWNLOAD_URL).stop();
+ break;
+ case R.id.cancel:
+ Aria.whit(this).load(DOWNLOAD_URL).cancel();
+ break;
+ }
+ }
+
+ @Override protected void onDelayLoad() {
+
+ }
+
+ @Override protected int setLayoutId() {
+ return R.layout.fragment_download;
+ }
+
+ @Override protected void dataCallback(int result, Object obj) {
+
+ }
+
+ private void setBtState(boolean startEnable) {
+ mStart.setEnabled(startEnable);
+ mCancel.setEnabled(!startEnable);
+ mStop.setEnabled(!startEnable);
+ }
+
+ private class MyDialogDownloadCallback extends Aria.SimpleSchedulerListener {
+
+ @Override public void onTaskPre(Task task) {
+ super.onTaskPre(task);
+ mSize.setText(CommonUtil.formatFileSize(task.getFileSize()));
+ setBtState(false);
+ }
+
+ @Override public void onTaskStop(Task task) {
+ super.onTaskStop(task);
+ setBtState(true);
+ mSpeed.setText("0.0kb/s");
+ }
+
+ @Override public void onTaskCancel(Task task) {
+ super.onTaskCancel(task);
+ setBtState(true);
+ mPb.setProgress(0);
+ mSpeed.setText("0.0kb/s");
+ }
+
+ @Override public void onTaskRunning(Task task) {
+ super.onTaskRunning(task);
+ long current = task.getCurrentProgress();
+ long len = task.getFileSize();
+ if (len == 0) {
+ mPb.setProgress(0);
+ } else {
+ mPb.setProgress((int) ((current * 100) / len));
+ }
+ mSpeed.setText(CommonUtil.formatFileSize(task.getSpeed()) + "/s");
+ }
+ }
+}
diff --git a/app/src/main/java/com/arialyy/simple/fragment_task/FragmentActivity.java b/app/src/main/java/com/arialyy/simple/fragment_task/FragmentActivity.java
new file mode 100644
index 00000000..ff7a30cd
--- /dev/null
+++ b/app/src/main/java/com/arialyy/simple/fragment_task/FragmentActivity.java
@@ -0,0 +1,15 @@
+package com.arialyy.simple.fragment_task;
+
+import com.arialyy.simple.R;
+import com.arialyy.simple.base.BaseActivity;
+import com.arialyy.simple.databinding.FragmentDownloadBinding;
+
+/**
+ * Created by Aria.Lao on 2017/1/4.
+ */
+
+public class FragmentActivity extends BaseActivity {
+ @Override protected int setLayoutId() {
+ return R.layout.activity_fragment;
+ }
+}
diff --git a/app/src/main/java/com/arialyy/simple/module/DownloadModule.java b/app/src/main/java/com/arialyy/simple/module/DownloadModule.java
index 186ddcd4..b9ac5582 100644
--- a/app/src/main/java/com/arialyy/simple/module/DownloadModule.java
+++ b/app/src/main/java/com/arialyy/simple/module/DownloadModule.java
@@ -24,24 +24,59 @@ import android.os.Environment;
import android.os.Handler;
import com.arialyy.aria.core.Aria;
import com.arialyy.aria.core.DownloadEntity;
-import com.arialyy.aria.core.DownloadManager;
import com.arialyy.aria.util.CommonUtil;
import com.arialyy.frame.util.AndroidUtils;
import com.arialyy.frame.util.StringUtil;
import com.arialyy.frame.util.show.L;
import com.arialyy.simple.R;
-import com.arialyy.simple.activity.SingleTaskActivity;
+import com.arialyy.simple.multi_task.FileListEntity;
+import com.arialyy.simple.single_task.SingleTaskActivity;
import com.arialyy.simple.base.BaseModule;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
+import java.util.Random;
/**
* Created by Lyy on 2016/9/27.
*/
public class DownloadModule extends BaseModule {
+ private List mTestDownloadUrl = new ArrayList<>();
+
public DownloadModule(Context context) {
super(context);
+ mTestDownloadUrl.add("http://static.gaoshouyou.com/d/e6/f5/4de6329f9cf5dc3a1d1e6bbcca0d003c.apk");
+ mTestDownloadUrl.add("http://static.gaoshouyou.com/d/6e/e5/ff6ecaaf45e532e6d07747af82357472.apk");
+ mTestDownloadUrl.add("http://static.gaoshouyou.com/d/36/69/2d3699acfa69e9632262442c46516ad8.apk");
+ }
+
+ public String getRadomUrl() {
+ Random random = new Random();
+ int i = random.nextInt(2);
+ return mTestDownloadUrl.get(i);
+ }
+
+ public DownloadEntity createRandomDownloadEntity(){
+ return createDownloadEntity(getRadomUrl());
+ }
+
+ /**
+ * 创建下载地址
+ */
+ public List createFileList() {
+ String[] names = getContext().getResources().getStringArray(R.array.file_nams);
+ String[] downloadUrl = getContext().getResources().getStringArray(R.array.download_url);
+ List list = new ArrayList<>();
+ int i = 0;
+ for (String name : names) {
+ FileListEntity entity = new FileListEntity();
+ entity.name = name;
+ entity.downloadUrl = downloadUrl[i];
+ entity.downloadPath = Environment.getExternalStorageDirectory() + "/Download/" + name;
+ list.add(entity);
+ i++;
+ }
+ return list;
}
/**
@@ -86,8 +121,8 @@ public class DownloadModule extends BaseModule {
}
private DownloadEntity createDownloadEntity(String url) {
- String fileName = CommonUtil.keyToHashCode(url) + ".apk";
- DownloadEntity entity = new DownloadEntity();
+ String fileName = CommonUtil.keyToHashCode(url) + ".apk";
+ DownloadEntity entity = new DownloadEntity();
entity.setDownloadUrl(url);
entity.setDownloadPath(getDownloadPath(url));
entity.setFileName(fileName);
diff --git a/app/src/main/java/com/arialyy/simple/multi_task/DownloadActivity.java b/app/src/main/java/com/arialyy/simple/multi_task/DownloadActivity.java
new file mode 100644
index 00000000..7e6652e4
--- /dev/null
+++ b/app/src/main/java/com/arialyy/simple/multi_task/DownloadActivity.java
@@ -0,0 +1,86 @@
+package com.arialyy.simple.multi_task;
+
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import butterknife.Bind;
+import com.arialyy.aria.core.Aria;
+import com.arialyy.aria.core.task.Task;
+import com.arialyy.frame.util.show.L;
+import com.arialyy.simple.R;
+import com.arialyy.simple.base.BaseActivity;
+import com.arialyy.simple.databinding.ActivityDownloadBinding;
+
+/**
+ * Created by AriaL on 2017/1/6.
+ */
+
+public class DownloadActivity extends BaseActivity {
+ @Bind(R.id.list) RecyclerView mList;
+ private DownloadAdapter mAdapter;
+
+ @Override protected int setLayoutId() {
+ return R.layout.activity_download;
+ }
+
+ @Override protected void init(Bundle savedInstanceState) {
+ super.init(savedInstanceState);
+ mAdapter = new DownloadAdapter(this, Aria.get(this).getDownloadList());
+ mList.setLayoutManager(new LinearLayoutManager(this));
+ mList.setAdapter(mAdapter);
+ }
+
+ @Override protected void dataCallback(int result, Object data) {
+
+ }
+
+ @Override protected void onResume() {
+ super.onResume();
+ Aria.whit(this).addSchedulerListener(new MySchedulerListener());
+ }
+
+ private class MySchedulerListener extends Aria.SimpleSchedulerListener {
+ @Override public void onTaskPre(Task task) {
+ super.onTaskPre(task);
+ L.d(TAG, "download pre");
+ mAdapter.updateState(task.getDownloadEntity());
+ }
+
+ @Override public void onTaskStart(Task task) {
+ super.onTaskStart(task);
+ L.d(TAG, "download start");
+ mAdapter.updateState(task.getDownloadEntity());
+ }
+
+ @Override public void onTaskResume(Task task) {
+ super.onTaskResume(task);
+ L.d(TAG, "download resume");
+ mAdapter.updateState(task.getDownloadEntity());
+ }
+
+ @Override public void onTaskRunning(Task task) {
+ super.onTaskRunning(task);
+ mAdapter.setProgress(task.getDownloadEntity());
+ }
+
+ @Override public void onTaskStop(Task task) {
+ super.onTaskStop(task);
+ mAdapter.updateState(task.getDownloadEntity());
+ }
+
+ @Override public void onTaskCancel(Task task) {
+ super.onTaskCancel(task);
+ mAdapter.updateState(task.getDownloadEntity());
+ }
+
+ @Override public void onTaskComplete(Task task) {
+ super.onTaskComplete(task);
+ mAdapter.updateState(task.getDownloadEntity());
+ }
+
+ @Override public void onTaskFail(Task task) {
+ super.onTaskFail(task);
+ L.d(TAG, "download fail");
+ }
+ }
+}
diff --git a/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java b/app/src/main/java/com/arialyy/simple/multi_task/DownloadAdapter.java
similarity index 78%
rename from app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java
rename to app/src/main/java/com/arialyy/simple/multi_task/DownloadAdapter.java
index 02b26c9a..4ee18fde 100644
--- a/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java
+++ b/app/src/main/java/com/arialyy/simple/multi_task/DownloadAdapter.java
@@ -14,12 +14,10 @@
* limitations under the License.
*/
-
-package com.arialyy.simple.adapter;
+package com.arialyy.simple.multi_task;
import android.content.Context;
import android.content.res.Resources;
-import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
@@ -40,16 +38,15 @@ import java.util.concurrent.ConcurrentHashMap;
* Created by Lyy on 2016/9/27.
* 下载列表适配器
*/
-public class DownloadAdapter extends AbsRVAdapter {
- private static final String TAG = "DownloadAdapter";
- private Map mPositions = new ConcurrentHashMap<>();
+final class DownloadAdapter extends AbsRVAdapter {
+ private static final String TAG = "DownloadAdapter";
+ private Map mPositions = new ConcurrentHashMap<>();
- public DownloadAdapter(Context context, List data) {
+ DownloadAdapter(Context context, List data) {
super(context, data);
- int i = 0;
+ int i = 0;
for (DownloadEntity entity : data) {
mPositions.put(entity.getDownloadUrl(), i);
- Aria.whit(getContext()).load(entity).add();
i++;
}
}
@@ -73,7 +70,7 @@ public class DownloadAdapter extends AbsRVAdapter keys = mPositions.keySet();
- for (String key : keys){
- if (key.equals(url)){
+ for (String key : keys) {
+ if (key.equals(url)) {
return mPositions.get(key);
}
}
@@ -103,16 +100,19 @@ public class DownloadAdapter extends AbsRVAdapter {
+
+ //SparseBooleanArray mBtStates = new SparseBooleanArray();
+ Map mBtStates = new ConcurrentHashMap<>();
+ private Map mPositions = new ConcurrentHashMap<>();
+
+ public FileListAdapter(Context context, List 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);
+ }
+ }
+
+ @Override protected FileListHolder getViewHolder(View convertView, int viewType) {
+ return new FileListHolder(convertView);
+ }
+
+ @Override protected int setLayoutId(int type) {
+ return R.layout.item_file_list;
+ }
+
+ @Override
+ protected void bindData(FileListHolder holder, int position, final FileListEntity item) {
+ holder.name.setText("文件名:" + item.name);
+ holder.url.setText("下载地址:" + item.downloadUrl);
+ holder.path.setText("保存路径:" + item.downloadPath);
+ if (mBtStates.get(item.downloadUrl)) {
+ 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.whit(getContext())
+ .load(item.downloadUrl)
+ .setDownloadName(item.name)
+ .setDownloadPath(item.downloadPath)
+ .start();
+ }
+ });
+ } else {
+ holder.bt.setEnabled(false);
+ }
+ }
+
+ public void updateBtState(String downloadUrl, boolean able) {
+ Set keys = mBtStates.keySet();
+ for (String key : keys) {
+ if (key.equals(downloadUrl)) {
+ Log.d(TAG, "able ==> " + able);
+ mBtStates.put(downloadUrl, able);
+ notifyItemChanged(indexItem(downloadUrl));
+ return;
+ }
+ }
+ }
+
+ private synchronized int indexItem(String url) {
+ Set keys = mPositions.keySet();
+ for (String key : keys) {
+ if (key.equals(url)) {
+ int index = mPositions.get(key);
+ Log.d(TAG, "index ==> " + index);
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ class FileListHolder extends AbsHolder {
+ @Bind(R.id.name) TextView name;
+ @Bind(R.id.download_url) TextView url;
+ @Bind(R.id.download_path) TextView path;
+ @Bind(R.id.bt) Button bt;
+
+ FileListHolder(View itemView) {
+ super(itemView);
+ }
+ }
+}
diff --git a/app/src/main/java/com/arialyy/simple/multi_task/FileListEntity.java b/app/src/main/java/com/arialyy/simple/multi_task/FileListEntity.java
new file mode 100644
index 00000000..15d584a8
--- /dev/null
+++ b/app/src/main/java/com/arialyy/simple/multi_task/FileListEntity.java
@@ -0,0 +1,9 @@
+package com.arialyy.simple.multi_task;
+
+/**
+ * Created by AriaL on 2017/1/6.
+ */
+
+public class FileListEntity {
+ public String name, downloadUrl, downloadPath;
+}
diff --git a/app/src/main/java/com/arialyy/simple/multi_task/MultiTaskActivity.java b/app/src/main/java/com/arialyy/simple/multi_task/MultiTaskActivity.java
new file mode 100644
index 00000000..c7546b24
--- /dev/null
+++ b/app/src/main/java/com/arialyy/simple/multi_task/MultiTaskActivity.java
@@ -0,0 +1,118 @@
+/*
+ * 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.simple.multi_task;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.Toolbar;
+import android.view.View;
+import butterknife.Bind;
+import com.arialyy.aria.core.Aria;
+import com.arialyy.aria.core.DownloadEntity;
+import com.arialyy.aria.core.task.Task;
+import com.arialyy.frame.util.show.L;
+import com.arialyy.simple.R;
+import com.arialyy.simple.base.BaseActivity;
+import com.arialyy.simple.databinding.ActivityMultiBinding;
+import com.arialyy.simple.module.DownloadModule;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by Lyy on 2016/9/27.
+ */
+public class MultiTaskActivity extends BaseActivity {
+ @Bind(R.id.list) RecyclerView mList;
+ @Bind(R.id.toolbar) Toolbar mBar;
+ private FileListAdapter mAdapter;
+ List mData = new ArrayList<>();
+
+ @Override protected int setLayoutId() {
+ return R.layout.activity_multi;
+ }
+
+ @Override protected void init(Bundle savedInstanceState) {
+ super.init(savedInstanceState);
+ setSupportActionBar(mBar);
+ mBar.setTitle("多任务下载");
+ mData.addAll(getModule(DownloadModule.class).createFileList());
+ mAdapter = new FileListAdapter(this, mData);
+ mList.setLayoutManager(new LinearLayoutManager(this));
+ mList.setAdapter(mAdapter);
+ }
+
+ public void onClick(View view) {
+ switch (view.getId()) {
+ case R.id.num:
+ DownloadNumDialog dialog = new DownloadNumDialog(this);
+ dialog.show(getSupportFragmentManager(), "download_num");
+ break;
+ case R.id.stop_all:
+ Aria.get(this).stopAllTask();
+ break;
+ case R.id.turn:
+ startActivity(new Intent(this, DownloadActivity.class));
+ break;
+ }
+ }
+
+ @Override protected void onResume() {
+ super.onResume();
+ Aria.whit(this).addSchedulerListener(new DownloadListener());
+ }
+
+ @Override protected void onDestroy() {
+ super.onDestroy();
+ //unregisterReceiver(mReceiver);
+ }
+
+ @Override protected void dataCallback(int result, Object data) {
+ super.dataCallback(result, data);
+ if (result == DownloadNumDialog.RESULT_CODE) {
+ Aria.get(this).setMaxDownloadNum(Integer.parseInt(data + ""));
+ }
+ }
+
+ private class DownloadListener extends Aria.SimpleSchedulerListener {
+
+ @Override public void onTaskStart(Task task) {
+ super.onTaskStart(task);
+ mAdapter.updateBtState(task.getDownloadUrl(), false);
+ }
+
+ @Override public void onTaskRunning(Task task) {
+ super.onTaskRunning(task);
+ }
+
+ @Override public void onTaskResume(Task task) {
+ super.onTaskResume(task);
+ mAdapter.updateBtState(task.getDownloadUrl(), false);
+ }
+
+ @Override public void onTaskStop(Task task) {
+ super.onTaskStop(task);
+ mAdapter.updateBtState(task.getDownloadUrl(), true);
+ }
+
+ @Override public void onTaskComplete(Task task) {
+ super.onTaskComplete(task);
+ mAdapter.updateBtState(task.getDownloadUrl(), true);
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/arialyy/simple/pop/DownloadPopupWindow.java b/app/src/main/java/com/arialyy/simple/pop_task/DownloadPopupWindow.java
similarity index 96%
rename from app/src/main/java/com/arialyy/simple/pop/DownloadPopupWindow.java
rename to app/src/main/java/com/arialyy/simple/pop_task/DownloadPopupWindow.java
index 20692903..444d6767 100644
--- a/app/src/main/java/com/arialyy/simple/pop/DownloadPopupWindow.java
+++ b/app/src/main/java/com/arialyy/simple/pop_task/DownloadPopupWindow.java
@@ -1,8 +1,7 @@
-package com.arialyy.simple.pop;
+package com.arialyy.simple.pop_task;
import android.content.Context;
import android.graphics.Color;
-import android.graphics.drawable.ClipDrawable;
import android.graphics.drawable.ColorDrawable;
import android.os.Environment;
import android.view.View;
@@ -15,7 +14,6 @@ import com.arialyy.aria.core.Aria;
import com.arialyy.aria.core.DownloadEntity;
import com.arialyy.aria.core.task.Task;
import com.arialyy.aria.util.CommonUtil;
-import com.arialyy.frame.core.AbsDialog;
import com.arialyy.frame.core.AbsPopupWindow;
import com.arialyy.simple.R;
import com.arialyy.simple.widget.HorizontalProgressBarWithNumber;
diff --git a/app/src/main/java/com/arialyy/simple/activity/SingleTaskActivity.java b/app/src/main/java/com/arialyy/simple/single_task/SingleTaskActivity.java
similarity index 97%
rename from app/src/main/java/com/arialyy/simple/activity/SingleTaskActivity.java
rename to app/src/main/java/com/arialyy/simple/single_task/SingleTaskActivity.java
index 2446f2db..b66ae0b4 100644
--- a/app/src/main/java/com/arialyy/simple/activity/SingleTaskActivity.java
+++ b/app/src/main/java/com/arialyy/simple/single_task/SingleTaskActivity.java
@@ -14,13 +14,11 @@
* limitations under the License.
*/
-package com.arialyy.simple.activity;
+package com.arialyy.simple.single_task;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
@@ -35,15 +33,12 @@ import butterknife.Bind;
import com.arialyy.aria.core.AMTarget;
import com.arialyy.aria.core.Aria;
import com.arialyy.aria.core.DownloadEntity;
-import com.arialyy.aria.core.DownloadManager;
import com.arialyy.aria.core.task.Task;
-import com.arialyy.aria.orm.DbEntity;
import com.arialyy.aria.util.CommonUtil;
import com.arialyy.frame.util.show.L;
import com.arialyy.simple.R;
import com.arialyy.simple.base.BaseActivity;
import com.arialyy.simple.databinding.ActivitySingleBinding;
-import com.arialyy.simple.module.DownloadModule;
import com.arialyy.simple.widget.HorizontalProgressBarWithNumber;
public class SingleTaskActivity extends BaseActivity {
diff --git a/app/src/main/res/layout/activity_download.xml b/app/src/main/res/layout/activity_download.xml
new file mode 100644
index 00000000..8fa600fe
--- /dev/null
+++ b/app/src/main/res/layout/activity_download.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_fragment.xml b/app/src/main/res/layout/activity_fragment.xml
new file mode 100644
index 00000000..9359917a
--- /dev/null
+++ b/app/src/main/res/layout/activity_fragment.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 87847e7a..464bb3a5 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -47,5 +47,14 @@
style="?buttonBarButtonStyle"
/>
+
+
diff --git a/app/src/main/res/layout/activity_multi.xml b/app/src/main/res/layout/activity_multi.xml
index 0414246c..9cdb5761 100644
--- a/app/src/main/res/layout/activity_multi.xml
+++ b/app/src/main/res/layout/activity_multi.xml
@@ -15,6 +15,7 @@
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:layout_above="@+id/num"
android:layout_below="@+id/toolbar"
/>
@@ -40,5 +41,17 @@
android:text="停止所有"
/>
+
+
+
diff --git a/app/src/main/res/layout/activity_single.xml b/app/src/main/res/layout/activity_single.xml
index 851b49dc..03aefd8f 100644
--- a/app/src/main/res/layout/activity_single.xml
+++ b/app/src/main/res/layout/activity_single.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
- tools:context="com.arialyy.simple.activity.SingleTaskActivity"
+ tools:context="com.arialyy.simple.single_task.SingleTaskActivity"
>
diff --git a/app/src/main/res/layout/fragment_download.xml b/app/src/main/res/layout/fragment_download.xml
new file mode 100644
index 00000000..1656210f
--- /dev/null
+++ b/app/src/main/res/layout/fragment_download.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_download.xml b/app/src/main/res/layout/item_download.xml
index 29ec955d..b5d3eaed 100644
--- a/app/src/main/res/layout/item_download.xml
+++ b/app/src/main/res/layout/item_download.xml
@@ -5,54 +5,86 @@
android:padding="16dp"
>
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_file_list.xml b/app/src/main/res/layout/item_file_list.xml
new file mode 100644
index 00000000..025afa98
--- /dev/null
+++ b/app/src/main/res/layout/item_file_list.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4599b7cc..dfa38c80 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -15,4 +15,21 @@
+
+
+ - 阴阳师
+ - 奇迹暖暖
+ - 幻影纹章
+ - 史上最坑爹的游戏10
+ - 鲜果消消乐
+
+
+
+ - http://g37.gdl.netease.com/onmyoji_netease.apk
+ - http://static.gaoshouyou.com/d/eb/f2/dfeba30541f209ab8a50d847fc1661ce.apk
+ - http://rs.0.gaoshouyou.com/d/51/46/58514d126c46b8a3f27fc8c7db3b09ec.apk
+ - http://rs.0.gaoshouyou.com/d/23/69/07238f952669727878d7a0e180534c8b.apk
+ - http://rs.0.gaoshouyou.com/d/e7/3d/73e716d3353de5b479fcf7da8d36a5ef.apk
+
+
diff --git a/img/download_img.gif b/img/download_img.gif
index b0556fe8..4ab3a99e 100644
Binary files a/img/download_img.gif and b/img/download_img.gif differ