refactor(download): 重构下载模块代码格式和逻辑实现
- 格式化 ChildHandleDialog 类代码缩进和空行 - 优化 ChildHandleDialog 中的 onClick 方法使用 if-else 替代 switch - 格式化 M3U8LiveDLoadActivity 类代码缩进和空行 - 优化 M3U8LiveDLoadActivity 中的菜单点击事件处理逻辑 - 格式化 M3U8VodDLoadActivity 类代码缩进和空行 - 添加必要的 import 语句和空行分隔 - 统一代码风格和提高可读性
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
apply plugin: 'com.android.library'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlin-kapt'
|
||||
plugins {
|
||||
id 'com.android.library'
|
||||
id 'org.jetbrains.kotlin.android'
|
||||
id 'kotlin-kapt'
|
||||
}
|
||||
|
||||
android {
|
||||
namespace "com.lyy.frame"
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
@@ -14,22 +18,35 @@ android {
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
buildTypes {
|
||||
debug{
|
||||
debuggable true
|
||||
}
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
dataBinding {
|
||||
enabled = true
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
dataBinding true
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
debuggable true
|
||||
}
|
||||
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -38,10 +55,12 @@ dependencies {
|
||||
exclude group: 'com.android.support', module: 'support-annotations'
|
||||
})
|
||||
testImplementation 'junit:junit:4.12'
|
||||
|
||||
api "androidx.appcompat:appcompat:${rootProject.ext.XAppcompatVersion}"
|
||||
api 'com.google.code.gson:gson:2.8.2'
|
||||
api 'io.reactivex:rxandroid:1.2.0'
|
||||
api 'io.reactivex:rxjava:1.1.5'
|
||||
|
||||
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
|
||||
implementation 'com.squareup.retrofit2:retrofit:2.1.0'
|
||||
implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
namespace "com.arialyy.aria"
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
@@ -10,19 +12,29 @@ android {
|
||||
versionCode rootProject.ext.versionCode
|
||||
versionName rootProject.ext.versionName
|
||||
}
|
||||
buildTypes {
|
||||
debug{
|
||||
debuggable true
|
||||
}
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
debuggable true
|
||||
}
|
||||
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
testImplementation 'junit:junit:4.12'
|
||||
@@ -33,7 +45,7 @@ dependencies {
|
||||
}
|
||||
|
||||
//apply from: 'bintray-release.gradle'
|
||||
ext{
|
||||
ext {
|
||||
PUBLISH_ARTIFACT_ID = 'core'
|
||||
}
|
||||
apply from: '../gradle/mavenCentral-release.gradle'
|
||||
@@ -4,16 +4,16 @@ tasks.withType(JavaCompile) {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
sourceCompatibility = JavaVersion.VERSION_1_7
|
||||
targetCompatibility = JavaVersion.VERSION_1_7
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
|
||||
dependencies {
|
||||
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
}
|
||||
|
||||
//apply from: 'bintray-release.gradle'
|
||||
|
||||
ext{
|
||||
ext {
|
||||
PUBLISH_ARTIFACT_ID = 'annotations'
|
||||
}
|
||||
apply from: '../gradle/mavenCentral-release.gradle'
|
||||
@@ -3,8 +3,8 @@ apply plugin: 'java'
|
||||
tasks.withType(JavaCompile) {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
sourceCompatibility = JavaVersion.VERSION_1_7
|
||||
targetCompatibility = JavaVersion.VERSION_1_7
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
@@ -16,7 +16,7 @@ dependencies {
|
||||
}
|
||||
|
||||
//apply from: 'bintray-release.gradle'
|
||||
ext{
|
||||
ext {
|
||||
PUBLISH_ARTIFACT_ID = 'compiler'
|
||||
}
|
||||
apply from: '../gradle/mavenCentral-release.gradle'
|
||||
@@ -1,6 +1,8 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
namespace "com.example.ariaftpcomponent"
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
@@ -14,19 +16,25 @@ android {
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug{
|
||||
debug {
|
||||
debuggable true
|
||||
}
|
||||
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -36,7 +44,7 @@ dependencies {
|
||||
}
|
||||
|
||||
//apply from: 'bintray-release.gradle'
|
||||
ext{
|
||||
ext {
|
||||
PUBLISH_ARTIFACT_ID = 'ftp'
|
||||
}
|
||||
apply from: '../gradle/mavenCentral-release.gradle'
|
||||
@@ -1,6 +1,8 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
namespace "com.arialyy.aria.http"
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
@@ -13,18 +15,25 @@ android {
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug{
|
||||
debug {
|
||||
debuggable true
|
||||
}
|
||||
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -35,7 +44,7 @@ dependencies {
|
||||
}
|
||||
|
||||
//apply from: 'bintray-release.gradle'
|
||||
ext{
|
||||
ext {
|
||||
PUBLISH_ARTIFACT_ID = 'http'
|
||||
}
|
||||
apply from: '../gradle/mavenCentral-release.gradle'
|
||||
@@ -1,2 +1 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.arialyy.aria.http" />
|
||||
<manifest package="com.arialyy.aria.http" />
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
namespace "com.arialyy.aria.m3u8"
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
@@ -14,18 +16,25 @@ android {
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug{
|
||||
debug {
|
||||
debuggable true
|
||||
}
|
||||
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,7 +46,7 @@ dependencies {
|
||||
}
|
||||
|
||||
//apply from: 'bintray-release.gradle'
|
||||
ext{
|
||||
ext {
|
||||
PUBLISH_ARTIFACT_ID = 'm3u8'
|
||||
}
|
||||
apply from: '../gradle/mavenCentral-release.gradle'
|
||||
@@ -1,2 +1 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.arialyy.aria.m3u8" />
|
||||
<manifest package="com.arialyy.aria.m3u8" />
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
namespace "com.arialyy.aria.publiccomponent"
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
@@ -14,20 +16,26 @@ android {
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug{
|
||||
debug {
|
||||
debuggable true
|
||||
}
|
||||
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -36,7 +44,7 @@ dependencies {
|
||||
}
|
||||
|
||||
//apply from: 'bintray-release.gradle'
|
||||
ext{
|
||||
ext {
|
||||
PUBLISH_ARTIFACT_ID = 'public'
|
||||
}
|
||||
apply from: '../gradle/mavenCentral-release.gradle'
|
||||
@@ -1,6 +1,8 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
namespace "com.arialyy.aria.sftp"
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
@@ -14,18 +16,25 @@ android {
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug{
|
||||
debug {
|
||||
debuggable true
|
||||
}
|
||||
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -38,7 +47,7 @@ dependencies {
|
||||
}
|
||||
|
||||
//apply from: 'bintray-release.gradle'
|
||||
ext{
|
||||
ext {
|
||||
PUBLISH_ARTIFACT_ID = 'sftp'
|
||||
}
|
||||
apply from: '../gradle/mavenCentral-release.gradle'
|
||||
@@ -1,2 +1 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.arialyy.aria.sftp" />
|
||||
<manifest package="com.arialyy.aria.sftp" />
|
||||
|
||||
@@ -5,13 +5,17 @@ plugins {
|
||||
}
|
||||
|
||||
android {
|
||||
namespace "com.arialyy.simple"
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.arialyy.simple"
|
||||
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
multiDexEnabled true
|
||||
@@ -20,6 +24,25 @@ android {
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
dataBinding true
|
||||
buildConfig true
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
storeFile file("lyy.keystore")
|
||||
@@ -35,6 +58,7 @@ android {
|
||||
debuggable true
|
||||
minifyEnabled false //混淆
|
||||
}
|
||||
|
||||
release {
|
||||
zipAlignEnabled true
|
||||
minifyEnabled true
|
||||
@@ -43,18 +67,11 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
dataBinding {
|
||||
enabled = true
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
exclude 'META-INF/services/javax.annotation.processing.Processor'
|
||||
merge 'META-INF/services/com.arialyy.aria.core.inf.IUtil'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -65,16 +82,18 @@ dependencies {
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.0'
|
||||
|
||||
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'
|
||||
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'com.google.android.material:material:1.0.0'
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:${rootProject.ext.kotlin_version}"
|
||||
api 'com.github.PhilJay:MPAndroidChart:v3.0.3'
|
||||
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.4'
|
||||
|
||||
implementation 'com.github.bumptech.glide:glide:3.7.0'
|
||||
implementation 'com.pddstudio:highlightjs-android:1.5.0'
|
||||
implementation 'org.greenrobot:eventbus:3.1.1'
|
||||
implementation project(':AppFrame')
|
||||
|
||||
implementation project(':AppFrame')
|
||||
// aria
|
||||
kapt project(':AriaCompiler')
|
||||
implementation project(':Aria')
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:sharedUserId="com.arialyy"
|
||||
package="com.arialyy.simple">
|
||||
package="com.arialyy.simple"
|
||||
android:sharedUserId="com.arialyy">
|
||||
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
|
||||
<application
|
||||
android:name="com.arialyy.simple.base.BaseApplication"
|
||||
@@ -19,6 +25,7 @@
|
||||
<!--android:name=".MainActivity"-->
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
android:label="@string/app_name">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
@@ -27,7 +34,7 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".core.download.fragment.MultiFragmentActivity"/>
|
||||
<activity android:name=".core.download.fragment.MultiFragmentActivity" />
|
||||
<activity android:name=".core.upload.SFtpUploadActivity" />
|
||||
<activity android:name=".core.download.SFtpDownloadActivity" />
|
||||
<activity android:name=".core.download.DownloadActivity" />
|
||||
@@ -61,12 +68,10 @@
|
||||
android:resource="@xml/aria_fileprovider_paths" />
|
||||
</provider>
|
||||
|
||||
<service android:name=".core.download.service.DownloadService" />
|
||||
</application>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<service
|
||||
android:name=".core.download.service.DownloadService"
|
||||
android:exported="false" />
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
||||
@@ -3,12 +3,14 @@ package com.arialyy.simple;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
|
||||
import com.arialyy.aria.core.common.AbsEntity;
|
||||
import com.arialyy.aria.core.download.DTaskWrapper;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
import com.arialyy.aria.orm.DbEntity;
|
||||
import com.arialyy.simple.base.BaseActivity;
|
||||
import com.arialyy.simple.databinding.ActivityDbTestBinding;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
@@ -25,15 +27,13 @@ public class DbTestActivity extends BaseActivity<ActivityDbTestBinding> {
|
||||
}
|
||||
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.insert:
|
||||
int id = view.getId();
|
||||
if (id == R.id.insert) {
|
||||
insertManyRecord(10000);
|
||||
break;
|
||||
case R.id.search:
|
||||
break;
|
||||
case R.id.search_all:
|
||||
} else if (id == R.id.search) {
|
||||
|
||||
} else if (id == R.id.search_all) {
|
||||
searchAll();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import android.os.Environment;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
@@ -49,7 +50,8 @@ public class DownloadDialog extends AbsDialog implements View.OnClickListener {
|
||||
init();
|
||||
}
|
||||
|
||||
@Override protected int setLayoutId() {
|
||||
@Override
|
||||
protected int setLayoutId() {
|
||||
return R.layout.dialog_download;
|
||||
}
|
||||
|
||||
@@ -74,15 +76,15 @@ public class DownloadDialog extends AbsDialog implements View.OnClickListener {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
int id = view.getId();
|
||||
if (id == R.id.start) {
|
||||
if (mTaskId == -1) {
|
||||
mTaskId = Aria.download(this)
|
||||
.load(DOWNLOAD_URL)
|
||||
.setFilePath(Environment.getExternalStorageDirectory().getPath() + "/女神危机.apk")
|
||||
.create();
|
||||
mStart.setText(getContext().getString(R.string.stop));
|
||||
break;
|
||||
return;
|
||||
}
|
||||
if (Aria.download(this).load(mTaskId).isRunning()) {
|
||||
Aria.download(this).load(mTaskId).stop();
|
||||
@@ -91,37 +93,39 @@ public class DownloadDialog extends AbsDialog implements View.OnClickListener {
|
||||
Aria.download(this).load(mTaskId).resume();
|
||||
mStart.setText(getContext().getString(R.string.stop));
|
||||
}
|
||||
break;
|
||||
|
||||
case R.id.cancel:
|
||||
} else if (id == R.id.cancel) {
|
||||
Aria.download(this).load(mTaskId).cancel();
|
||||
mTaskId = -1;
|
||||
mStart.setText(getContext().getString(R.string.start));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Download.onTaskPre public void onTaskPre(DownloadTask task) {
|
||||
@Download.onTaskPre
|
||||
public void onTaskPre(DownloadTask task) {
|
||||
mSize.setText(CommonUtil.formatFileSize(task.getFileSize()));
|
||||
}
|
||||
|
||||
@Download.onTaskStop public void onTaskStop(DownloadTask task) {
|
||||
@Download.onTaskStop
|
||||
public void onTaskStop(DownloadTask task) {
|
||||
mSpeed.setText(task.getConvertSpeed());
|
||||
}
|
||||
|
||||
@Download.onTaskCancel public void onTaskCancel(DownloadTask task) {
|
||||
@Download.onTaskCancel
|
||||
public void onTaskCancel(DownloadTask task) {
|
||||
mPb.setProgress(0);
|
||||
mSpeed.setText(task.getConvertSpeed());
|
||||
}
|
||||
|
||||
@Download.onTaskRunning public void onTaskRunning(DownloadTask task) {
|
||||
@Download.onTaskRunning
|
||||
public void onTaskRunning(DownloadTask task) {
|
||||
if (task.getKey().equals(DOWNLOAD_URL)) {
|
||||
mPb.setProgress(task.getPercent());
|
||||
mSpeed.setText(task.getConvertSpeed());
|
||||
}
|
||||
}
|
||||
|
||||
@Override protected void dataCallback(int result, Object obj) {
|
||||
@Override
|
||||
protected void dataCallback(int result, Object obj) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
@@ -19,7 +20,8 @@ import com.arialyy.simple.util.AppUtil;
|
||||
/**
|
||||
* Created by lyy on 2017/8/8.
|
||||
*/
|
||||
@SuppressLint("ValidFragment") public class DownloadDialogFragment
|
||||
@SuppressLint("ValidFragment")
|
||||
public class DownloadDialogFragment
|
||||
extends BaseDialog<DialogFragmentDownloadBinding> implements View.OnClickListener {
|
||||
|
||||
private DownloadEntity mEntity;
|
||||
@@ -31,7 +33,8 @@ import com.arialyy.simple.util.AppUtil;
|
||||
super(obj);
|
||||
}
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
@Override
|
||||
protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
Aria.download(this).register();
|
||||
mEntity = Aria.download(this).getFirstDownloadEntity(DOWNLOAD_URL);
|
||||
@@ -49,23 +52,28 @@ import com.arialyy.simple.util.AppUtil;
|
||||
mRootView.findViewById(R.id.cancel).setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override protected int setLayoutId() {
|
||||
@Override
|
||||
protected int setLayoutId() {
|
||||
return R.layout.dialog_fragment_download;
|
||||
}
|
||||
|
||||
@Override public void onDestroy() {
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
Aria.download(this).unRegister();
|
||||
}
|
||||
|
||||
@Download.onPre(DOWNLOAD_URL) protected void onPre(DownloadTask task) {
|
||||
@Download.onPre(DOWNLOAD_URL)
|
||||
protected void onPre(DownloadTask task) {
|
||||
}
|
||||
|
||||
@Download.onTaskStart(DOWNLOAD_URL) void taskStart(DownloadTask task) {
|
||||
@Download.onTaskStart(DOWNLOAD_URL)
|
||||
void taskStart(DownloadTask task) {
|
||||
getBinding().setFileSize(task.getConvertFileSize());
|
||||
}
|
||||
|
||||
@Download.onTaskRunning(DOWNLOAD_URL) protected void running(DownloadTask task) {
|
||||
@Download.onTaskRunning(DOWNLOAD_URL)
|
||||
protected void running(DownloadTask task) {
|
||||
long len = task.getFileSize();
|
||||
if (len == 0) {
|
||||
getBinding().setProgress(0);
|
||||
@@ -75,39 +83,44 @@ import com.arialyy.simple.util.AppUtil;
|
||||
getBinding().setSpeed(task.getConvertSpeed());
|
||||
}
|
||||
|
||||
@Download.onTaskResume(DOWNLOAD_URL) void taskResume(DownloadTask task) {
|
||||
@Download.onTaskResume(DOWNLOAD_URL)
|
||||
void taskResume(DownloadTask task) {
|
||||
}
|
||||
|
||||
@Download.onTaskStop(DOWNLOAD_URL) void taskStop(DownloadTask task) {
|
||||
@Download.onTaskStop(DOWNLOAD_URL)
|
||||
void taskStop(DownloadTask task) {
|
||||
getBinding().setSpeed("");
|
||||
}
|
||||
|
||||
@Download.onTaskCancel(DOWNLOAD_URL) void taskCancel(DownloadTask task) {
|
||||
@Download.onTaskCancel(DOWNLOAD_URL)
|
||||
void taskCancel(DownloadTask task) {
|
||||
getBinding().setProgress(0);
|
||||
Toast.makeText(getContext(), "取消下载", Toast.LENGTH_SHORT).show();
|
||||
getBinding().setSpeed("");
|
||||
}
|
||||
|
||||
@Download.onTaskFail(DOWNLOAD_URL) void taskFail(DownloadTask task) {
|
||||
@Download.onTaskFail(DOWNLOAD_URL)
|
||||
void taskFail(DownloadTask task) {
|
||||
Toast.makeText(getContext(), "下载失败", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
@Download.onTaskComplete(DOWNLOAD_URL) void taskComplete(DownloadTask task) {
|
||||
@Download.onTaskComplete(DOWNLOAD_URL)
|
||||
void taskComplete(DownloadTask task) {
|
||||
getBinding().setProgress(100);
|
||||
Toast.makeText(getContext(), "下载完成", Toast.LENGTH_SHORT).show();
|
||||
getBinding().setSpeed("");
|
||||
}
|
||||
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
int id = view.getId();
|
||||
if (id == R.id.start) {
|
||||
if (!AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this)
|
||||
.load(DOWNLOAD_URL)
|
||||
.setFilePath(Environment.getExternalStorageDirectory().getPath() + "/放置江湖.apk")
|
||||
.create();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
break;
|
||||
return;
|
||||
}
|
||||
if (Aria.download(this).load(mEntity.getId()).isRunning()) {
|
||||
Aria.download(this).load(mEntity.getId()).stop();
|
||||
@@ -116,13 +129,10 @@ import com.arialyy.simple.util.AppUtil;
|
||||
Aria.download(this).load(mEntity.getId()).resume();
|
||||
getBinding().setStateStr(getString(R.string.stop));
|
||||
}
|
||||
break;
|
||||
|
||||
case R.id.cancel:
|
||||
} else if (id == R.id.cancel) {
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this).load(mEntity.getId()).cancel();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import android.os.Environment;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
@@ -84,15 +85,15 @@ public class DownloadPopupWindow extends AbsPopupWindow implements View.OnClickL
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
int id = view.getId();
|
||||
if (id == R.id.start) {
|
||||
if (mTaskId != -1) {
|
||||
Aria.download(this)
|
||||
.load(DOWNLOAD_URL)
|
||||
.setFilePath(Environment.getExternalStorageDirectory().getPath() + "/消消乐.apk")
|
||||
.create();
|
||||
mStart.setText(getContext().getString(R.string.stop));
|
||||
break;
|
||||
return;
|
||||
}
|
||||
if (Aria.download(this).load(mTaskId).isRunning()) {
|
||||
Aria.download(this).load(mTaskId).stop();
|
||||
@@ -101,14 +102,10 @@ public class DownloadPopupWindow extends AbsPopupWindow implements View.OnClickL
|
||||
Aria.download(this).load(mTaskId).resume();
|
||||
mStart.setText(getContext().getString(R.string.stop));
|
||||
}
|
||||
break;
|
||||
|
||||
case R.id.cancel:
|
||||
|
||||
} else if (id == R.id.cancel) {
|
||||
Aria.download(this).load(mTaskId).cancel();
|
||||
mStart.setText(getContext().getResources().getString(R.string.start));
|
||||
mTaskId = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,8 +21,10 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.common.AbsEntity;
|
||||
@@ -36,6 +38,7 @@ import com.arialyy.simple.core.download.mutil.DownloadAdapter;
|
||||
import com.arialyy.simple.databinding.ActivityHighestPriorityBinding;
|
||||
import com.arialyy.simple.util.AppUtil;
|
||||
import com.arialyy.simple.widget.HorizontalProgressBarWithNumber;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -62,11 +65,13 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
private List<AbsEntity> mData = new ArrayList<>();
|
||||
private Set<String> mRecord = new HashSet<>();
|
||||
|
||||
@Override protected int setLayoutId() {
|
||||
@Override
|
||||
protected int setLayoutId() {
|
||||
return R.layout.activity_highest_priority;
|
||||
}
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
@Override
|
||||
protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
mPb = findViewById(R.id.progressBar);
|
||||
mStart = findViewById(R.id.start);
|
||||
@@ -110,14 +115,16 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
mList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
@Override public boolean onCreateOptionsMenu(Menu menu) {
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.menu_highest_priority, menu);
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.add_task:
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
int itemId = item.getItemId();
|
||||
if (itemId == R.id.add_task) {
|
||||
List<DownloadEntity> temp = getModule(DownloadModule.class).getHighestTestList();
|
||||
for (DownloadEntity entity : temp) {
|
||||
String url = entity.getUrl();
|
||||
@@ -128,8 +135,7 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
mRecord.add(url);
|
||||
}
|
||||
mAdapter.notifyDataSetChanged();
|
||||
break;
|
||||
case R.id.help:
|
||||
} else if (itemId == R.id.help) {
|
||||
String title = "最高优先级任务介绍";
|
||||
String msg = " 将任务设置为最高优先级任务,最高优先级任务有以下特点:\n"
|
||||
+ " 1、在下载队列中,有且只有一个最高优先级任务\n"
|
||||
@@ -139,14 +145,13 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
+ " 5、如果下载队列中已经满了,则会停止队尾的任务,当高优先级任务完成后,该队尾任务将自动执行\n"
|
||||
+ " 6、把任务设置为最高优先级任务后,将自动执行任务,不需要重新调用start()启动任务";
|
||||
showMsgDialog(title, msg);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
int id = view.getId();
|
||||
if (id == R.id.start) {
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
String text = ((TextView) view).getText().toString();
|
||||
if (text.equals("重新开始?") || text.equals("开始")) {
|
||||
@@ -155,18 +160,15 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
}
|
||||
}
|
||||
((TextView) view).setText(getString(R.string.stop));
|
||||
break;
|
||||
case R.id.stop:
|
||||
} else if (id == R.id.stop) {
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this).load(mEntity.getId()).stop();
|
||||
}
|
||||
((TextView) view).setText(getString(R.string.resume));
|
||||
break;
|
||||
case R.id.cancel:
|
||||
} else if (id == R.id.cancel) {
|
||||
if (AppUtil.chekEntityValid(mEntity)) {
|
||||
Aria.download(this).load(mEntity.getId()).cancel();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,32 +180,37 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
mStop.setEnabled(!state);
|
||||
}
|
||||
|
||||
@Download.onPre public void onPre(DownloadTask task) {
|
||||
@Download.onPre
|
||||
public void onPre(DownloadTask task) {
|
||||
mAdapter.updateState(task.getDownloadEntity());
|
||||
}
|
||||
|
||||
@Download.onTaskPre public void onTaskPre(DownloadTask task) {
|
||||
@Download.onTaskPre
|
||||
public void onTaskPre(DownloadTask task) {
|
||||
if (task.getKey().equals(DOWNLOAD_URL)) {
|
||||
mSize.setText(task.getConvertFileSize());
|
||||
}
|
||||
mAdapter.updateState(task.getDownloadEntity());
|
||||
}
|
||||
|
||||
@Download.onTaskStart public void onTaskStart(DownloadTask task) {
|
||||
@Download.onTaskStart
|
||||
public void onTaskStart(DownloadTask task) {
|
||||
if (task.getKey().equals(DOWNLOAD_URL)) {
|
||||
setBtState(false);
|
||||
}
|
||||
mAdapter.updateState(task.getDownloadEntity());
|
||||
}
|
||||
|
||||
@Download.onTaskResume public void onTaskResume(DownloadTask task) {
|
||||
@Download.onTaskResume
|
||||
public void onTaskResume(DownloadTask task) {
|
||||
if (task.getKey().equals(DOWNLOAD_URL)) {
|
||||
setBtState(false);
|
||||
}
|
||||
mAdapter.updateState(task.getDownloadEntity());
|
||||
}
|
||||
|
||||
@Download.onTaskStop public void onTaskStop(DownloadTask task) {
|
||||
@Download.onTaskStop
|
||||
public void onTaskStop(DownloadTask task) {
|
||||
if (task.getKey().equals(DOWNLOAD_URL)) {
|
||||
setBtState(true);
|
||||
mStart.setText("恢复");
|
||||
@@ -212,7 +219,8 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
mAdapter.updateState(task.getDownloadEntity());
|
||||
}
|
||||
|
||||
@Download.onTaskCancel public void onTaskCancel(DownloadTask task) {
|
||||
@Download.onTaskCancel
|
||||
public void onTaskCancel(DownloadTask task) {
|
||||
if (task.getKey().equals(DOWNLOAD_URL)) {
|
||||
setBtState(true);
|
||||
mStart.setText("开始");
|
||||
@@ -221,7 +229,8 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
mAdapter.updateState(task.getDownloadEntity());
|
||||
}
|
||||
|
||||
@Download.onTaskFail public void onTaskFail(DownloadTask task) {
|
||||
@Download.onTaskFail
|
||||
public void onTaskFail(DownloadTask task) {
|
||||
if (task.getKey().equals(DOWNLOAD_URL)) {
|
||||
setBtState(true);
|
||||
} else {
|
||||
@@ -229,7 +238,8 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
}
|
||||
}
|
||||
|
||||
@Download.onTaskComplete public void onTaskComplete(DownloadTask task) {
|
||||
@Download.onTaskComplete
|
||||
public void onTaskComplete(DownloadTask task) {
|
||||
if (task.getKey().equals(DOWNLOAD_URL)) {
|
||||
setBtState(true);
|
||||
mStart.setText("重新开始");
|
||||
@@ -239,7 +249,8 @@ public class HighestPriorityActivity extends BaseActivity<ActivityHighestPriorit
|
||||
mAdapter.updateState(task.getDownloadEntity());
|
||||
}
|
||||
|
||||
@Download.onTaskRunning public void onTaskRunning(DownloadTask task) {
|
||||
@Download.onTaskRunning
|
||||
public void onTaskRunning(DownloadTask task) {
|
||||
if (task.getKey().equals(DOWNLOAD_URL)) {
|
||||
mPb.setProgress(task.getPercent());
|
||||
mSpeed.setText(task.getConvertSpeed());
|
||||
|
||||
@@ -26,28 +26,27 @@ import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProviders;
|
||||
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.common.AbsEntity;
|
||||
import com.arialyy.aria.core.common.HttpOption;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
import com.arialyy.aria.core.download.DownloadTaskListener;
|
||||
import com.arialyy.aria.core.download.target.HttpNormalTarget;
|
||||
import com.arialyy.aria.core.listener.ISchedulers;
|
||||
import com.arialyy.aria.core.processor.IHttpFileLenAdapter;
|
||||
import com.arialyy.aria.core.scheduler.NormalTaskListenerInterface;
|
||||
import com.arialyy.aria.core.task.DownloadTask;
|
||||
import com.arialyy.aria.util.ALog;
|
||||
import com.arialyy.aria.util.CommonUtil;
|
||||
import com.arialyy.aria.util.FileUtil;
|
||||
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 com.arialyy.simple.widget.ProgressLayout;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -93,7 +92,8 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
mModule = ViewModelProviders.of(this).get(HttpDownloadModule.class);
|
||||
mModule.getHttpDownloadInfo(this).observe(this, new Observer<DownloadEntity>() {
|
||||
|
||||
@Override public void onChanged(@Nullable DownloadEntity entity) {
|
||||
@Override
|
||||
public void onChanged(@Nullable DownloadEntity entity) {
|
||||
if (entity == null) {
|
||||
return;
|
||||
}
|
||||
@@ -104,23 +104,27 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
}
|
||||
});
|
||||
getBinding().pl.setBtListener(new ProgressLayout.OnProgressLayoutBtListener() {
|
||||
@Override public void create(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void create(View v, AbsEntity entity) {
|
||||
startD();
|
||||
}
|
||||
|
||||
@Override public void stop(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void stop(View v, AbsEntity entity) {
|
||||
Aria.download(this)
|
||||
.load(mTaskId)
|
||||
.stop();
|
||||
}
|
||||
|
||||
@Override public void resume(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void resume(View v, AbsEntity entity) {
|
||||
Aria.download(this).load(mTaskId)
|
||||
//.updateUrl(mUrl)
|
||||
.resume();
|
||||
}
|
||||
|
||||
@Override public void cancel(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void cancel(View v, AbsEntity entity) {
|
||||
Aria.download(this).load(mTaskId).cancel(false);
|
||||
// //1. 删除本地文件目录
|
||||
// File localDirFile = new File(mFilePath);
|
||||
@@ -155,29 +159,23 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
int speed = -1;
|
||||
String msg = "";
|
||||
switch (item.getItemId()) {
|
||||
case R.id.help:
|
||||
int itemId = item.getItemId();
|
||||
if (itemId == R.id.help) {
|
||||
msg = "一些小知识点:\n"
|
||||
+ "1、你可以在注解中增加链接,用于指定被注解的方法只能被特定的下载任务回调,以防止progress乱跳\n"
|
||||
+ "2、当遇到网络慢的情况时,你可以先使用onPre()更新UI界面,待连接成功时,再在onTaskPre()获取完整的task数据,然后给UI界面设置正确的数据\n"
|
||||
+ "3、你可以在界面初始化时通过Aria.download(this).load(URL).getPercent()等方法快速获取相关任务的一些数据";
|
||||
showMsgDialog("tip", msg);
|
||||
break;
|
||||
case R.id.speed_0:
|
||||
} else if (itemId == R.id.speed_0) {
|
||||
speed = 0;
|
||||
break;
|
||||
case R.id.speed_128:
|
||||
} else if (itemId == R.id.speed_128) {
|
||||
speed = 128;
|
||||
break;
|
||||
case R.id.speed_256:
|
||||
} else if (itemId == R.id.speed_256) {
|
||||
speed = 256;
|
||||
break;
|
||||
case R.id.speed_512:
|
||||
} else if (itemId == R.id.speed_512) {
|
||||
speed = 512;
|
||||
break;
|
||||
case R.id.speed_1m:
|
||||
} else if (itemId == R.id.speed_1m) {
|
||||
speed = 1024;
|
||||
break;
|
||||
}
|
||||
if (speed > -1) {
|
||||
msg = item.getTitle().toString();
|
||||
@@ -299,12 +297,14 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
||||
//Aria.download(this).unRegister();
|
||||
}
|
||||
|
||||
@Override public boolean dispatchTouchEvent(MotionEvent ev) {
|
||||
@Override
|
||||
public boolean dispatchTouchEvent(MotionEvent ev) {
|
||||
return super.dispatchTouchEvent(ev);
|
||||
}
|
||||
|
||||
static class FileLenAdapter implements IHttpFileLenAdapter {
|
||||
@Override public long handleFileLen(Map<String, List<String>> headers) {
|
||||
@Override
|
||||
public long handleFileLen(Map<String, List<String>> headers) {
|
||||
|
||||
List<String> sLength = headers.get("Content-Length");
|
||||
if (sLength == null || sLength.isEmpty()) {
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.arialyy.annotations.DownloadGroup;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
@@ -33,12 +34,14 @@ import com.arialyy.simple.R;
|
||||
import com.arialyy.simple.base.BaseDialog;
|
||||
import com.arialyy.simple.databinding.DialogSubTaskHandlerBinding;
|
||||
import com.arialyy.simple.widget.HorizontalProgressBarWithNumber;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by lyy on 2017/9/5.
|
||||
*/
|
||||
@SuppressLint("ValidFragment") public class ChildHandleDialog
|
||||
@SuppressLint("ValidFragment")
|
||||
public class ChildHandleDialog
|
||||
extends BaseDialog<DialogSubTaskHandlerBinding> implements View.OnClickListener {
|
||||
TextView mSub;
|
||||
TextView mGroup;
|
||||
@@ -57,13 +60,15 @@ import java.util.List;
|
||||
mChildName = childEntity.getFileName();
|
||||
}
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
@Override
|
||||
protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
Aria.download(getContext()).register();
|
||||
initWidget();
|
||||
}
|
||||
|
||||
@Override public void onDestroy() {
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
Aria.download(getContext()).unRegister();
|
||||
}
|
||||
@@ -88,25 +93,29 @@ import java.util.List;
|
||||
window.setWindowAnimations(R.style.dialogStyle);
|
||||
}
|
||||
|
||||
@DownloadGroup.onSubTaskRunning void onSubTaskRunning(DownloadGroupTask groupTask,
|
||||
@DownloadGroup.onSubTaskRunning
|
||||
void onSubTaskRunning(DownloadGroupTask groupTask,
|
||||
DownloadEntity subEntity) {
|
||||
if (!subEntity.getUrl().equals(mChildEntity.getUrl())) return;
|
||||
mPb.setProgress(subEntity.getPercent());
|
||||
}
|
||||
|
||||
@DownloadGroup.onSubTaskPre void onSubTaskPre(DownloadGroupTask groupTask,
|
||||
@DownloadGroup.onSubTaskPre
|
||||
void onSubTaskPre(DownloadGroupTask groupTask,
|
||||
DownloadEntity subEntity) {
|
||||
if (!subEntity.getUrl().equals(mChildEntity.getUrl())) return;
|
||||
L.d(TAG, subEntity.getPercent() + "");
|
||||
}
|
||||
|
||||
@DownloadGroup.onSubTaskStop void onSubTaskStop(DownloadGroupTask groupTask,
|
||||
@DownloadGroup.onSubTaskStop
|
||||
void onSubTaskStop(DownloadGroupTask groupTask,
|
||||
DownloadEntity subEntity) {
|
||||
if (!subEntity.getUrl().equals(mChildEntity.getUrl())) return;
|
||||
mSub.setText("子任务:" + mChildName + ",状态:任务停止");
|
||||
}
|
||||
|
||||
@DownloadGroup.onSubTaskStart void onSubTaskStart(DownloadGroupTask groupTask,
|
||||
@DownloadGroup.onSubTaskStart
|
||||
void onSubTaskStart(DownloadGroupTask groupTask,
|
||||
DownloadEntity subEntity) {
|
||||
if (!subEntity.getUrl().equals(mChildEntity.getUrl())) return;
|
||||
mSub.setText("子任务:" + mChildName + ",状态:下载中");
|
||||
@@ -118,45 +127,47 @@ import java.util.List;
|
||||
// mSub.setText("子任务:" + mChildName + ",状态:取消下载");
|
||||
//}
|
||||
|
||||
@DownloadGroup.onSubTaskComplete void onSubTaskComplete(DownloadGroupTask groupTask,
|
||||
@DownloadGroup.onSubTaskComplete
|
||||
void onSubTaskComplete(DownloadGroupTask groupTask,
|
||||
DownloadEntity subEntity) {
|
||||
if (!subEntity.getUrl().equals(mChildEntity.getUrl())) return;
|
||||
mSub.setText("子任务:" + mChildName + ",状态:任务完成");
|
||||
mPb.setProgress(100);
|
||||
}
|
||||
|
||||
@DownloadGroup.onSubTaskFail void onSubTaskFail(DownloadGroupTask groupTask,
|
||||
@DownloadGroup.onSubTaskFail
|
||||
void onSubTaskFail(DownloadGroupTask groupTask,
|
||||
DownloadEntity subEntity) {
|
||||
if (!subEntity.getUrl().equals(mChildEntity.getUrl())) return;
|
||||
L.d(TAG, subEntity.getPercent() + "");
|
||||
}
|
||||
|
||||
@Override protected int setLayoutId() {
|
||||
@Override
|
||||
protected int setLayoutId() {
|
||||
return R.layout.dialog_sub_task_handler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
int id = view.getId();
|
||||
if (id == R.id.start) {
|
||||
Aria.download(getContext())
|
||||
.loadGroup(mUrls)
|
||||
.getSubTaskManager()
|
||||
.startSubTask(mChildEntity.getUrl());
|
||||
break;
|
||||
case R.id.stop:
|
||||
} else if (id == R.id.stop) {
|
||||
Aria.download(getContext())
|
||||
.loadGroup(mUrls)
|
||||
.getSubTaskManager()
|
||||
.stopSubTask(mChildEntity.getUrl());
|
||||
break;
|
||||
//case R.id.cancel:
|
||||
// Aria.download(this).load(mUrls).getSubTaskManager().cancelSubTask(mChildEntity.getUrl());
|
||||
// break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override protected void dataCallback(int result, Object obj) {
|
||||
@Override
|
||||
protected void dataCallback(int result, Object obj) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,9 +22,11 @@ import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProviders;
|
||||
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.annotations.M3U8;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
@@ -43,6 +45,7 @@ import com.arialyy.simple.common.ModifyPathDialog;
|
||||
import com.arialyy.simple.common.ModifyUrlDialog;
|
||||
import com.arialyy.simple.databinding.ActivityM3u8LiveBinding;
|
||||
import com.arialyy.simple.widget.ProgressLayout;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class M3U8LiveDLoadActivity extends BaseActivity<ActivityM3u8LiveBinding> {
|
||||
@@ -60,7 +63,8 @@ public class M3U8LiveDLoadActivity extends BaseActivity<ActivityM3u8LiveBinding>
|
||||
mModule = ViewModelProviders.of(this).get(M3U8LiveModule.class);
|
||||
mModule.getHttpDownloadInfo(this).observe(this, new Observer<DownloadEntity>() {
|
||||
|
||||
@Override public void onChanged(@Nullable DownloadEntity entity) {
|
||||
@Override
|
||||
public void onChanged(@Nullable DownloadEntity entity) {
|
||||
if (entity == null) {
|
||||
return;
|
||||
}
|
||||
@@ -71,19 +75,23 @@ public class M3U8LiveDLoadActivity extends BaseActivity<ActivityM3u8LiveBinding>
|
||||
}
|
||||
});
|
||||
getBinding().pl.setBtListener(new ProgressLayout.OnProgressLayoutBtListener() {
|
||||
@Override public void create(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void create(View v, AbsEntity entity) {
|
||||
startD();
|
||||
}
|
||||
|
||||
@Override public void stop(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void stop(View v, AbsEntity entity) {
|
||||
Aria.download(this).load(mTaskId).stop();
|
||||
}
|
||||
|
||||
@Override public void resume(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void resume(View v, AbsEntity entity) {
|
||||
ALog.d(TAG, "m3u8 live 不支持恢复");
|
||||
}
|
||||
|
||||
@Override public void cancel(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void cancel(View v, AbsEntity entity) {
|
||||
Aria.download(this).load(mTaskId).cancel(true);
|
||||
mTaskId = -1;
|
||||
}
|
||||
@@ -100,29 +108,23 @@ public class M3U8LiveDLoadActivity extends BaseActivity<ActivityM3u8LiveBinding>
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
int speed = -1;
|
||||
String msg = "";
|
||||
switch (item.getItemId()) {
|
||||
case R.id.help:
|
||||
int itemId = item.getItemId();
|
||||
if (itemId == R.id.help) {
|
||||
msg = "一些小知识点:\n"
|
||||
+ "1、你可以在注解中增加链接,用于指定被注解的方法只能被特定的下载任务回调,以防止progress乱跳\n"
|
||||
+ "2、当遇到网络慢的情况时,你可以先使用onPre()更新UI界面,待连接成功时,再在onTaskPre()获取完整的task数据,然后给UI界面设置正确的数据\n"
|
||||
+ "3、你可以在界面初始化时通过Aria.download(this).load(URL).getPercent()等方法快速获取相关任务的一些数据";
|
||||
showMsgDialog("tip", msg);
|
||||
break;
|
||||
case R.id.speed_0:
|
||||
} else if (itemId == R.id.speed_0) {
|
||||
speed = 0;
|
||||
break;
|
||||
case R.id.speed_128:
|
||||
} else if (itemId == R.id.speed_128) {
|
||||
speed = 128;
|
||||
break;
|
||||
case R.id.speed_256:
|
||||
} else if (itemId == R.id.speed_256) {
|
||||
speed = 256;
|
||||
break;
|
||||
case R.id.speed_512:
|
||||
} else if (itemId == R.id.speed_512) {
|
||||
speed = 512;
|
||||
break;
|
||||
case R.id.speed_1m:
|
||||
} else if (itemId == R.id.speed_1m) {
|
||||
speed = 1024;
|
||||
break;
|
||||
}
|
||||
if (speed > -1) {
|
||||
msg = item.getTitle().toString();
|
||||
@@ -248,7 +250,8 @@ public class M3U8LiveDLoadActivity extends BaseActivity<ActivityM3u8LiveBinding>
|
||||
return option;
|
||||
}
|
||||
|
||||
@Override protected void dataCallback(int result, Object data) {
|
||||
@Override
|
||||
protected void dataCallback(int result, Object data) {
|
||||
super.dataCallback(result, data);
|
||||
if (result == ModifyUrlDialog.MODIFY_URL_DIALOG_RESULT) {
|
||||
mModule.uploadUrl(this, String.valueOf(data));
|
||||
@@ -258,7 +261,8 @@ public class M3U8LiveDLoadActivity extends BaseActivity<ActivityM3u8LiveBinding>
|
||||
}
|
||||
|
||||
static class LiveTsUrlConverter implements ILiveTsUrlConverter {
|
||||
@Override public String convert(String m3u8Url, String tsUrl) {
|
||||
@Override
|
||||
public String convert(String m3u8Url, String tsUrl) {
|
||||
int index = m3u8Url.lastIndexOf("/");
|
||||
String parentUrl = m3u8Url.substring(0, index + 1);
|
||||
return parentUrl + tsUrl;
|
||||
@@ -267,7 +271,8 @@ public class M3U8LiveDLoadActivity extends BaseActivity<ActivityM3u8LiveBinding>
|
||||
|
||||
static class BandWidthUrlConverter implements IBandWidthUrlConverter {
|
||||
|
||||
@Override public String convert(String m3u8Url, String bandWidthUrl) {
|
||||
@Override
|
||||
public String convert(String m3u8Url, String bandWidthUrl) {
|
||||
int peerIndex = m3u8Url.lastIndexOf("/");
|
||||
return m3u8Url.substring(0, peerIndex + 1) + bandWidthUrl;
|
||||
}
|
||||
|
||||
@@ -24,14 +24,15 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProviders;
|
||||
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.annotations.M3U8;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.common.AbsEntity;
|
||||
import com.arialyy.aria.core.common.HttpOption;
|
||||
import com.arialyy.aria.core.download.DownloadEntity;
|
||||
import com.arialyy.aria.core.download.M3U8Entity;
|
||||
import com.arialyy.aria.core.download.m3u8.M3U8VodOption;
|
||||
@@ -50,13 +51,14 @@ import com.arialyy.simple.common.ModifyUrlDialog;
|
||||
import com.arialyy.simple.databinding.ActivityM3u8VodBinding;
|
||||
import com.arialyy.simple.to.PeerIndex;
|
||||
import com.arialyy.simple.widget.ProgressLayout;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
|
||||
private String mUrl;
|
||||
@@ -73,7 +75,8 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
mModule = ViewModelProviders.of(this).get(M3U8VodModule.class);
|
||||
mModule.getHttpDownloadInfo(this).observe(this, new Observer<DownloadEntity>() {
|
||||
|
||||
@Override public void onChanged(@Nullable DownloadEntity entity) {
|
||||
@Override
|
||||
public void onChanged(@Nullable DownloadEntity entity) {
|
||||
if (entity == null) {
|
||||
return;
|
||||
}
|
||||
@@ -91,35 +94,42 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
}
|
||||
});
|
||||
getBinding().seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
||||
@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||
@Override
|
||||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||
|
||||
}
|
||||
|
||||
@Override public void onStartTrackingTouch(SeekBar seekBar) {
|
||||
@Override
|
||||
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||
|
||||
}
|
||||
|
||||
@Override public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
@Override
|
||||
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
Aria.download(this).load(mTaskId).m3u8VodOption().jumPeerIndex(seekBar.getProgress());
|
||||
}
|
||||
});
|
||||
getBinding().pl.setBtListener(new ProgressLayout.OnProgressLayoutBtListener() {
|
||||
@Override public void create(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void create(View v, AbsEntity entity) {
|
||||
startD();
|
||||
}
|
||||
|
||||
@Override public void stop(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void stop(View v, AbsEntity entity) {
|
||||
Aria.download(this).load(mTaskId).stop();
|
||||
}
|
||||
|
||||
@Override public void resume(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void resume(View v, AbsEntity entity) {
|
||||
Aria.download(this)
|
||||
.load(mTaskId)
|
||||
.m3u8VodOption(getM3U8Option())
|
||||
.resume();
|
||||
}
|
||||
|
||||
@Override public void cancel(View v, AbsEntity entity) {
|
||||
@Override
|
||||
public void cancel(View v, AbsEntity entity) {
|
||||
Aria.download(this).load(mTaskId).cancel(true);
|
||||
mTaskId = -1;
|
||||
}
|
||||
@@ -138,12 +148,14 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
dialog.show(getSupportFragmentManager(), "ModifyPathDialog");
|
||||
}
|
||||
|
||||
@Override protected void onStart() {
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
@Override protected void onStop() {
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
@@ -163,29 +175,23 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
int speed = -1;
|
||||
String msg = "";
|
||||
switch (item.getItemId()) {
|
||||
case R.id.help:
|
||||
int itemId = item.getItemId();
|
||||
if (itemId == R.id.help) {
|
||||
msg = "一些小知识点:\n"
|
||||
+ "1、你可以在注解中增加链接,用于指定被注解的方法只能被特定的下载任务回调,以防止progress乱跳\n"
|
||||
+ "2、当遇到网络慢的情况时,你可以先使用onPre()更新UI界面,待连接成功时,再在onTaskPre()获取完整的task数据,然后给UI界面设置正确的数据\n"
|
||||
+ "3、你可以在界面初始化时通过Aria.download(this).load(URL).getPercent()等方法快速获取相关任务的一些数据";
|
||||
showMsgDialog("tip", msg);
|
||||
break;
|
||||
case R.id.speed_0:
|
||||
} else if (itemId == R.id.speed_0) {
|
||||
speed = 0;
|
||||
break;
|
||||
case R.id.speed_128:
|
||||
} else if (itemId == R.id.speed_128) {
|
||||
speed = 128;
|
||||
break;
|
||||
case R.id.speed_256:
|
||||
} else if (itemId == R.id.speed_256) {
|
||||
speed = 256;
|
||||
break;
|
||||
case R.id.speed_512:
|
||||
} else if (itemId == R.id.speed_512) {
|
||||
speed = 512;
|
||||
break;
|
||||
case R.id.speed_1m:
|
||||
} else if (itemId == R.id.speed_1m) {
|
||||
speed = 1024;
|
||||
break;
|
||||
}
|
||||
if (speed > -1) {
|
||||
msg = item.getTitle().toString();
|
||||
@@ -319,7 +325,8 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
return option;
|
||||
}
|
||||
|
||||
@Override protected void dataCallback(int result, Object data) {
|
||||
@Override
|
||||
protected void dataCallback(int result, Object data) {
|
||||
super.dataCallback(result, data);
|
||||
if (result == ModifyUrlDialog.MODIFY_URL_DIALOG_RESULT) {
|
||||
mModule.uploadUrl(this, String.valueOf(data));
|
||||
@@ -329,7 +336,8 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
}
|
||||
|
||||
static class VodTsUrlConverter implements IVodTsUrlConverter {
|
||||
@Override public List<String> convert(String m3u8Url, List<String> tsUrls) {
|
||||
@Override
|
||||
public List<String> convert(String m3u8Url, List<String> tsUrls) {
|
||||
Uri uri = Uri.parse(m3u8Url);
|
||||
//String parentUrl = "http://devimages.apple.com/iphone/samples/bipbop/gear1/";
|
||||
//String parentUrl = "http://youku.cdn7-okzy.com/20200123/16815_fbe419ed/1000k/hls/";
|
||||
@@ -358,7 +366,8 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
static class BandWidthUrlConverter implements IBandWidthUrlConverter {
|
||||
|
||||
|
||||
@Override public String convert(String m3u8Url, String bandWidthUrl) {
|
||||
@Override
|
||||
public String convert(String m3u8Url, String bandWidthUrl) {
|
||||
int index = m3u8Url.lastIndexOf("/");
|
||||
return m3u8Url.substring(0, index + 1) + bandWidthUrl;
|
||||
}
|
||||
@@ -366,7 +375,8 @@ public class M3U8VodDLoadActivity extends BaseActivity<ActivityM3u8VodBinding> {
|
||||
|
||||
static class KeyUrlConverter implements IKeyUrlConverter {
|
||||
|
||||
@Override public String convert(String m3u8Url, String tsListUrl, String keyUrl) {
|
||||
@Override
|
||||
public String convert(String m3u8Url, String tsListUrl, String keyUrl) {
|
||||
ALog.d("TAG", "convertUrl....");
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -20,9 +20,11 @@ import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.arialyy.annotations.Download;
|
||||
import com.arialyy.annotations.DownloadGroup;
|
||||
import com.arialyy.aria.core.Aria;
|
||||
@@ -35,6 +37,7 @@ import com.arialyy.simple.R;
|
||||
import com.arialyy.simple.base.BaseActivity;
|
||||
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;
|
||||
@@ -48,11 +51,13 @@ public class MultiTaskListActivity extends BaseActivity<ActivityMultiBinding> {
|
||||
private FileListAdapter mAdapter;
|
||||
List<FileListEntity> mData = new ArrayList<>();
|
||||
|
||||
@Override protected int setLayoutId() {
|
||||
@Override
|
||||
protected int setLayoutId() {
|
||||
return R.layout.activity_multi;
|
||||
}
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
@Override
|
||||
protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
Aria.download(this).register();
|
||||
setTitle("多任务下载");
|
||||
@@ -67,84 +72,94 @@ public class MultiTaskListActivity extends BaseActivity<ActivityMultiBinding> {
|
||||
}
|
||||
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.num:
|
||||
int id = view.getId();
|
||||
if (id == R.id.num) {
|
||||
DownloadNumDialog dialog = new DownloadNumDialog(this);
|
||||
dialog.show(getSupportFragmentManager(), "download_num");
|
||||
break;
|
||||
case R.id.stop_all:
|
||||
//Aria.download(this).stopAllTask();
|
||||
} else if (id == R.id.stop_all) {//Aria.download(this).stopAllTask();
|
||||
List<AbsEntity> list = Aria.download(this).getTotalTaskList();
|
||||
for (AbsEntity entity : list){
|
||||
for (AbsEntity entity : list) {
|
||||
Aria.download(this).load(entity.getId()).cancel(true);
|
||||
}
|
||||
//Aria.download(this).removeAllTask(false);
|
||||
break;
|
||||
case R.id.turn:
|
||||
} else if (id == R.id.turn) {
|
||||
startActivity(new Intent(this, MultiDownloadActivity.class));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Download.onWait void taskWait(DownloadTask task) {
|
||||
@Download.onWait
|
||||
void taskWait(DownloadTask task) {
|
||||
Log.d(TAG, "wait ==> " + task.getDownloadEntity().getFileName());
|
||||
}
|
||||
|
||||
@Download.onTaskStart void taskStart(DownloadTask task) {
|
||||
@Download.onTaskStart
|
||||
void taskStart(DownloadTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), false);
|
||||
}
|
||||
|
||||
@Download.onTaskResume void taskResume(DownloadTask task) {
|
||||
@Download.onTaskResume
|
||||
void taskResume(DownloadTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), false);
|
||||
}
|
||||
|
||||
@Download.onTaskStop void taskStop(DownloadTask task) {
|
||||
@Download.onTaskStop
|
||||
void taskStop(DownloadTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@Download.onTaskCancel void taskCancel(DownloadTask task) {
|
||||
@Download.onTaskCancel
|
||||
void taskCancel(DownloadTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@Download.onTaskFail void taskFail(DownloadTask task) {
|
||||
if (task == null || task.getEntity() == null){
|
||||
@Download.onTaskFail
|
||||
void taskFail(DownloadTask task) {
|
||||
if (task == null || task.getEntity() == null) {
|
||||
return;
|
||||
}
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@Download.onTaskComplete void taskComplete(DownloadTask task) {
|
||||
@Download.onTaskComplete
|
||||
void taskComplete(DownloadTask task) {
|
||||
Log.d(TAG, FileUtil.getFileMD5(new File(task.getFilePath())));
|
||||
}
|
||||
|
||||
//############################### 任务组 ##############################
|
||||
@DownloadGroup.onTaskComplete void groupTaskComplete(DownloadGroupTask task) {
|
||||
@DownloadGroup.onTaskComplete
|
||||
void groupTaskComplete(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskStart void groupTaskStart(DownloadGroupTask task) {
|
||||
@DownloadGroup.onTaskStart
|
||||
void groupTaskStart(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), false);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskResume void groupTaskResume(DownloadGroupTask task) {
|
||||
@DownloadGroup.onTaskResume
|
||||
void groupTaskResume(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), false);
|
||||
}
|
||||
|
||||
@DownloadGroup.onWait void groupTaskWait(DownloadGroupTask task) {
|
||||
@DownloadGroup.onWait
|
||||
void groupTaskWait(DownloadGroupTask task) {
|
||||
ALog.d(TAG, String.format("group【%s】wait---", task.getTaskName()));
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskStop void groupTaskStop(DownloadGroupTask task) {
|
||||
@DownloadGroup.onTaskStop
|
||||
void groupTaskStop(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
Log.d(TAG, String.format("group【%s】stop", task.getTaskName()));
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskCancel void groupTaskCancel(DownloadGroupTask task) {
|
||||
@DownloadGroup.onTaskCancel
|
||||
void groupTaskCancel(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskFail void groupTaskFail(DownloadGroupTask task) {
|
||||
@DownloadGroup.onTaskFail
|
||||
void groupTaskFail(DownloadGroupTask task) {
|
||||
if (task == null) {
|
||||
return;
|
||||
}
|
||||
@@ -152,11 +167,13 @@ public class MultiTaskListActivity extends BaseActivity<ActivityMultiBinding> {
|
||||
Log.d(TAG, String.format("group【%s】fail", task.getTaskName()));
|
||||
}
|
||||
|
||||
@DownloadGroup.onTaskComplete void taskComplete(DownloadGroupTask task) {
|
||||
@DownloadGroup.onTaskComplete
|
||||
void taskComplete(DownloadGroupTask task) {
|
||||
mAdapter.updateBtState(task.getKey(), true);
|
||||
}
|
||||
|
||||
@Override protected void dataCallback(int result, Object data) {
|
||||
@Override
|
||||
protected void dataCallback(int result, Object data) {
|
||||
super.dataCallback(result, data);
|
||||
if (result == DownloadNumDialog.RESULT_CODE) {
|
||||
Aria.get(this).getDownloadConfig().setMaxTaskNum(Integer.parseInt(data + ""));
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.arialyy.simple.core.test;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import com.arialyy.aria.core.Aria;
|
||||
import com.arialyy.aria.core.download.DTaskWrapper;
|
||||
import com.arialyy.simple.R;
|
||||
import com.arialyy.simple.base.BaseActivity;
|
||||
import com.arialyy.simple.databinding.ActivityTestBinding;
|
||||
@@ -32,11 +32,13 @@ public class AnyRunActivity extends BaseActivity<ActivityTestBinding> {
|
||||
//private String URL = "https://www.bilibili.com/bangumi/play/ep77693";
|
||||
//private String URL = "http://cn-hbsjz-cmcc-v-03.acgvideo.com/upgcxcode/63/82/5108263/5108263-1-80.flv?expires=1530178500&platform=pc&ssig=vr7gLl0duyqWqSMnIpzaDA&oi=3746029570&nfa=BpfiWF+i4mNW8KzjZFHzBQ==&dynamic=1&hfa=2030547937&hfb=Yjk5ZmZjM2M1YzY4ZjAwYTMzMTIzYmIyNWY4ODJkNWI=&trid=3476be01a9254115b15f8cc7198600fe&nfc=1";
|
||||
|
||||
@Override protected int setLayoutId() {
|
||||
@Override
|
||||
protected int setLayoutId() {
|
||||
return R.layout.activity_test;
|
||||
}
|
||||
|
||||
@Override protected void init(Bundle savedInstanceState) {
|
||||
@Override
|
||||
protected void init(Bundle savedInstanceState) {
|
||||
super.init(savedInstanceState);
|
||||
Aria.init(this);
|
||||
mBar.setVisibility(View.GONE);
|
||||
@@ -45,15 +47,12 @@ public class AnyRunActivity extends BaseActivity<ActivityTestBinding> {
|
||||
}
|
||||
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.start:
|
||||
//module.create(URL);
|
||||
int id = view.getId();
|
||||
if (id == R.id.start) {//module.create(URL);
|
||||
module.startFtp(URL);
|
||||
break;
|
||||
case R.id.stop:
|
||||
} else if (id == R.id.stop) {
|
||||
module.stop(URL);
|
||||
break;
|
||||
case R.id.cancel:
|
||||
} else if (id == R.id.cancel) {
|
||||
module.cancel(URL);
|
||||
//String newUrl = "ftp://192.168.29.140:21/download/11SDK_Demo-release.apk";
|
||||
//Aria.download(this)
|
||||
@@ -62,11 +61,11 @@ public class AnyRunActivity extends BaseActivity<ActivityTestBinding> {
|
||||
// .login("lao", "123456")
|
||||
// .setFilePath(Environment.getExternalStorageDirectory().getPath() + "/")
|
||||
// .create();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override protected void onDestroy() {
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
module.unRegister();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,9 @@ import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatImageButton;
|
||||
|
||||
import com.arialyy.aria.core.common.AbsEntity;
|
||||
import com.arialyy.aria.core.common.AbsGroupEntity;
|
||||
import com.arialyy.aria.core.common.AbsNormalEntity;
|
||||
@@ -30,6 +32,7 @@ import com.arialyy.aria.core.inf.IEntity;
|
||||
import com.arialyy.aria.util.ALog;
|
||||
import com.arialyy.aria.util.CommonUtil;
|
||||
import com.arialyy.simple.R;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
@@ -97,7 +100,8 @@ public class ProgressLayout extends RelativeLayout implements View.OnClickListen
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
@Override public void onClick(View v) {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (listener == null) {
|
||||
ALog.e(TAG, "没有设置OnProgressLayoutBtListener");
|
||||
return;
|
||||
@@ -107,14 +111,12 @@ public class ProgressLayout extends RelativeLayout implements View.OnClickListen
|
||||
return;
|
||||
}
|
||||
|
||||
switch (v.getId()) {
|
||||
case R.id.del_bt:
|
||||
int id = v.getId();
|
||||
if (id == R.id.del_bt) {
|
||||
listener.cancel(v, entity);
|
||||
initState();
|
||||
break;
|
||||
case R.id.handle_bt:
|
||||
} else if (id == R.id.handle_bt) {
|
||||
handleTask(v);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,7 +208,7 @@ public class ProgressLayout extends RelativeLayout implements View.OnClickListen
|
||||
}
|
||||
this.handleBt.setText(btStr);
|
||||
this.speedOrState.setText(stateStr);
|
||||
if (entity.getState() != IEntity.STATE_CANCEL){
|
||||
if (entity.getState() != IEntity.STATE_CANCEL) {
|
||||
this.pb.setProgress(entity.getPercent());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,10 +81,10 @@ ext {
|
||||
mavenCentralDeveloperConnection = 'scm:git:ssh://github.com/AriaLyy/Aria.git'
|
||||
mavenCentralTreeURL = 'https://github.com/AriaLyy/KeepassA/tree/master'
|
||||
|
||||
compileSdkVersion = 28
|
||||
compileSdkVersion = 36
|
||||
supportLibVersion = "27.1.1"
|
||||
buildToolsVersion = "29.0.2"
|
||||
targetSdkVersion = 28
|
||||
buildToolsVersion = "36.0.0"
|
||||
targetSdkVersion = 36
|
||||
lifecycleVersion = "1.1.1"
|
||||
minSdkVersion = 15
|
||||
|
||||
|
||||
@@ -82,17 +82,20 @@ afterEvaluate { project ->
|
||||
release(MavenPublication) {
|
||||
// groupId 等信息
|
||||
groupId PUBLISH_GROUP_ID
|
||||
artifactId PUBLISH_ARTIFACT_ID
|
||||
artifactId project.PUBLISH_ARTIFACT_ID
|
||||
version PUBLISH_VERSION
|
||||
|
||||
if (isAndroidProject) {
|
||||
// 移除R文件,移除BuildConfig文件
|
||||
generateReleaseBuildConfig.enabled = false
|
||||
generateDebugBuildConfig.enabled = false
|
||||
generateReleaseResValues.enabled = false
|
||||
generateDebugResValues.enabled = false
|
||||
project.tasks.findByName('generateReleaseBuildConfig')?.enabled = false
|
||||
project.tasks.findByName('generateDebugBuildConfig')?.enabled = false
|
||||
project.tasks.findByName('generateReleaseResValues')?.enabled = false
|
||||
project.tasks.findByName('generateDebugResValues')?.enabled = false
|
||||
// 使用了这个组件,就不需要自己aar、pom.withxml了
|
||||
from components.release
|
||||
def releaseComponent = project.components.findByName('release')
|
||||
if (releaseComponent != null) {
|
||||
from releaseComponent
|
||||
}
|
||||
|
||||
def variants = project.android.libraryVariants.findAll {
|
||||
it.buildType.name.equalsIgnoreCase('debug')
|
||||
@@ -102,15 +105,15 @@ afterEvaluate { project ->
|
||||
|
||||
def getAndroidJar = "${getAndroidSdkDirectory}/platforms/${project.android.compileSdkVersion}/android.jar"
|
||||
|
||||
task androidJavadocs(type: Javadoc, dependsOn: assembleDebug) {
|
||||
def androidJavadocs = project.task("androidJavadocs", type: Javadoc, dependsOn: 'assembleDebug') {
|
||||
println("开始打包aar")
|
||||
source = variants.collect { it.getJavaCompileProvider().get().source }
|
||||
classpath = files(
|
||||
classpath = project.files(
|
||||
getAndroidJar,
|
||||
project.file("build/intermediates/classes/debug")
|
||||
)
|
||||
doFirst {
|
||||
classpath += files(variants.collect { it.javaCompile.classpath.files })
|
||||
classpath += project.files(variants.collect { it.javaCompile.classpath.files })
|
||||
}
|
||||
options {
|
||||
links("http://docs.oracle.com/javase/7/docs/api/")
|
||||
@@ -125,30 +128,31 @@ afterEvaluate { project ->
|
||||
exclude "**/BuildConfig.class"
|
||||
}
|
||||
|
||||
def cleanJavadocTask = task("cleanJavadocTask", type: Delete) {
|
||||
def cleanJavadocTask = project.task("cleanJavadocTask", type: Delete) {
|
||||
delete androidJavadocs.destinationDir
|
||||
} as Task
|
||||
}
|
||||
project.clean.dependsOn(cleanJavadocTask)
|
||||
|
||||
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
|
||||
classifier = 'javadoc'
|
||||
from androidJavadocs.destinationDir
|
||||
baseName "${JAR_PREFIX}${project.name}"
|
||||
def androidJavadocsJar = project.task("androidJavadocsJar", type: Jar, dependsOn: androidJavadocs) {
|
||||
archiveClassifier = 'javadoc'
|
||||
archiveBaseName = "${JAR_PREFIX}${project.name}"
|
||||
}
|
||||
|
||||
task androidSourcesJar(type: Jar) {
|
||||
classifier = 'sources'
|
||||
def androidSourcesJar = project.task("androidSourcesJar", type: Jar) {
|
||||
archiveClassifier = 'sources'
|
||||
from project.android.sourceSets.main.java.source
|
||||
baseName "${JAR_PREFIX}${project.name}"
|
||||
archiveBaseName = "${JAR_PREFIX}${project.name}"
|
||||
|
||||
exclude "**/R.class"
|
||||
exclude "**/BuildConfig.class"
|
||||
}
|
||||
|
||||
task androidLibraryJar(type: Jar, dependsOn: compileDebugJavaWithJavac
|
||||
/* == variant.javaCompile */) {
|
||||
def compileDebugJavaWithJavac = project.tasks.findByName('compileDebugJavaWithJavac')
|
||||
def androidLibraryJar = project.task("androidLibraryJar", type: Jar, dependsOn: 'compileDebugJavaWithJavac') {
|
||||
// java 编译后的 class文件, build/intermediates/classes/debug/
|
||||
if (compileDebugJavaWithJavac != null) {
|
||||
from compileDebugJavaWithJavac.destinationDir
|
||||
}
|
||||
// kotlin 编译后的 class文件
|
||||
from 'build/tmp/kotlin-classes/debug/'
|
||||
// 指定需要被打包成 jar 的文件夹
|
||||
@@ -156,7 +160,7 @@ afterEvaluate { project ->
|
||||
exclude '**/R.class'
|
||||
exclude '**/R$*.class'
|
||||
exclude "**/BuildConfig.class"
|
||||
baseName "${JAR_PREFIX}${project.name}-cache"
|
||||
archiveBaseName = "${JAR_PREFIX}${project.name}-cache"
|
||||
}
|
||||
|
||||
artifact androidLibraryJar
|
||||
@@ -164,16 +168,19 @@ afterEvaluate { project ->
|
||||
artifact androidJavadocsJar
|
||||
|
||||
} else if (project.plugins.hasPlugin('java')) {
|
||||
from components.java
|
||||
|
||||
task sourcesJar(type: Jar, dependsOn: classes) {
|
||||
classifier = 'sources'
|
||||
from sourceSets.main.allSource
|
||||
def javaComponent = project.components.findByName('java')
|
||||
if (javaComponent != null) {
|
||||
from javaComponent
|
||||
}
|
||||
|
||||
task javadocsJar(type: Jar, dependsOn: javadoc) {
|
||||
classifier = 'javadoc'
|
||||
from javadoc.destinationDir
|
||||
def sourcesJar = project.task("sourcesJar", type: Jar, dependsOn: 'classes') {
|
||||
archiveClassifier = 'sources'
|
||||
from project.sourceSets.main.allSource
|
||||
}
|
||||
|
||||
def javadocsJar = project.task("javadocsJar", type: Jar, dependsOn: 'javadoc') {
|
||||
archiveClassifier = 'javadoc'
|
||||
from project.javadoc.destinationDir
|
||||
}
|
||||
|
||||
artifact sourcesJar
|
||||
@@ -181,7 +188,7 @@ afterEvaluate { project ->
|
||||
}
|
||||
|
||||
pom {
|
||||
name = PUBLISH_ARTIFACT_ID
|
||||
name = project.PUBLISH_ARTIFACT_ID
|
||||
description = rootProject.ext.desc
|
||||
url = rootProject.ext.website
|
||||
licenses {
|
||||
|
||||
Reference in New Issue
Block a user