You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
FONGMITV/thunder/src/main/java/com/xunlei/downloadlib/XLDownloadManager.java

152 lines
5.1 KiB

package com.xunlei.downloadlib;
import android.content.Context;
import android.os.Build;
import com.github.catvod.Init;
import com.github.catvod.utils.Prefers;
import com.xunlei.downloadlib.android.XLUtil;
import com.xunlei.downloadlib.parameter.BtIndexSet;
import com.xunlei.downloadlib.parameter.BtSubTaskDetail;
import com.xunlei.downloadlib.parameter.BtTaskParam;
import com.xunlei.downloadlib.parameter.EmuleTaskParam;
import com.xunlei.downloadlib.parameter.GetDownloadLibVersion;
import com.xunlei.downloadlib.parameter.GetFileName;
import com.xunlei.downloadlib.parameter.GetTaskId;
import com.xunlei.downloadlib.parameter.InitParam;
import com.xunlei.downloadlib.parameter.MagnetTaskParam;
import com.xunlei.downloadlib.parameter.P2spTaskParam;
import com.xunlei.downloadlib.parameter.ThunderUrlInfo;
import com.xunlei.downloadlib.parameter.TorrentInfo;
import com.xunlei.downloadlib.parameter.XLTaskInfo;
import com.xunlei.downloadlib.parameter.XLTaskLocalUrl;
public class XLDownloadManager {
private XLLoader loader;
private Context context;
public XLDownloadManager() {
this.context = Init.context();
this.loader = new XLLoader();
this.init();
}
public void init() {
InitParam param = new InitParam(context.getFilesDir().getPath());
loader.init(param.getSoKey(), "com.android.providers.downloads", param.mAppVersion, "", getPeerId(), getGuid(), param.mStatSavePath, param.mStatCfgSavePath, 0, param.mPermissionLevel, param.mQueryConfOnInit);
getDownloadLibVersion(new GetDownloadLibVersion());
setOSVersion(Build.VERSION.INCREMENTAL + "_alpha");
setLocalProperty("PhoneModel", Build.MODEL);
setStatReportSwitch(false);
setSpeedLimit(-1, -1);
}
public void release() {
if (loader != null) loader.unInit();
context = null;
loader = null;
}
private String getPeerId() {
String uuid = Prefers.getString("phoneId5");
if (uuid.isEmpty()) Prefers.put("phoneId5", uuid = XLUtil.getPeerId());
return uuid;
}
private String getGuid() {
return XLUtil.getGuid();
}
public void releaseTask(long taskId) {
loader.releaseTask(taskId);
}
public void startTask(long taskId) {
loader.startTask(taskId);
}
public void stopTask(long taskId) {
loader.stopTask(taskId);
}
public void getTaskInfo(long taskId, int i, XLTaskInfo taskInfo) {
loader.getTaskInfo(taskId, i, taskInfo);
}
public void getLocalUrl(String filePath, XLTaskLocalUrl localUrl) {
loader.getLocalUrl(filePath, localUrl);
}
public void getDownloadLibVersion(GetDownloadLibVersion version) {
loader.getDownloadLibVersion(version);
}
public void setStatReportSwitch(boolean value) {
loader.setStatReportSwitch(value);
}
private void setLocalProperty(String key, String value) {
loader.setLocalProperty(key, value);
}
public void setOSVersion(String str) {
loader.setMiUiVersion(str);
}
public void setOriginUserAgent(long taskId, String userAgent) {
loader.setOriginUserAgent(taskId, userAgent);
}
public void setDownloadTaskOrigin(long taskId, String str) {
loader.setDownloadTaskOrigin(taskId, str);
}
public void setTaskGsState(long j, int i, int i2) {
loader.setTaskGsState(j, i, i2);
}
public int createP2spTask(P2spTaskParam param, GetTaskId taskId) {
return loader.createP2spTask(param.mUrl, param.mRefUrl, param.mCookie, param.mUser, param.mPass, param.mFilePath, param.mFileName, param.mCreateMode, param.mSeqId, taskId);
}
public int createBtMagnetTask(MagnetTaskParam param, GetTaskId taskId) {
return loader.createBtMagnetTask(param.mUrl, param.mFilePath, param.mFileName, taskId);
}
public int createEmuleTask(EmuleTaskParam param, GetTaskId taskId) {
return loader.createEmuleTask(param.mUrl, param.mFilePath, param.mFileName, param.mCreateMode, param.mSeqId, taskId);
}
public int createBtTask(BtTaskParam param, GetTaskId taskId) {
return loader.createBtTask(param.mTorrentPath, param.mFilePath, param.mMaxConcurrent, param.mCreateMode, param.mSeqId, taskId);
}
public void getTorrentInfo(TorrentInfo info) {
loader.getTorrentInfo(info.getFile().getAbsolutePath(), info);
}
public void getBtSubTaskInfo(long taskId, int index, BtSubTaskDetail detail) {
loader.getBtSubTaskInfo(taskId, index, detail);
}
public void deselectBtSubTask(long taskId, BtIndexSet btIndexSet) {
loader.deselectBtSubTask(taskId, btIndexSet);
}
public String parserThunderUrl(String url) {
ThunderUrlInfo thunderUrlInfo = new ThunderUrlInfo();
loader.parserThunderUrl(url, thunderUrlInfo);
return thunderUrlInfo.mUrl;
}
public String getFileNameFromUrl(String url) {
GetFileName getFileName = new GetFileName();
loader.getFileNameFromUrl(url, getFileName);
return getFileName.getFileName();
}
public void setSpeedLimit(long min, long max) {
loader.setSpeedLimit(min, max);
}
}