package com.xunlei.downloadlib;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Build;
import android.os.Environment;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;

import com.xunlei.downloadlib.android.XLLog;
import com.xunlei.downloadlib.android.XLUtil;
import com.xunlei.downloadlib.android.XLUtil.GUID_TYPE;
import com.xunlei.downloadlib.android.XLUtil.GuidInfo;
import com.xunlei.downloadlib.parameter.BtIndexSet;
import com.xunlei.downloadlib.parameter.BtSubTaskDetail;
import com.xunlei.downloadlib.parameter.BtTaskParam;
import com.xunlei.downloadlib.parameter.BtTaskStatus;
import com.xunlei.downloadlib.parameter.CIDTaskParam;
import com.xunlei.downloadlib.parameter.EmuleTaskParam;
import com.xunlei.downloadlib.parameter.GetDownloadHead;
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.MaxDownloadSpeedParam;
import com.xunlei.downloadlib.parameter.P2spTaskParam;
import com.xunlei.downloadlib.parameter.PeerResourceParam;
import com.xunlei.downloadlib.parameter.ServerResourceParam;
import com.xunlei.downloadlib.parameter.ThunderUrlInfo;
import com.xunlei.downloadlib.parameter.TorrentInfo;
import com.xunlei.downloadlib.parameter.UrlQuickInfo;
import com.xunlei.downloadlib.parameter.XLConstant;
import com.xunlei.downloadlib.parameter.XLConstant.XLManagerStatus;
import com.xunlei.downloadlib.parameter.XLProductInfo;
import com.xunlei.downloadlib.parameter.XLSessionInfo;
import com.xunlei.downloadlib.parameter.XLTaskInfo;
import com.xunlei.downloadlib.parameter.XLTaskInfoEx;
import com.xunlei.downloadlib.parameter.XLTaskLocalUrl;
import java.io.File;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;

public class XLDownloadManager {
    private static final int GET_GUID_FIRST_TIME = 5000;
    private static final int GET_GUID_INTERVAL_TIME = 60000;
    private static final int QUERY_GUID_COUNT = 5;
    private static final String TAG = "XLDownloadManager";
    private static boolean mAllowExecution = true;
    public static XLManagerStatus mDownloadManagerState = XLManagerStatus.MANAGER_UNINIT;
    private static Map<String, Object> mErrcodeStringMap = null;
    private static XLDownloadManager mInstance = null;
    private static boolean mIsLoadErrcodeMsg = false;
    private static int mRunningRefCount = 0;
    private XLAppKeyChecker mAppkeyChecker;
    private Context mContext;
    private Timer mGetGuidTimer;
    private TimerTask mGetGuidTimerTask;
    private XLLoader mLoader;
    private int mQueryGuidCount;
    private NetworkChangeReceiver mReceiver;

    public static synchronized XLDownloadManager getInstance() {
        XLDownloadManager xLDownloadManager;
        synchronized (XLDownloadManager.class) {
            if (mInstance == null) {
                mInstance = new XLDownloadManager();
            }
            xLDownloadManager = mInstance;
        }
        return xLDownloadManager;
    }

    private XLDownloadManager() {
        this.mLoader = null;
        this.mContext = null;
        this.mReceiver = null;
        this.mAppkeyChecker = null;
        this.mQueryGuidCount = 0;
        this.mLoader = new XLLoader();
        XLLog.init(new File(Environment.getExternalStorageDirectory().getPath(), "xunlei_ds_log.ini").getPath());
    }

    public XLManagerStatus getManagerStatus() {
        return mDownloadManagerState;
    }

    private void doMonitorNetworkChange() {
        XLLog.i(TAG, "doMonitorNetworkChange()");
        if (this.mContext != null && this.mReceiver == null) {
            this.mReceiver = new NetworkChangeReceiver(this);
            IntentFilter intentFilter = new IntentFilter();
            intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
            XLLog.i(TAG, "register Receiver");
            this.mContext.registerReceiver(this.mReceiver, intentFilter);
        }
    }

    private void undoMonitorNetworkChange() {
        XLLog.i(TAG, "undoMonitorNetworkChange()");
        if (this.mContext != null && this.mReceiver != null) {
            try {
                this.mContext.unregisterReceiver(this.mReceiver);
                XLLog.i(TAG, "unregister Receiver");
            } catch (IllegalArgumentException e) {
                XLLog.e(TAG, "Receiver not registered");
            }
            this.mReceiver = null;
        }
    }

    private synchronized void increRefCount() {
        mRunningRefCount++;
    }

    private synchronized void decreRefCount() {
        mRunningRefCount--;
    }

    public synchronized int init(Context context, InitParam initParam) {
        return init(context, initParam, true);
    }

    public synchronized int init(Context context, InitParam initParam, boolean z) {
        int i = XLConstant.XLErrorCode.DOWNLOAD_MANAGER_ERROR;
        int i2 = 0;
        synchronized (this) {
            if (!mIsLoadErrcodeMsg) {
                loadErrcodeString(context);
                mIsLoadErrcodeMsg = true;
            }
            if (!(context == null || initParam == null || !initParam.checkMemberVar())) {
                this.mContext = context;
                mAllowExecution = z;
                if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING) {
                    XLLog.i(TAG, "XLDownloadManager is already init");
                    Log.e(TAG, "XLDownloadManager is already init");
                } else if (this.mLoader != null) {
                    String peerid = getPeerid();
                    String guid = getGuid();
                    XLLog.i(TAG, "Peerid:" + new String(Base64.encode(peerid.getBytes(), 0)));
                    XLLog.i(TAG, "Guid:" + new String(Base64.encode(guid.getBytes(), 0)));
                    if (mAllowExecution) {
                        i2 = XLUtil.getNetworkTypeComplete(context);
                    }
                    i = this.mLoader.init(context, initParam.mAppVersion, "", peerid, guid, initParam.mStatSavePath, initParam.mStatCfgSavePath, i2, initParam.mPermissionLevel);
                    if (i != 9000) {
                        mDownloadManagerState = XLManagerStatus.MANAGER_INIT_FAIL;
                        XLLog.e(TAG, "XLDownloadManager init failed ret=" + i);
                        Log.e(TAG, "XLDownloadManager init failed ret=" + i);
                    } else {
                        mDownloadManagerState = XLManagerStatus.MANAGER_RUNNING;
                        doMonitorNetworkChange();
                        setLocalProperty("PhoneModel", Build.MODEL);
                    }
                }
            }
        }
        return i;
    }

    public synchronized int uninit() {
        int i = 9900;
        synchronized (this) {
            if (mRunningRefCount != 0) {
                XLLog.i(TAG, "some function of XLDownloadManager is running, uninit failed!");
            } else if (!(mDownloadManagerState == XLManagerStatus.MANAGER_UNINIT || this.mLoader == null)) {
                if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING) {
                    undoMonitorNetworkChange();
                }
                stopGetGuidTimer();
                i = this.mLoader.unInit();
                mDownloadManagerState = XLManagerStatus.MANAGER_UNINIT;
                this.mContext = null;
            }
        }
        return i;
    }

    int notifyNetWorkType(int i, XLLoader xLLoader) {
        int i2 = 9900;
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && xLLoader != null) {
            try {
                i2 = xLLoader.notifyNetWorkType(i);
            } catch (Error e) {
                XLLog.e(TAG, "notifyNetWorkType failed," + e.getMessage());
            }
        }
        return i2;
    }

    public int createP2spTask(P2spTaskParam p2spTaskParam, GetTaskId getTaskId) {
        int i = 9900;
        if (!(p2spTaskParam == null || getTaskId == null || !p2spTaskParam.checkMemberVar())) {
            increRefCount();
            if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
                i = this.mLoader.createP2spTask(p2spTaskParam.mUrl, p2spTaskParam.mRefUrl, p2spTaskParam.mCookie, p2spTaskParam.mUser, p2spTaskParam.mPass, p2spTaskParam.mFilePath, p2spTaskParam.mFileName, p2spTaskParam.mCreateMode, p2spTaskParam.mSeqId, getTaskId);
            }
            decreRefCount();
        }
        return i;
    }

    public int releaseTask(long j) {
        int i = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i = this.mLoader.releaseTask(j);
        }
        decreRefCount();
        return i;
    }

    int setTaskAppInfo(long j, String str, String str2, String str3) {
        if (mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null || str2 == null || str3 == null) {
            return 9900;
        }
        return this.mLoader.setTaskAppInfo(j, str, str2, str3);
    }

    public int setTaskAllowUseResource(long j, int i) {
        int i2 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i2 = this.mLoader.setTaskAllowUseResource(j, i);
        }
        decreRefCount();
        return i2;
    }

    public int setTaskUid(long j, int i) {
        int i2 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i2 = this.mLoader.setTaskUid(j, i);
        }
        decreRefCount();
        return i2;
    }

    public int startTask(long j, boolean z) {
        int i = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i = this.mLoader.startTask(j, z);
        }
        decreRefCount();
        return i;
    }

    public int startTask(long j) {
        return startTask(j, false);
    }

    int switchOriginToAllResDownload(long j) {
        if (mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null) {
            return 9900;
        }
        return this.mLoader.switchOriginToAllResDownload(j);
    }

    public int stopTask(long j) {
        int i = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i = this.mLoader.stopTask(j);
        }
        XLLog.i(TAG, "XLStopTask()----- ret=" + i);
        decreRefCount();
        return i;
    }

    public int stopTaskWithReason(long j, int i) {
        int i2 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i2 = this.mLoader.stopTaskWithReason(j, i);
        }
        XLLog.i(TAG, "XLStopTask()----- ret=" + i2);
        decreRefCount();
        return i2;
    }

    public int getTaskInfo(long j, int i, XLTaskInfo xLTaskInfo) {
        int i2 = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || xLTaskInfo == null)) {
            i2 = this.mLoader.getTaskInfo(j, i, xLTaskInfo);
        }
        decreRefCount();
        return i2;
    }

    public int getTaskInfoEx(long j, XLTaskInfoEx xLTaskInfoEx) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || xLTaskInfoEx == null)) {
            i = this.mLoader.getTaskInfoEx(j, xLTaskInfoEx);
        }
        decreRefCount();
        return i;
    }

    public int getLocalUrl(String str, XLTaskLocalUrl xLTaskLocalUrl) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || xLTaskLocalUrl == null)) {
            i = this.mLoader.getLocalUrl(str, xLTaskLocalUrl);
        }
        decreRefCount();
        return i;
    }

    public int addServerResource(long j, ServerResourceParam serverResourceParam) {
        int i = 9900;
        if (serverResourceParam != null && serverResourceParam.checkMemberVar()) {
            increRefCount();
            if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
                XLLog.i(TAG, "respara.mUrl=" + serverResourceParam.mUrl);
                i = this.mLoader.addServerResource(j, serverResourceParam.mUrl, serverResourceParam.mRefUrl, serverResourceParam.mCookie, serverResourceParam.mResType, serverResourceParam.mStrategy);
            }
            decreRefCount();
        }
        return i;
    }

    public int addPeerResource(long j, PeerResourceParam peerResourceParam) {
        int i = 9900;
        if (peerResourceParam == null || !peerResourceParam.checkMemberVar()) {
            return 9900;
        }
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i = this.mLoader.addPeerResource(j, peerResourceParam.mPeerId, peerResourceParam.mUserId, peerResourceParam.mJmpKey, peerResourceParam.mVipCdnAuth, peerResourceParam.mInternalIp, peerResourceParam.mTcpPort, peerResourceParam.mUdpPort, peerResourceParam.mResLevel, peerResourceParam.mResPriority, peerResourceParam.mCapabilityFlag, peerResourceParam.mResType);
        }
        decreRefCount();
        return i;
    }

    public int removeServerResource(long j, int i) {
        int i2 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i2 = this.mLoader.removeAddedServerResource(j, i);
        }
        decreRefCount();
        return i2;
    }

    int requeryTaskIndex(long j) {
        if (mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null) {
            return 9900;
        }
        return this.mLoader.requeryIndex(j);
    }

    public int setOriginUserAgent(long j, String str) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null)) {
            i = this.mLoader.setOriginUserAgent(j, str);
        }
        decreRefCount();
        return i;
    }

    public int setUserId(String str) {
        if (mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null) {
            return 9900;
        }
        return this.mLoader.setUserId(str);
    }

    public int getDownloadHeader(long j, GetDownloadHead getDownloadHead) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || getDownloadHead == null)) {
            i = this.mLoader.getDownloadHeader(j, getDownloadHead);
        }
        decreRefCount();
        return i;
    }

    public int setFileName(long j, String str) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null)) {
            i = this.mLoader.setFileName(j, str);
        }
        decreRefCount();
        return i;
    }

    int notifyNetWorkCarrier(int i) {
        if (mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null) {
            return 9900;
        }
        return this.mLoader.setNotifyNetWorkCarrier(i);
    }

    int notifyWifiBSSID(String str, XLLoader xLLoader) {
        int i = 9900;
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && xLLoader != null) {
            if (str == null || str.length() == 0 || str == "<unknown ssid>") {
                str = "";
            }
            try {
                i = xLLoader.setNotifyWifiBSSID(str);
            } catch (Error e) {
                XLLog.e(TAG, "setNotifyWifiBSSID failed," + e.getMessage());
            }
        }
        return i;
    }

    public int setDownloadTaskOrigin(long j, String str) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null)) {
            i = this.mLoader.setDownloadTaskOrigin(j, str);
        }
        decreRefCount();
        return i;
    }

    int setMac(String str) {
        if (mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null) {
            return 9900;
        }
        return this.mLoader.setMac(str);
    }

    int setImei(String str) {
        if (mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null) {
            return 9900;
        }
        return this.mLoader.setImei(str);
    }

    private int setLocalProperty(String str, String str2) {
        if (mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null || str2 == null) {
            return 9900;
        }
        return this.mLoader.setLocalProperty(str, str2);
    }

    public int setOSVersion(String str) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null)) {
            i = this.mLoader.setMiUiVersion(str);
        }
        decreRefCount();
        return i;
    }

    public int setHttpHeaderProperty(long j, String str, String str2) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || str == null || str2 == null)) {
            i = this.mLoader.setHttpHeaderProperty(j, str, str2);
        }
        decreRefCount();
        return i;
    }

    public int getDownloadLibVersion(GetDownloadLibVersion getDownloadLibVersion) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || getDownloadLibVersion == null)) {
            i = this.mLoader.getDownloadLibVersion(getDownloadLibVersion);
        }
        decreRefCount();
        return i;
    }

    public int getProductInfo(XLProductInfo xLProductInfo) {
        increRefCount();
        if (mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mContext == null || xLProductInfo == null) {
            decreRefCount();
            return 9900;
        }
        xLProductInfo.mProductKey = this.mAppkeyChecker.getSoAppKey();
        xLProductInfo.mProductName = this.mContext.getPackageName();
        return 9000;
    }

    private String getPeerid() {
        if (!mAllowExecution) {
            return "000000000000000V";
        }
        String peerid = XLUtil.getPeerid(this.mContext);
        if (peerid == null) {
            return "000000000000000V";
        }
        return peerid;
    }

    private String getGuid() {
        if (!mAllowExecution) {
            return "00000000000000_000000000000";
        }
        GuidInfo guidInfo = new GuidInfo();
        guidInfo = XLUtil.generateGuid(this.mContext);
        if (guidInfo.mType != GUID_TYPE.ALL) {
            XLLog.i(TAG, "Start the GetGuidTimer");
            startGetGuidTimer();
        }
        return guidInfo.mGuid;
    }

    private void startGetGuidTimer() {
        this.mGetGuidTimer = new Timer();
        this.mGetGuidTimerTask = new MyTimerTask(this);
        this.mGetGuidTimer.schedule(this.mGetGuidTimerTask, 5000, 60000);
    }

    private void stopGetGuidTimer() {
        if (this.mGetGuidTimer instanceof Timer) {
            this.mGetGuidTimer.cancel();
            this.mGetGuidTimer.purge();
            this.mGetGuidTimer = null;
            XLLog.i(TAG, "stopGetGuidTimer");
        }
        if (this.mGetGuidTimerTask instanceof TimerTask) {
            this.mGetGuidTimerTask.cancel();
            this.mGetGuidTimerTask = null;
        }
    }

    public int enterPrefetchMode(long j) {
        int i = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i = this.mLoader.enterPrefetchMode(j);
        }
        decreRefCount();
        return i;
    }

    public int setTaskLxState(long j, int i, int i2) {
        int i3 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i3 = this.mLoader.setTaskLxState(j, i, i2);
        }
        decreRefCount();
        return i3;
    }

    public int setTaskGsState(long j, int i, int i2) {
        int i3 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i3 = this.mLoader.setTaskGsState(j, i, i2);
        }
        decreRefCount();
        return i3;
    }

    public int setReleaseLog(boolean z, String str, int i, int i2) {
        int i3 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i3 = z ? this.mLoader.setReleaseLog(1, str, i, i2) : this.mLoader.setReleaseLog(0, null, 0, 0);
        }
        decreRefCount();
        return i3;
    }

    public int setReleaseLog(boolean z, String str) {
        return setReleaseLog(z, str, 0, 0);
    }

    public boolean isLogTurnOn() {
        boolean z = false;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            z = this.mLoader.isLogTurnOn();
        }
        decreRefCount();
        return z;
    }

    public int setStatReportSwitch(boolean z) {
        int i = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i = this.mLoader.setStatReportSwitch(z);
        }
        decreRefCount();
        return i;
    }

    public int createBtMagnetTask(MagnetTaskParam magnetTaskParam, GetTaskId getTaskId) {
        int i = 9900;
        if (!(magnetTaskParam == null || getTaskId == null || !magnetTaskParam.checkMemberVar())) {
            increRefCount();
            if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
                i = this.mLoader.createBtMagnetTask(magnetTaskParam.mUrl, magnetTaskParam.mFilePath, magnetTaskParam.mFileName, getTaskId);
            }
            decreRefCount();
        }
        return i;
    }

    public int createEmuleTask(EmuleTaskParam emuleTaskParam, GetTaskId getTaskId) {
        int i = 9900;
        if (!(emuleTaskParam == null || getTaskId == null || !emuleTaskParam.checkMemberVar())) {
            increRefCount();
            if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
                i = this.mLoader.createEmuleTask(emuleTaskParam.mUrl, emuleTaskParam.mFilePath, emuleTaskParam.mFileName, emuleTaskParam.mCreateMode, emuleTaskParam.mSeqId, getTaskId);
            }
            decreRefCount();
        }
        return i;
    }

    public int createBtTask(BtTaskParam btTaskParam, GetTaskId getTaskId) {
        int i = 9900;
        if (!(btTaskParam == null || getTaskId == null || !btTaskParam.checkMemberVar())) {
            increRefCount();
            if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
                i = this.mLoader.createBtTask(btTaskParam.mTorrentPath, btTaskParam.mFilePath, btTaskParam.mMaxConcurrent, btTaskParam.mCreateMode, btTaskParam.mSeqId, getTaskId);
            }
            decreRefCount();
        }
        return i;
    }

    public int getTorrentInfo(String str, TorrentInfo torrentInfo) {
        int i = 9900;
        increRefCount();
        if (!(this.mLoader == null || str == null || torrentInfo == null)) {
            i = this.mLoader.getTorrentInfo(str, torrentInfo);
        }
        decreRefCount();
        return i;
    }

    public int getBtSubTaskStatus(long j, BtTaskStatus btTaskStatus, int i, int i2) {
        int i3 = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || btTaskStatus == null)) {
            i3 = this.mLoader.getBtSubTaskStatus(j, btTaskStatus, i, i2);
        }
        decreRefCount();
        return i3;
    }

    public int getBtSubTaskInfo(long j, int i, BtSubTaskDetail btSubTaskDetail) {
        int i2 = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || btSubTaskDetail == null)) {
            i2 = this.mLoader.getBtSubTaskInfo(j, i, btSubTaskDetail);
        }
        decreRefCount();
        return i2;
    }

    public int selectBtSubTask(long j, BtIndexSet btIndexSet) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || btIndexSet == null)) {
            i = this.mLoader.selectBtSubTask(j, btIndexSet);
        }
        decreRefCount();
        return i;
    }

    public int deselectBtSubTask(long j, BtIndexSet btIndexSet) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || btIndexSet == null)) {
            i = this.mLoader.deselectBtSubTask(j, btIndexSet);
        }
        decreRefCount();
        return i;
    }

    public int btAddServerResource(long j, int i, ServerResourceParam serverResourceParam) {
        if (serverResourceParam == null) {
            XLLog.e(TAG, "btAddServerResource serverResPara is null, task=[" + j + ":" + i + "]");
            return 9112;
        }
        XLLog.d(TAG, "btAddServerResource beg, task=[" + j + ":" + i + "] mUrl=[" + serverResourceParam.mUrl + "] mRefUrl=[" + serverResourceParam.mRefUrl + "] mCookie=[" + serverResourceParam.mCookie + "] mResType=[" + serverResourceParam.mResType + "] mStrategy=[" + serverResourceParam.mStrategy + "]");
        if (serverResourceParam.checkMemberVar()) {
            try {
                increRefCount();
                if (this.mLoader == null) {
                    XLLog.e(TAG, "btAddServerResource mLoader is null, task=[" + j + ":" + i + "]");
                    return 9900;
                } else if (XLManagerStatus.MANAGER_RUNNING != mDownloadManagerState) {
                    XLLog.e(TAG, "btAddServerResource mDownloadManagerState is invaild, task=[" + j + ":" + i + "] mDownloadManagerState=[" + mDownloadManagerState + "]");
                    decreRefCount();
                    return 9900;
                } else {
                    int btAddServerResource = mLoader.btAddServerResource(j, i, serverResourceParam.mUrl, serverResourceParam.mRefUrl, serverResourceParam.mCookie, serverResourceParam.mResType, serverResourceParam.mStrategy);
                    if (9000 != btAddServerResource) {
                        XLLog.e(TAG, "btAddServerResource btAddServerResource failed, task=[" + j + ":" + i + "] errno=[" + btAddServerResource + "]");
                        decreRefCount();
                        return btAddServerResource;
                    }
                    String str = TAG;
                    String str__ = "btAddServerResource end success, task=[" + j + ":" + i + "]";
                    XLLog.d(str, str__);
                    decreRefCount();
                    return 9000;
                }
            } finally {
                decreRefCount();
            }
        } else {
            XLLog.e(TAG, "btAddServerResource checkMemberVar failed, task=[" + j + ":" + i + "] mUrl=[" + serverResourceParam.mUrl + "] mRefUrl=[" + serverResourceParam.mRefUrl + "] mCookie=[" + serverResourceParam.mCookie + "]");
            return 9112;
        }
    }

    public int btAddPeerResource(long j, int i, PeerResourceParam peerResourceParam) {
        if (peerResourceParam == null) {
            XLLog.e(TAG, "btAddPeerResource peerResPara is null, task=[" + j + ":" + i + "]");
            return 9112;
        }
        XLLog.d(TAG, "btAddPeerResource beg, task=[" + j + ":" + i + "] mPeerId=[" + peerResourceParam.mPeerId + "] mUserId=[" + peerResourceParam.mUserId + "] mJmpKey=[" + peerResourceParam.mJmpKey + "] mVipCdnAuth=[" + peerResourceParam.mVipCdnAuth + "] mInternalIp=[" + peerResourceParam.mInternalIp + "] mTcpPort=[" + peerResourceParam.mTcpPort + "] mUdpPort=[" + peerResourceParam.mUdpPort + "] mResLevel=[" + peerResourceParam.mResLevel + "] mResPriority=[" + peerResourceParam.mResPriority + "] mCapabilityFlag=[" + peerResourceParam.mCapabilityFlag + "] mResType=[" + peerResourceParam.mResType + "]");
        if (peerResourceParam.checkMemberVar()) {
            try {
                increRefCount();
                if (this.mLoader == null) {
                    XLLog.e(TAG, "btAddPeerResource mLoader is null, task=[" + j + ":" + i + "]");
                    return 9900;
                } else if (XLManagerStatus.MANAGER_RUNNING != mDownloadManagerState) {
                    XLLog.e(TAG, "btAddPeerResource mDownloadManagerState is invaild, task=[" + j + ":" + i + "] mDownloadManagerState=[" + mDownloadManagerState + "]");
                    decreRefCount();
                    return 9900;
                } else {
                    int btAddPeerResource = this.mLoader.btAddPeerResource(j, i, peerResourceParam.mPeerId, peerResourceParam.mUserId, peerResourceParam.mJmpKey, peerResourceParam.mVipCdnAuth, peerResourceParam.mInternalIp, peerResourceParam.mTcpPort, peerResourceParam.mUdpPort, peerResourceParam.mResLevel, peerResourceParam.mResPriority, peerResourceParam.mCapabilityFlag, peerResourceParam.mResType);
                    if (9000 != btAddPeerResource) {
                        XLLog.e(TAG, "btAddPeerResource btAddPeerResource failed, task=[" + j + ":" + i + "] errno=[" + btAddPeerResource + "]");
                        decreRefCount();
                        return btAddPeerResource;
                    }
                    XLLog.d(TAG, "btAddPeerResource end success, task=[" + j + ":" + i + "]");
                    decreRefCount();
                    return 9000;
                }
            } finally {
                decreRefCount();
            }
        } else {
            XLLog.e(TAG, "btAddPeerResource peerResPara checkMemberVar failed, task=[" + j + ":" + i + "]");
            return 9112;
        }
    }

    public int btRemoveAddedResource(long j, int i, int i2) {
        int i3 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i3 = this.mLoader.btRemoveAddedResource(j, i, i2);
        }
        decreRefCount();
        return i3;
    }

    private void loadErrcodeString(Context context) {
        if (context == null) {
            XLLog.e(TAG, "loadErrcodeString, context invalid");
        } else {
            mErrcodeStringMap = XLUtil.parseJSONString("{  \"9000\": \"XL_NO_ERRNO                 \"  ,  \"9101\": \"XL_ALREADY_INIT             \"  ,  \"9102\": \"XL_SDK_NOT_INIT             \"  ,  \"9103\": \"XL_TASK_ALREADY_EXIST       \"  ,  \"9104\": \"XL_TASK_NOT_EXIST           \"  ,  \"9105\": \"XL_TASK_ALREADY_STOPPED     \"  ,  \"9106\": \"XL_TASK_ALREADY_RUNNING     \"  ,  \"9107\": \"XL_TASK_NOT_START           \"  ,  \"9108\": \"XL_TASK_STILL_RUNNING       \"  ,  \"9109\": \"XL_FILE_EXISTED             \"  ,  \"9110\": \"XL_DISK_FULL                \"  ,  \"9111\": \"XL_TOO_MUCH_TASK            \"  ,  \"9112\": \"XL_PARAM_ERROR              \"  ,  \"9113\": \"XL_SCHEMA_NOT_SUPPORT       \"  ,  \"9114\": \"XL_DYNAMIC_PARAM_FAIL       \"  ,  \"9115\": \"XL_CONTINUE_NO_NAME         \"  ,  \"9116\": \"XL_APPNAME_APPKEY_ERROR     \"  ,  \"9117\": \"XL_CREATE_THREAD_ERROR      \"  ,  \"9118\": \"XL_TASK_FINISH              \"  ,  \"9119\": \"XL_TASK_NOT_RUNNING         \"  ,  \"9120\": \"XL_TASK_NOT_IDLE            \"  ,  \"9121\": \"XL_TASK_TYPE_NOT_SUPPORT    \"  ,  \"9122\": \"XL_ADD_RESOURCE_ERROR       \"  ,  \"9123\": \"XL_TASK_LOADING_CFG         \"  ,  \"9301\": \"XL_NO_ENOUGH_BUFFER         \"  ,  \"9302\": \"XL_TORRENT_PARSE_ERROR      \"  ,  \"9303\": \"XL_INDEX_NOT_READY          \"  ,  \"9304\": \"XL_TORRENT_IMCOMPLETE       \"  ,  \"9900\": \"DOWNLOAD_MANAGER_ERROR      \"  ,  \"9901\": \"APPKEY_CHECKER_ERROR        \"  ,  \"111024\": \"COMMON_ERRCODE_BASE                \"  ,  \"111025\": \"TARGET_THREAD_STOPING              \"  ,  \"111026\": \"OUT_OF_MEMORY                      \"  ,  \"111031\": \"TASK_USE_TOO_MUCH_MEM              \"  ,  \"111032\": \"OUT_OF_FIXED_MEMORY                \"  ,  \"111033\": \"QUEUE_NO_ROOM                      \"  ,  \"111035\": \"MAP_UNINIT                         \"  ,  \"111036\": \"MAP_DUPLICATE_KEY                  \"  ,  \"111037\": \"MAP_KEY_NOT_FOUND                  \"  ,  \"111038\": \"INVALID_ITERATOR                   \"  ,  \"111039\": \"BUFFER_OVERFLOW                    \"  ,  \"111041\": \"INVALID_ARGUMENT                   \"  ,  \"111048\": \"INVALID_SOCKET_DESCRIPTOR          \"  ,  \"111050\": \"ERROR_INVALID_INADDR               \"  ,  \"111181\": \"REDIRECT_TOO_MUCH                  \"  ,  \"111057\": \"NOT_IMPLEMENT                      \"  ,  \"111074\": \"INVALID_TIMER_INDEX                \"  ,  \"111078\": \"DNS_INVALID_ADDR                   \"  ,  \"111083\": \"BAD_DIR_PATH                       \"  ,  \"111084\": \"FILE_CANNOT_TRUNCATE               \"  ,  \"111085\": \"INSUFFICIENT_DISK_SPACE            \"  ,  \"111086\": \"FILE_TOO_BIG                       \"  ,  \"111118\": \"DISPATCHER_ERRCODE_BASE            \"  ,  \"111119\": \"DATA_MGR_ERRCODE_BASE              \"  ,  \"111120\": \"ALLOC_INVALID_SIZE                 \"  ,  \"111121\": \"DATA_BUFFER_IS_FULL                \"  ,  \"111122\": \"BLOCK_NO_INVALID                   \"  ,  \"111123\": \"CHECK_DATA_BUFFER_NOT_ENOUG        \"  ,  \"111124\": \"BCID_CHECK_FAIL                    \"  ,  \"111125\": \"BCID_ONCE_CHECT_TOO_MUCH           \"  ,  \"111126\": \"READ_FILE_ERR                      \"  ,  \"111127\": \"WRITE_FILE_ERR                     \"  ,  \"111128\": \"OPEN_FILE_ERR                      \"  ,  \"111129\": \"FILE_PATH_TOO_LONG                 \"  ,  \"111130\": \"SD_INVALID_FILE_SIZE               \"  ,  \"111131\": \"FILE_CFG_MAGIC_ERROR               \"  ,  \"111132\": \"FILE_CFG_READ_ERROR                \"  ,  \"111133\": \"FILE_CFG_WRITE_ERROR               \"  ,  \"111134\": \"FILE_CFG_READ_HEADER_ERROR         \"  ,  \"111135\": \"FILE_CFG_RESOLVE_ERROR             \"  ,  \"111136\": \"TASK_FAILURE_NO_DATA_PIPE          \"  ,  \"111137\": \"NO_FILE_NAME                       \"  ,  \"111138\": \"CANNOT_GET_FILE_NAME               \"  ,  \"111139\": \"CREATE_FILE_FAIL                   \"  ,  \"111140\": \"OPEN_OLD_FILE_FAIL                 \"  ,  \"111141\": \"FILE_SIZE_NOT_BELIEVE              \"  ,  \"111142\": \"FILE_SIZE_TOO_SMALL                \"  ,  \"111143\": \"FILE_NOT_EXIST                     \"  ,  \"111144\": \"FILE_INVALID_PARA                  \"  ,  \"111145\": \"FILE_CREATING                      \"  ,  \"111146\": \"FIL_INFO_INVALID_DATA              \"  ,  \"111147\": \"FIL_INFO_RECVED_DATA               \"  ,  \"111159\": \"CONF_MGR_ERRCODE_BASE              \"  ,  \"111160\": \"SETTINGS_ERR_UNKNOWN               \"  ,  \"111161\": \"SETTINGS_ERR_INVALID_FILE_NAME     \"  ,  \"111162\": \"SETTINGS_ERR_CFG_FILE_NOT_EXIST    \"  ,  \"111163\": \"SETTINGS_ERR_INVALID_LINE          \"  ,  \"111164\": \"SETTINGS_ERR_INVALID_ITEM_NAME     \"  ,  \"111165\": \"SETTINGS_ERR_INVALID_ITEM_VALUE    \"  ,  \"111166\": \"SETTINGS_ERR_LIST_EMPTY            \"  ,  \"111167\": \"SETTINGS_ERR_ITEM_NOT_FOUND        \"  ,  \"111168\": \"NET_REACTOR_ERRCODE_BASE           \"  ,  \"111169\": \"NET_CONNECT_SSL_ERR                \"  ,  \"111170\": \"NET_BROKEN_PIPE                    \"  ,  \"111171\": \"NET_CONNECTION_REFUSED             \"  ,  \"111172\": \"NET_SSL_GET_FD_ERROR               \"  ,  \"111173\": \"NET_OP_CANCEL                      \"  ,  \"111174\": \"NET_UNKNOWN_ERROR                  \"  ,  \"111175\": \"NET_NORMAL_CLOSE                   \"  ,  \"111176\": \"TASK_FAIL_LONG_TIME_NO_RECV_DATA   \"  ,  \"111177\": \"TASK_FILE_SIZE_TOO_LARGE           \"  ,  \"111178\": \"TASK_RETRY_ALWAY_FAIL              \"  ,  \"111300\": \"ASYN_FILE_E_BASE                   \"  ,  \"111301\": \"ASYN_FILE_E_OP_NONE                \"  ,  \"111302\": \"ASYN_FILE_E_OP_BUSY                \"  ,  \"111303\": \"ASYN_FILE_E_FILE_NOT_OPEN          \"  ,  \"111304\": \"ASYN_FILE_E_FILE_REOPEN            \"  ,  \"111305\": \"ASYN_FILE_E_EMPTY_FILE             \"  ,  \"111306\": \"ASYN_FILE_E_FILE_SIZE_LESS         \"  ,  \"111307\": \"ASYN_FILE_E_TOO_MUCH_DATA          \"  ,  \"111308\": \"ASYN_FILE_E_FILE_CLOSING           \"  ,  \"112400\": \"ERR_PTL_PROTOCOL_NOT_SUPPORT       \"  ,  \"112500\": \"ERR_PTL_PEER_OFFLINE               \"  ,  \"112600\": \"ERR_PTL_GET_PEERSN_FAILED          \"  ,  \"11300\": \"P2P_PIPE_ERRCODE_BASE\t\t\t    \"  ,  \"11301\": \"ERR_P2P_VERSION_NOT_SUPPORT\t\t    \"  ,  \"11302\": \"ERR_P2P_WAITING_CLOSE\t\t\t    \"  ,  \"11303\": \"ERR_P2P_HANDSHAKE_RESP_FAIL\t\t    \"  ,  \"11304\": \"ERR_P2P_REQUEST_RESP_FAIL\t\t    \"  ,  \"11305\": \"ERR_P2P_UPLOAD_OVER_MAX\t\t\t    \"  ,  \"11306\": \"ERR_P2P_REMOTE_UNKNOWN_MY_CMD\t    \"  ,  \"11307\": \"ERR_P2P_NOT_SUPPORT_UDT\t\t\t    \"  ,  \"11308\": \"ERR_P2P_BROKER_CONNECT\t\t\t    \"  ,  \"11309\": \"ERR_P2P_INVALID_COMMAND\t\t\t    \"  ,  \"11310\": \"ERR_P2P_INVALID_PARAM\t\t\t    \"  ,  \"11311\": \"ERR_P2P_CONNECT_FAILED\t\t\t    \"  ,  \"11312\": \"ERR_P2P_CONNECT_UPLOAD_SLOW\t        \"  ,  \"11313\": \"ERR_P2P_ALLOC_MEM_ERR               \"  ,  \"11314\": \"ERR_P2P_SEND_HANDSHAKE              \"  ,  \"114001\": \"TASK_FAILURE_QUERY_EMULE_HUB_FAILED\"  ,  \"114101\": \"TASK_FAILURE_EMULE_NO_RECORD       \"  ,  \"114002\": \"TASK_FAILURE_SUBTASK_FAILED        \"  ,  \"114003\": \"TASK_FAILURE_CANNOT_START_SUBTASK  \"  ,  \"114004\": \"TASK_FAILURE_QUERY_BT_HUB_FAILED   \"  ,  \"114005\": \"TASK_FAILURE_PARSE_TORRENT_FAILED  \"  ,  \"114006\": \"TASK_FAILURE_GET_TORRENT_FAILED    \"  ,  \"114007\": \"TASK_FAILURE_SAVE_TORRENT_FAILED   \"  ,  \"115000\": \"RES_QUERY_E_BASE                   \"  ,  \"115100\": \"HTTP_HUB_CLIENT_E_BASE             \"  ,  \"116000\": \"IP6_ERRCODE_BASE                   \"  ,  \"116001\": \"ERR_INVALID_ADDRESS_FAMILY         \"  ,  \"116002\": \"IP6_INVALID_IN6ADDR                \"  ,  \"116003\": \"IP6_NOT_SUPPORT_SSL                \"  ,  \"117000\": \"PAUSE_TASK_WRITE_CFG_ERR           \"  ,  \"117001\": \"PAUSE_TASK_WRITE_DATA_TIMEOUT      \"   }");
        }
    }

    public String getErrorCodeMsg(int i) {
        String str = null;
        String num = Integer.toString(i);
        if (!(mErrcodeStringMap == null || num == null)) {
            Object obj = mErrcodeStringMap.get(num);
            if (obj != null) {
                str = obj.toString().trim();
            }
            XLLog.i(TAG, "errcode:" + i + ", errcodeMsg:" + str);
        }
        return str;
    }

    public int getUrlQuickInfo(long j, UrlQuickInfo urlQuickInfo) {
        int i = 9900;
        increRefCount();
        if (!(mDownloadManagerState != XLManagerStatus.MANAGER_RUNNING || this.mLoader == null || urlQuickInfo == null)) {
            i = this.mLoader.getUrlQuickInfo(j, urlQuickInfo);
        }
        decreRefCount();
        return i;
    }

    public int createCIDTask(CIDTaskParam cIDTaskParam, GetTaskId getTaskId) {
        int i = 9900;
        if (!(cIDTaskParam == null || getTaskId == null || !cIDTaskParam.checkMemberVar())) {
            increRefCount();
            if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
                i = this.mLoader.createCIDTask(cIDTaskParam.mCid, cIDTaskParam.mGcid, cIDTaskParam.mBcid, cIDTaskParam.mFilePath, cIDTaskParam.mFileName, cIDTaskParam.mFileSize, cIDTaskParam.mCreateMode, cIDTaskParam.mSeqId, getTaskId);
            }
            decreRefCount();
        }
        return i;
    }

    public String parserThunderUrl(String str) {
        int i = 9900;
        ThunderUrlInfo thunderUrlInfo = new ThunderUrlInfo();
        if (!(this.mLoader == null || str == null)) {
            i = this.mLoader.parserThunderUrl(str, thunderUrlInfo);
        }
        if (9000 == i) {
            return thunderUrlInfo.mUrl;
        }
        return null;
    }

    public int getFileNameFromUrl(String str, GetFileName getFileName) {
        if (this.mLoader == null || str == null || getFileName == null) {
            return 9900;
        }
        return this.mLoader.getFileNameFromUrl(str, getFileName);
    }

    public int getNameFromUrl(String str, String str2) {
        if (this.mLoader == null || str == null || str2 == null) {
            return 9900;
        }
        return this.mLoader.getNameFromUrl(str, str2);
    }

    public int setSpeedLimit(long j, long j2) {
        XLLog.d(TAG, "debug: XLDownloadManager::setSpeedLimit beg, maxDownloadSpeed=[" + j + "] maxUploadSpeed=[" + j2 + "]");
        if (this.mLoader == null) {
            XLLog.e(TAG, "error: XLDownloadManager::setSpeedLimit mLoader is null, maxDownloadSpeed=[" + j + "] maxUploadSpeed=[" + j2 + "] ret=[9900]");
            return 9900;
        }
        int speedLimit = this.mLoader.setSpeedLimit(j, j2);
        XLLog.d(TAG, "debug: XLDownloadManager::setSpeedLimit end, maxDownloadSpeed=[" + j + "] maxUploadSpeed=[" + j2 + "] ret=[" + speedLimit + "]");
        return speedLimit;
    }

    public int setBtPriorSubTask(long j, int i) {
        XLLog.d(TAG, "XLDownloadManager::setBtPriorSubTask beg, taskId=[" + j + "] fileIndex=[" + i + "]");
        if (this.mLoader == null) {
            XLLog.e(TAG, "XLDownloadManager::setBtPriorSubTask mLoader is null, taskId=[" + j + "] fileIndex=[" + i + "]");
            return 9900;
        }
        int btPriorSubTask = this.mLoader.setBtPriorSubTask(j, i);
        if (9000 != btPriorSubTask) {
            XLLog.e(TAG, "XLDownloadManager::setBtPriorSubTask end, taskId=[" + j + "] fileIndex=[" + i + "] ret=[" + btPriorSubTask + "]");
            return btPriorSubTask;
        }
        XLLog.d(TAG, " XLDownloadManager::setBtPriorSubTask end, taskId=[" + j + "] fileIndex=[" + i + "]");
        return 9000;
    }

    public int getMaxDownloadSpeed(MaxDownloadSpeedParam maxDownloadSpeedParam) {
        if (this.mLoader == null) {
            XLLog.e(TAG, "XLDownloadManager::getMaxDownloadSpeed mLoader is null");
            return 9900;
        }
        int maxDownloadSpeed = this.mLoader.getMaxDownloadSpeed(maxDownloadSpeedParam);
        if (9000 != maxDownloadSpeed) {
            XLLog.e(TAG, "XLDownloadManager::getMaxDownloadSpeed end, ret=[" + maxDownloadSpeed + "]");
            return maxDownloadSpeed;
        }
        XLLog.d(TAG, "XLDownloadManager::getMaxDownloadSpeed end, speed=[" + maxDownloadSpeedParam.mSpeed + "] ret=[" + maxDownloadSpeed + "]");
        return maxDownloadSpeed;
    }

    public int statExternalInfo(long j, int i, String str, String str2) {
        XLLog.d(TAG, "XLDownloadManager::statExternalInfo beg, taskId=[" + j + "] fileIndex=[" + i + "] key=[" + str + "] value=[" + str2 + "]");
        if (this.mLoader == null) {
            XLLog.e(TAG, "XLDownloadManager::statExternalInfo mLoader is null, taskId=[" + j + "] fileIndex=[" + i + "]");
            return 9900;
        }
        int statExternalInfo = this.mLoader.statExternalInfo(j, i, str, str2);
        if (9000 != statExternalInfo) {
            XLLog.e(TAG, "XLDownloadManager::statExternalInfo end, taskId=[" + j + "] fileIndex=[" + i + "] ret=[" + statExternalInfo + "]");
            return statExternalInfo;
        }
        XLLog.d(TAG, "XLDownloadManager::statExternalInfo end, taskId=[" + j + "] fileIndex=[" + i + "] ret=[" + statExternalInfo + "]");
        return statExternalInfo;
    }

    public int statExternalInfo(long j, int i, String str, int i2) {
        return statExternalInfo(j, i, str, String.valueOf(i2));
    }

    public int clearTaskFile(String str) {
        XLLog.d(TAG, "XLDownloadManager::clearTaskFile filePath=[" + str + "]");
        if (TextUtils.isEmpty(str)) {
            return 9900;
        }
        if (this.mLoader == null) {
            XLLog.e(TAG, "XLDownloadManager::clearTaskFile mLoader is null");
            return 9900;
        }
        int clearTaskFile = this.mLoader.clearTaskFile(str);
        if (9000 == clearTaskFile) {
            return 9000;
        }
        XLLog.e(TAG, "XLDownloadManager::clearTaskFile end, ret=[" + clearTaskFile + "]");
        return clearTaskFile;
    }

    public int startDcdn(long j, int i, String str, String str2, String str3) {
        int i2 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i2 = this.mLoader.startDcdn(j, i, str, str2, str3);
        }
        decreRefCount();
        XLLog.d(TAG, String.format("XLDownloadManager::startDcdn ret=[%d] taskId=[%d] subIndex=[%d] sessionId=[%s] productType=[%s] verifyInfo=[%s]", new Object[]{Integer.valueOf(i2), Long.valueOf(j), Integer.valueOf(i), str, str2, str3}));
        return i2;
    }

    public int stopDcdn(long j, int i) {
        int i2 = 9900;
        increRefCount();
        if (mDownloadManagerState == XLManagerStatus.MANAGER_RUNNING && this.mLoader != null) {
            i2 = this.mLoader.stopDcdn(j, i);
        }
        decreRefCount();
        XLLog.d(TAG, String.format("XLDownloadManager::stopDcdn ret=[%d] taskId=[%d] subIndex=[%d]", new Object[]{Integer.valueOf(i2), Long.valueOf(j), Integer.valueOf(i)}));
        return i2;
    }

    public int createShortVideoTask(String str, String str2, String str3, String str4, int i, int i2, int i3, GetTaskId getTaskId) {
        XLLog.d(TAG, "XLDownloadManager::createShortVideoTask beg, url=[" + str + "] path=[" + str2 + "] filename=[" + str3 + "] title=[" + str4 + "]");
        if (this.mLoader == null) {
            XLLog.e(TAG, "XLDownloadManager::createShortVideoTask mLoader is null");
            return 9900;
        }
        String str5;
        if (str4 == null) {
            str5 = "default Title";
        } else {
            str5 = str4;
        }
        int createShortVideoTask = this.mLoader.createShortVideoTask(str, str2, str3, str5, i, i2, i3, getTaskId);
        if (9000 != createShortVideoTask) {
            XLLog.e(TAG, "XLDownloadManager::createShortVideoTask end, ret=[" + createShortVideoTask + "]");
            return createShortVideoTask;
        }
        XLLog.d(TAG, "XLDownloadManager::createShortVideoTask end, taskId=[" + getTaskId.getTaskId() + "] ret=[" + createShortVideoTask + "]");
        return createShortVideoTask;
    }

    public int playShortVideoBegin(long j) {
        XLLog.d(TAG, "XLDownloadManager::playShortVideoBegin beg, taskId=[" + j + "]");
        if (this.mLoader == null) {
            XLLog.e(TAG, "XLDownloadManager::playShortVideoBegin mLoader is null");
            return 9900;
        }
        int playShortVideoBegin = this.mLoader.playShortVideoBegin(j);
        if (9000 != playShortVideoBegin) {
            XLLog.e(TAG, "XLDownloadManager::playShortVideoBegin end, ret=[" + playShortVideoBegin + "]");
            return playShortVideoBegin;
        }
        XLLog.d(TAG, "XLDownloadManager::playShortVideoBegin end, taskId=[" + j + "] ret=[" + playShortVideoBegin + "]");
        return playShortVideoBegin;
    }

    public int getSessionInfoByUrl(String str, XLSessionInfo xLSessionInfo) {
        if (this.mLoader == null) {
            XLLog.e(TAG, "XLDownloadManager::getSessionInfoByUrl mLoader is null");
            return 9900;
        }
        int sessionInfoByUrl = this.mLoader.getSessionInfoByUrl(str, xLSessionInfo);
        if (9000 == sessionInfoByUrl) {
            return sessionInfoByUrl;
        }
        XLLog.e(TAG, "XLDownloadManager::getSessionInfoByUrl end, ret=[" + sessionInfoByUrl + "]");
        return sessionInfoByUrl;
    }



    class NetworkChangeReceiver extends BroadcastReceiver {
        private static final String TAG = "TAG_DownloadReceiver";
        final /* synthetic */ XLDownloadManager this$0;

        public NetworkChangeReceiver(XLDownloadManager xLDownloadManager) {
            this.this$0 = xLDownloadManager;
        }

        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (action != null && action.equals("android.net.conn.CONNECTIVITY_CHANGE")) {
                new Thread(new NetworkChangeHandlerThread(this.this$0, context, mLoader, mAllowExecution)).start();
            }
        }
    }
    class NetworkChangeHandlerThread implements Runnable {
        private boolean m_allow_execution = true;
        private Context m_context = null;
        private XLLoader m_loader = null;
        final /* synthetic */ XLDownloadManager this$0;

        public NetworkChangeHandlerThread(XLDownloadManager xLDownloadManager, Context context, XLLoader xLLoader, boolean z) {
            this.this$0 = xLDownloadManager;
            this.m_context = context;
            this.m_loader = xLLoader;
            this.m_allow_execution = z;
        }

        public void run() {
            if (this.m_allow_execution) {
                int networkTypeComplete = XLUtil.getNetworkTypeComplete(this.m_context);
                XLLog.d("XLDownloadManager", "NetworkChangeHandlerThread nettype=" + networkTypeComplete);
                this.this$0.notifyNetWorkType(networkTypeComplete, this.m_loader);
                String bssid = XLUtil.getBSSID(this.m_context);
                XLLog.d("XLDownloadManager", "NetworkChangeHandlerThread bssid=" + bssid);
                this.this$0.notifyWifiBSSID(bssid, this.m_loader);
                XLUtil.NetWorkCarrier netWorkCarrier = XLUtil.getNetWorkCarrier(this.m_context);
                XLLog.d("XLDownloadManager", "NetworkChangeHandlerThread NetWorkCarrier=" + netWorkCarrier);
                this.this$0.notifyNetWorkCarrier(netWorkCarrier.ordinal());
            }
        }
    }
    class MyTimerTask extends TimerTask {
        final /* synthetic */ XLDownloadManager this$0;

        MyTimerTask(XLDownloadManager xLDownloadManager) {
            this.this$0 = xLDownloadManager;
        }

        public void run() {
            if (mQueryGuidCount < 5) {
//                XLDownloadManager.access$208(this.this$0);
                GuidInfo guidInfo = new GuidInfo();
                guidInfo = XLUtil.generateGuid(mContext);
                if (guidInfo.mType == GUID_TYPE.ALL) {
//                    XLDownloadManager.access$400(this.this$0);
                }
                if (guidInfo.mType != GUID_TYPE.DEFAULT) {
                    setLocalProperty("Guid", guidInfo.mGuid);
                    return;
                }
                return;
            }
//            XLDownloadManager.access$400(this.this$0);
        }
    }
}