pull/951/merge
SweetSalts 2 years ago committed by GitHub
commit eae20983a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalLoader.java
  2. 21
      PublicComponent/src/main/java/com/arialyy/aria/core/loader/NormalThreadStateManager.java
  3. 11
      PublicComponent/src/main/java/com/arialyy/aria/core/task/ThreadTask.java
  4. 4
      build.gradle
  5. 7
      gradle/mavenCentral-release.gradle
  6. BIN
      secring.gpg

@ -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<T extends AbsTaskWrapper> extends AbsNormalLoader<T> {
return getEntity().getFileSize();
}
@Event
public void maxSpeed(DSpeedEvent event) { setMaxSpeed(event.speed); }
/**
* 设置最大下载/上传速度AbsFtpInfoThread
*

@ -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;
@ -49,6 +50,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 +93,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;
@ -109,13 +113,16 @@ public class NormalThreadStateManager implements IThreadStateManager {
if (mergeFile()) {
mListener.onComplete();
} else {
mListener.onFail(false, null);
mListener.onFail(false, new AriaException("Merge File Failed"));
}
quitLooper();
break;
}
mListener.onComplete();
quitLooper();
} else if(isFail()) {
mListener.onFail(mNeedRetry, mE);
quitLooper();
}
break;
case STATE_RUNNING:
@ -170,7 +177,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;
}
/**
@ -247,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) {

@ -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;
}
@ -548,7 +555,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;

@ -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'

@ -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

Binary file not shown.
Loading…
Cancel
Save