From f5b35b5bb20bfc396ea66515acfdd14c654400f5 Mon Sep 17 00:00:00 2001 From: shawswyan Date: Wed, 19 Jan 2022 10:46:54 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E9=99=90=E9=80=9F?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/arialyy/aria/core/loader/NormalLoader.java | 5 +++++ .../src/main/java/com/arialyy/aria/core/task/ThreadTask.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalLoader.java b/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalLoader.java index a3d4db2e..6efb8084 100644 --- a/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalLoader.java +++ b/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalLoader.java @@ -20,6 +20,8 @@ import android.os.Looper; import com.arialyy.aria.core.common.AbsEntity; import com.arialyy.aria.core.common.AbsNormalEntity; import com.arialyy.aria.core.common.CompleteInfo; +import com.arialyy.aria.core.event.DSpeedEvent; +import com.arialyy.aria.core.event.Event; import com.arialyy.aria.core.event.EventMsgUtil; import com.arialyy.aria.core.inf.IThreadStateManager; import com.arialyy.aria.core.listener.IDLoadListener; @@ -57,6 +59,9 @@ public class NormalLoader extends AbsNormalLoader { return getEntity().getFileSize(); } + @Event + public void maxSpeed(DSpeedEvent event) { setMaxSpeed(event.speed); } + /** * 设置最大下载/上传速度AbsFtpInfoThread * diff --git a/PublicComponent/src/main/java/com/arialyy/aria/core/task/ThreadTask.java b/PublicComponent/src/main/java/com/arialyy/aria/core/task/ThreadTask.java index 8a67263b..2b8cb8d7 100644 --- a/PublicComponent/src/main/java/com/arialyy/aria/core/task/ThreadTask.java +++ b/PublicComponent/src/main/java/com/arialyy/aria/core/task/ThreadTask.java @@ -548,7 +548,7 @@ public class ThreadTask implements IThreadTask, IThreadTaskObserver { @Override public ThreadTask call() throws Exception { isDestroy = false; - Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); + Process.setThreadPriority(Process.THREAD_PRIORITY_DEFAULT); TrafficStats.setThreadStatsTag(UUID.randomUUID().toString().hashCode()); mAdapter.call(this); return this; From d346b3dd53be46f3b92fd18b8276b4b06f7853ae Mon Sep 17 00:00:00 2001 From: shawswyan Date: Tue, 28 Mar 2023 10:52:17 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=8F=91=E5=B8=83Aria=E5=88=B0maven?= =?UTF-8?q?=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 ++-- gradle/mavenCentral-release.gradle | 7 ++++--- secring.gpg | Bin 0 -> 4955 bytes 3 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 secring.gpg diff --git a/build.gradle b/build.gradle index 39e7ddb7..dd00313b 100644 --- a/build.gradle +++ b/build.gradle @@ -56,8 +56,8 @@ ext { licences = ['Apache-2.0'] // mavenCentral - mavenVersion = '3.8.16' - mavenCentralGroupId = 'me.laoyuyu.aria' + mavenVersion = '1.0.1' + mavenCentralGroupId = 'com.tencent.tcr' mavenCentralUserID = 'laoyuyu' mavenCentralUserName = 'laoyuyu' mavenCentralEmail = '511455842@qq.com' diff --git a/gradle/mavenCentral-release.gradle b/gradle/mavenCentral-release.gradle index 0fcb99ae..8b6bb03b 100644 --- a/gradle/mavenCentral-release.gradle +++ b/gradle/mavenCentral-release.gradle @@ -1,6 +1,7 @@ apply plugin: 'maven-publish' apply plugin: 'signing' +version rootProject.ext.mavenVersion ext { PUBLISH_GROUP_ID = rootProject.ext.mavenCentralGroupId PUBLISH_VERSION = rootProject.ext.mavenVersion @@ -55,13 +56,13 @@ static def localMavenRepo() { def getReleaseRepositoryUrl() { return isLocal() ? localMavenRepo() : hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL - : 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/' + : 'https://oss.sonatype.org/service/local/staging/deploy/maven2/' } def getSnapshotRepositoryUrl() { return isLocal() ? localMavenRepo() : hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL - : 'https://s01.oss.sonatype.org/content/repositories/snapshots/' + : 'https://mirrors.tencent.com/repository/maven/CloudRenderSdk/MicroSdk/snapshots/' } def isLocal(){ @@ -161,7 +162,7 @@ afterEvaluate { project -> artifact androidLibraryJar artifact androidSourcesJar - artifact androidJavadocsJar +// artifact androidJavadocsJar } else if (project.plugins.hasPlugin('java')) { from components.java diff --git a/secring.gpg b/secring.gpg new file mode 100644 index 0000000000000000000000000000000000000000..9714220a41499e8d859eff0ae5190261ac08a5e8 GIT binary patch literal 4955 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 Ct$SSn literal 0 HcmV?d00001 From 619e007c7f7f81b397afe4467bc2ecdf5ae87ee3 Mon Sep 17 00:00:00 2001 From: wangdengqi Date: Thu, 2 Mar 2023 17:18:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=A4=9A=E7=BA=BF=E7=A8=8B=E5=88=86?= =?UTF-8?q?=E5=9D=97=E4=B8=8B=E8=BD=BD=E4=BB=BB=E5=8A=A1=EF=BC=8C=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=BC=82=E5=B8=B8=E6=B2=A1=E6=9C=89=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aria/core/loader/NormalThreadStateManager.java | 14 ++++++++++---- .../com/arialyy/aria/core/task/ThreadTask.java | 9 ++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalThreadStateManager.java b/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalThreadStateManager.java index 4a8a6bbd..16911cb4 100644 --- a/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalThreadStateManager.java +++ b/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalThreadStateManager.java @@ -49,6 +49,8 @@ public class NormalThreadStateManager implements IThreadStateManager { private long mProgress; //当前总进度 private TaskRecord mTaskRecord; // 任务记录 private Looper mLooper; + private boolean mNeedRetry = false; + private AriaException mE = null; /** * @param listener 任务事件 @@ -90,10 +92,11 @@ public class NormalThreadStateManager implements IThreadStateManager { break; case STATE_FAIL: mFailNum.getAndIncrement(); + Bundle bundle = msg.getData(); + mNeedRetry = bundle.getBoolean(DATA_RETRY, false); + mE = (AriaException) bundle.getSerializable(DATA_ERROR_INFO); if (isFail()) { - Bundle b = msg.getData(); - mListener.onFail(b.getBoolean(DATA_RETRY, false), - (AriaException) b.getSerializable(DATA_ERROR_INFO)); + mListener.onFail(mNeedRetry, mE); quitLooper(); } break; @@ -116,6 +119,9 @@ public class NormalThreadStateManager implements IThreadStateManager { } mListener.onComplete(); quitLooper(); + } else if(isFail()) { + mListener.onFail(mNeedRetry, mE); + quitLooper(); } break; case STATE_RUNNING: @@ -170,7 +176,7 @@ public class NormalThreadStateManager implements IThreadStateManager { //ALog.d(TAG, // String.format("isStop; stopNum: %s, cancelNum: %s, failNum: %s, completeNum: %s", mStopNum, // mCancelNum, mFailNum, mCompleteNum)); - return mStopNum.get() == mThreadNum || mStopNum.get() + mCompleteNum.get() == mThreadNum; + return mStopNum.get() == mThreadNum || mStopNum.get() + mFailNum.get() + mCompleteNum.get() == mThreadNum; } /** diff --git a/PublicComponent/src/main/java/com/arialyy/aria/core/task/ThreadTask.java b/PublicComponent/src/main/java/com/arialyy/aria/core/task/ThreadTask.java index 2b8cb8d7..ab7ce22d 100644 --- a/PublicComponent/src/main/java/com/arialyy/aria/core/task/ThreadTask.java +++ b/PublicComponent/src/main/java/com/arialyy/aria/core/task/ThreadTask.java @@ -232,7 +232,7 @@ public class ThreadTask implements IThreadTask, IThreadTaskObserver { FileUtil.deleteFile(blockFile); ALog.i(TAG, String.format("删除分块【%s】成功", blockFile.getName())); } - retryBlockTask(isBreak()); + retryBlockTask(!isBreak()); return false; } return true; @@ -464,6 +464,13 @@ public class ThreadTask implements IThreadTask, IThreadTaskObserver { ALog.w(TAG, String.format("分块【%s】第%s次重试", getFileName(), String.valueOf(mFailTimes))); mFailTimes++; handleBlockRecord(); + if (!NetUtils.isConnected(AriaConfig.getInstance().getAPP())) { + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // fall through + } + } ThreadTaskManager.getInstance().retryThread(this); return; } From f396a40b5c11bf9edc951b22be6bddda8578969f Mon Sep 17 00:00:00 2001 From: shawswyan Date: Tue, 28 Mar 2023 16:41:01 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B1=E8=B4=A5=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../arialyy/aria/core/loader/NormalThreadStateManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalThreadStateManager.java b/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalThreadStateManager.java index 16911cb4..54b728b3 100644 --- a/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalThreadStateManager.java +++ b/PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalThreadStateManager.java @@ -19,6 +19,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; +import android.util.Log; import com.arialyy.aria.core.TaskRecord; import com.arialyy.aria.core.inf.IThreadStateManager; import com.arialyy.aria.core.listener.IEventListener; @@ -112,7 +113,7 @@ public class NormalThreadStateManager implements IThreadStateManager { if (mergeFile()) { mListener.onComplete(); } else { - mListener.onFail(false, null); + mListener.onFail(false, new AriaException("Merge File Failed")); } quitLooper(); break; @@ -253,8 +254,12 @@ public class NormalThreadStateManager implements IThreadStateManager { * @return {@code true} 合并成功,{@code false}合并失败 */ private boolean mergeFile() { + Log.d(TAG, "mergeFile: mTaskRecord.threadNum=" + mTaskRecord.threadNum); if (mTaskRecord.threadNum == 1) { File targetFile = new File(mTaskRecord.filePath); + Log.d(TAG, "mergeFile: mTaskRecord.fileLength=" + mTaskRecord.fileLength + + ",targetFile.length()=" + targetFile.length() + ",targetFile.exists()=" + targetFile.exists() + + ",mTaskRecord.filePath" + mTaskRecord.filePath); if (targetFile.exists()){ //没有获得文件长度:不支持断点续传 if (mTaskRecord.fileLength == 0 && targetFile.length() != 0) {