光速虚拟机 v3.8.2版本的 MD5 值为:e0eecbee2ded4bfb58a5ca72845ca90b

以下内容为反编译后的 AdsModule.java 源代码,内容仅作参考


package com.vphonegaga.titan.module.ads;

import android.text.TextUtils;
import android.util.Log;
import android.util.SparseArray;
import com.common.utils.FileUtil;
import com.common.utils.LocalUtils;
import com.common.utils.NetworkUtil;
import com.common.utils.PathUtil;
import com.common.utils.ThreadUtil;
import com.common.utils.XmlUtil;
import com.liulishuo.filedownloader.BaseDownloadTask;
import com.vphonegaga.titan.MyApp;
import com.vphonegaga.titan.VPhoneInstance;
import com.vphonegaga.titan.roles.ConfigMgr;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import org.xmlpull.v1.XmlPullParserException;
public class AdsModule implements IAdsDataCallback {
    private static final String ADS_XML_NAME = "ads.xml";
    private static final String DEBUG_ADS_XML_URL = "";
    private static final String NEW_ADS_UPDATE_FILE_SUFFIX = ".new";
    private static final String RELEASE_ADS_XML_URL = "";
    private static final String TAG = "Titan.AdsModule";
    private static final String TMP_ADS_FILE_SUFFIX = ".tmp";
    public static String sAdsXmlFullPath;
    private static AdsModule sInstance;
    private static String sSoftImagePath;
    private AdsXmlData mLocalAdsXmlData;
    private boolean bNotifyAdsManager = false;
    private boolean mClearNewFiles = false;
    private boolean mClearAllAdsFiles = false;
    private boolean mAdsDataReady = false;
    private List<IAdsDataCallback> mListeners = new ArrayList();

    public class AdsXmlData {
        private String mVersion;
        SparseArray<SoftAdsRuleInfo> mSoftAdsRuleInfoArray = null;
        SparseArray<SoftAdsRuleInfo> mDefaultSoftAdsRuleInfoArray = new SparseArray<>();
        SparseArray<SoftAdsRuleInfo> mEnDefaultSoftAdsRuleInfoArray = new SparseArray<>();

        public AdsXmlData() {
        }

        void addDefaultSoftAdsRuleInfo(SoftAdsRuleInfo softAdsRuleInfo) {
            this.mDefaultSoftAdsRuleInfoArray.put(softAdsRuleInfo.getId(), softAdsRuleInfo);
        }

        void addEnDefaultSoftAdsRuleInfo(SoftAdsRuleInfo softAdsRuleInfo) {
            this.mEnDefaultSoftAdsRuleInfoArray.put(softAdsRuleInfo.getId(), softAdsRuleInfo);
        }

        void addSoftAdsRuleInfo(SoftAdsRuleInfo softAdsRuleInfo) {
            if (this.mSoftAdsRuleInfoArray == null) {
                synchronized (this) {
                    if (this.mSoftAdsRuleInfoArray == null) {
                        this.mSoftAdsRuleInfoArray = new SparseArray<>();
                    }
                }
            }
            this.mSoftAdsRuleInfoArray.put(softAdsRuleInfo.getId(), softAdsRuleInfo);
        }

        final SparseArray<SoftAdsRuleInfo> getDefaultSoftAdsRuleInfoArray() {
            return this.mDefaultSoftAdsRuleInfoArray;
        }

        SparseArray<SoftAdsRuleInfo> getSoftAdsRuleInfoArray() {
            return this.mSoftAdsRuleInfoArray;
        }

        public final SparseArray<SoftAdsRuleInfo> getSoftAdsRuleInfoArrayOrDefault() {
            if (!LocalUtils.localeLanguageIsZh() && this.mEnDefaultSoftAdsRuleInfoArray.size() > 0) {
                Log.d(AdsModule.TAG, "Get the English default ads soft rule.");
                return this.mEnDefaultSoftAdsRuleInfoArray;
            } else if (this.mSoftAdsRuleInfoArray != null) {
                Log.i(AdsModule.TAG, "Get the normal ads soft rule.");
                return this.mSoftAdsRuleInfoArray;
            } else {
                Log.d(AdsModule.TAG, "Get the default ads soft rule.");
                return this.mDefaultSoftAdsRuleInfoArray;
            }
        }

        public float getVersion() {
            if (TextUtils.isEmpty(this.mVersion)) {
                return 0.0f;
            }
            try {
                return Float.parseFloat(this.mVersion);
            } catch (Exception e) {
                e.printStackTrace();
                return 0.0f;
            }
        }

        public boolean hasCurrentChannelRule() {
            SparseArray<SoftAdsRuleInfo> sparseArray = this.mSoftAdsRuleInfoArray;
            return sparseArray != null && sparseArray.size() > 0;
        }

        public boolean hasDefaulChannelRule() {
            return this.mEnDefaultSoftAdsRuleInfoArray.size() > 0;
        }

        public boolean hasEnDefaulChannelRule() {
            return this.mEnDefaultSoftAdsRuleInfoArray.size() > 0;
        }

        public void setVersion(String str) {
            this.mVersion = str;
        }
    }

    static {
        System.loadLibrary("VPhoneGaGaLim");
    }

    private AdsModule() {
        String externalDiskFileDir = PathUtil.getExternalDiskFileDir();
        sSoftImagePath = PathUtil.join(externalDiskFileDir, "ads", "img", "soft");
        sAdsXmlFullPath = PathUtil.join(externalDiskFileDir, "ads", ADS_XML_NAME);
    }

    public boolean checkLocalSoftImage() {
        AdsXmlData adsXmlData = this.mLocalAdsXmlData;
        if (adsXmlData == null) {
            return false;
        }
        SparseArray<SoftAdsRuleInfo> softAdsRuleInfoArrayOrDefault = adsXmlData.getSoftAdsRuleInfoArrayOrDefault();
        int i = 0;
        for (int i2 = 0; i2 < softAdsRuleInfoArrayOrDefault.size(); i2++) {
            SoftAdsRuleInfo softAdsRuleInfo = softAdsRuleInfoArrayOrDefault.get(softAdsRuleInfoArrayOrDefault.keyAt(i2));
            String str = softAdsRuleInfo.getId() + softAdsRuleInfo.getImageType();
            String join = PathUtil.join(sSoftImagePath, str);
            if (!FileUtil.isFileExists(join)) {
                Log.e(TAG, "The soft image is not exists! name: " + str + " Begin to copy it from assets...");
                if (!FileUtil.copyFileFromAssets(PathUtil.removeStartSeparator(PathUtil.join("ads", "img", "soft", str)), join)) {
                    Log.e(TAG, "Copy " + str + " from assets failed!");
                    i++;
                }
            }
        }
        if (i == 0) {
            Log.i(TAG, "Current soft images is ok.");
            return true;
        }
        return false;
    }

    public void clearAllAdsFiles() {
        this.mClearAllAdsFiles = true;
        Log.i(TAG, "Begine to clear all ads files...");
        if (!FileUtil.deleteFile(sAdsXmlFullPath)) {
            Log.e(TAG, "Delete [ads.xml] failed!");
        }
        if (!FileUtil.deleteFile(sAdsXmlFullPath + NEW_ADS_UPDATE_FILE_SUFFIX)) {
            Log.e(TAG, "Delete [ads.xml.new] failed!");
        }
        if (FileUtil.deleteFilesInDir(sSoftImagePath)) {
            return;
        }
        Log.e(TAG, "Delete files in [" + sSoftImagePath + "] failed!");
    }

    public void clearAllNewFiles() {
        Log.i(TAG, "Begine to clear all new ads files...");
        this.mClearNewFiles = true;
        if (!FileUtil.deleteFile(sAdsXmlFullPath + NEW_ADS_UPDATE_FILE_SUFFIX)) {
            Log.d(TAG, "Delete [ads.xml.new] failed!");
        }
        if (FileUtil.deleteFilesInDir(sSoftImagePath, new FilenameFilter() {
            @Override
            public boolean accept(File file, String str) {
                return str.endsWith(AdsModule.NEW_ADS_UPDATE_FILE_SUFFIX);
            }
        })) {
            return;
        }
        Log.d(TAG, "Delete new files in [" + sSoftImagePath + "] failed!");
    }

    private void clearAllSoftImages() {
        Log.i(TAG, "Begine to clear all soft image files...");
        if (FileUtil.deleteFilesInDir(sSoftImagePath)) {
            return;
        }
        Log.e(TAG, "Delete files in [" + sSoftImagePath + "] failed!");
    }

    public void finishInitTransaction() {
        ConfigMgr.setGlobal("adsInitTransaction", 1);
    }

    public void finishUpdateTransaction() {
        ConfigMgr.setGlobal("adsUpdateTransaction", 0);
    }

    public static AdsModule getInstance() {
        if (sInstance == null) {
            synchronized (AdsModule.class) {
                if (sInstance == null) {
                    sInstance = new AdsModule();
                }
            }
        }
        return sInstance;
    }

    public boolean lastInitTransactionWasFinished() {
        return ((Integer) ConfigMgr.getGlobal("adsInitTransaction", 0)).intValue() == 0;
    }

    public boolean lastUpdateTransactionWasFinished() {
        return ((Integer) ConfigMgr.getGlobal("adsUpdateTransaction", 0)).intValue() == 0;
    }

    public AdsXmlData loadAdsXml(File file) {
        final AdsXmlData adsXmlData = new AdsXmlData();
        try {
            XmlUtil.parseXml(file, new XmlUtil.ParseEventListener() {
                private static final String DEFAULT_CHANNEL_ID = "10000";
                private static final int STATE_INTO_SOFT_TAG = 0;
                private String language;
                private boolean mChannelIsMatch = false;
                private boolean mIntoRootTag = false;
                private AdsXmlNode mAdsXmlNode = null;
                private boolean mIsDefaultChannel = false;
                private int mState = -1;

                @Override
                public boolean onNodeEnd(XmlUtil.XmlNode xmlNode) {
                    Log.d(AdsModule.TAG, "Node end: " + xmlNode.getNodeName());
                    this.mAdsXmlNode.setXmlNode(xmlNode);
                    if (this.mAdsXmlNode.isRootTag()) {
                        this.mIntoRootTag = false;
                    }
                    if (this.mAdsXmlNode.isChannelNode()) {
                        if (adsXmlData.hasCurrentChannelRule()) {
                            return true;
                        }
                        if (adsXmlData.hasEnDefaulChannelRule() && (!LocalUtils.localeLanguageIsZh() || "10000".equals(MyApp.getChannelId()))) {
                            return true;
                        }
                    }
                    return false;
                }

                @Override
                public boolean onNodeStart(XmlUtil.XmlNode xmlNode) throws XmlPullParserException {
                    Log.d(AdsModule.TAG, "Node start: " + xmlNode.getNodeName());
                    if (this.mAdsXmlNode == null) {
                        this.mAdsXmlNode = new AdsXmlNode();
                    }
                    this.mAdsXmlNode.setXmlNode(xmlNode);
                    if (!this.mIntoRootTag) {
                        if (this.mAdsXmlNode.isRootTag()) {
                            adsXmlData.setVersion(this.mAdsXmlNode.getVersion());
                            this.mIntoRootTag = true;
                            return false;
                        }
                        throw new XmlPullParserException("The ads.xml is illegal!");
                    } else if (this.mAdsXmlNode.isChannelNode()) {
                        String channelId = this.mAdsXmlNode.getChannelId();
                        this.language = this.mAdsXmlNode.getLanguage();
                        if (!TextUtils.isEmpty(channelId)) {
                            this.mChannelIsMatch = channelId.equals(MyApp.getChannelId());
                        }
                        Log.d(AdsModule.TAG, "[xml node channel id]: " + channelId + " [app channel id]: " + MyApp.getChannelId());
                        boolean equals = channelId.equals("10000");
                        this.mIsDefaultChannel = equals;
                        if (!equals || this.mChannelIsMatch) {
                            return !this.mChannelIsMatch;
                        }
                        Log.d(AdsModule.TAG, "This channel node is default, skip it...");
                        return false;
                    } else if (this.mState != 0 && this.mAdsXmlNode.isSoftNode()) {
                        this.mState = 0;
                        return false;
                    } else if (this.mAdsXmlNode.isRuleNode()) {
                        if (this.mState != 0) {
                            Log.d(AdsModule.TAG, "Illegal state!");
                            return false;
                        }
                        SoftAdsRuleInfo softAdsRuleInfo = new SoftAdsRuleInfo();
                        softAdsRuleInfo.fromSoftXmlNode(this.mAdsXmlNode, AdsModule.sSoftImagePath);
                        softAdsRuleInfo.printLog(AdsModule.TAG);
                        if (!this.mIsDefaultChannel) {
                            adsXmlData.addSoftAdsRuleInfo(softAdsRuleInfo);
                            return false;
                        } else if (LocalUtils.ENGLISH.equals(this.language)) {
                            adsXmlData.addEnDefaultSoftAdsRuleInfo(softAdsRuleInfo);
                            return false;
                        } else {
                            adsXmlData.addDefaultSoftAdsRuleInfo(softAdsRuleInfo);
                            return false;
                        }
                    } else {
                        return false;
                    }
                }
            });
            return adsXmlData;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        } catch (XmlPullParserException e2) {
            e2.printStackTrace();
            return null;
        }
    }

    public boolean localAdsXmlIsOld() {
        File file = new File(sAdsXmlFullPath + ".tmp");
        if (FileUtil.copyFileFromAssets(PathUtil.append("ads", ADS_XML_NAME), file)) {
            float readAdsXmlVersion = readAdsXmlVersion(new File(sAdsXmlFullPath));
            if (Float.compare(readAdsXmlVersion, 0.0f) == 0) {
                Log.e(TAG, "Read local ads.xml version failed!");
            } else {
                float readAdsXmlVersion2 = readAdsXmlVersion(file);
                if (Float.compare(readAdsXmlVersion, 0.0f) == 0) {
                    Log.e(TAG, "Read assets ads.xml version failed!");
                } else {
                    Log.i(TAG, "Local ads.xml version: " + readAdsXmlVersion + " assets ads.xml version: " + readAdsXmlVersion2);
                    r2 = Float.compare(readAdsXmlVersion, readAdsXmlVersion2) < 0;
                    if (!file.delete()) {
                        Log.e(TAG, "Delete tmp ads.xml file failed!");
                    }
                }
            }
        } else {
            Log.e(TAG, "copy " + file.getPath() + "from asserts failed!");
        }
        return r2;
    }

    public boolean needClearAllAdsFiles() {
        boolean needClearAllAdsFiles = ConfigMgr.getNeedClearAllAdsFiles();
        if (needClearAllAdsFiles) {
            ConfigMgr.setNeedClearAllAdsFiles(false);
        }
        return needClearAllAdsFiles;
    }

    public synchronized void notifyAdsDataLoaded(String str, SparseArray<SoftAdsRuleInfo> sparseArray) {
        this.mAdsDataReady = true;
        if (MyApp.sInstanceId > 0) {
            onAdsDataLoaded(sparseArray);
            return;
        }
        for (IAdsDataCallback iAdsDataCallback : this.mListeners) {
            iAdsDataCallback.onAdsDataReady(str);
        }
        this.mListeners.clear();
    }

    public native void onAdsDataLoaded(SparseArray<SoftAdsRuleInfo> sparseArray);

    private float readAdsXmlVersion(File file) {
        final AdsXmlData adsXmlData = new AdsXmlData();
        try {
            XmlUtil.parseXml(file, new XmlUtil.ParseEventListener() {
                private boolean mIntoRootTag = false;
                private AdsXmlNode mAdsXmlNode = null;

                @Override
                public boolean onNodeEnd(XmlUtil.XmlNode xmlNode) {
                    Log.d(AdsModule.TAG, "Node end: " + xmlNode.getNodeName());
                    this.mAdsXmlNode.setXmlNode(xmlNode);
                    if (this.mAdsXmlNode.isRootTag()) {
                        this.mIntoRootTag = false;
                    }
                    return false;
                }

                @Override
                public boolean onNodeStart(XmlUtil.XmlNode xmlNode) throws XmlPullParserException {
                    Log.d(AdsModule.TAG, "Node start: " + xmlNode.getNodeName());
                    if (this.mAdsXmlNode == null) {
                        this.mAdsXmlNode = new AdsXmlNode();
                    }
                    this.mAdsXmlNode.setXmlNode(xmlNode);
                    if (this.mIntoRootTag) {
                        return false;
                    }
                    if (this.mAdsXmlNode.isRootTag()) {
                        adsXmlData.setVersion(this.mAdsXmlNode.getVersion());
                        this.mIntoRootTag = true;
                        return true;
                    }
                    throw new XmlPullParserException("The ads.xml is illegal!");
                }
            });
            return adsXmlData.getVersion();
        } catch (IOException e) {
            e.printStackTrace();
            return 0.0f;
        } catch (XmlPullParserException e2) {
            e2.printStackTrace();
            return 0.0f;
        }
    }

    public void startInitTransaction() {
        ConfigMgr.setGlobal("adsInitTransaction", 1);
    }

    private void startUpdateTransaction() {
        ConfigMgr.setGlobal("adsUpdateTransaction", 1);
    }

    public void dealWithNewAdsXml() {
        Log.d(TAG, "DealWithNewAdsXml() Enter");
        Log.i(TAG, "Begin to deal with new ads.xml file...");
        File file = new File(sAdsXmlFullPath + NEW_ADS_UPDATE_FILE_SUFFIX);
        String fileMd5 = FileUtil.getFileMd5(file);
        String fileMd52 = FileUtil.getFileMd5(sAdsXmlFullPath);
        if (TextUtils.isEmpty(fileMd5) || TextUtils.isEmpty(fileMd52) || !fileMd5.equals(fileMd52)) {
            Log.i(TAG, "Begin to load data from downloaded ads.xml file...");
            AdsXmlData loadAdsXml = loadAdsXml(file);
            if (loadAdsXml == null) {
                Log.e(TAG, "New ads xml data is null!");
            } else {
                float version = loadAdsXml.getVersion();
                if (Float.compare(0.0f, version) == 0 || Float.compare(version, this.mLocalAdsXmlData.getVersion()) <= 0) {
                    Log.i(TAG, "New ads.xml version <= local ads.xml version, don't need to update ads.xml");
                    if (file.delete()) {
                        return;
                    }
                    Log.e(TAG, "Delete new ads.xml failed!");
                    return;
                }
                ArrayList<SoftAdsRuleInfo> arrayList = new ArrayList();
                SparseArray<SoftAdsRuleInfo> softAdsRuleInfoArrayOrDefault = loadAdsXml.getSoftAdsRuleInfoArrayOrDefault();
                SparseArray<SoftAdsRuleInfo> softAdsRuleInfoArrayOrDefault2 = this.mLocalAdsXmlData.getSoftAdsRuleInfoArrayOrDefault();
                for (int i = 0; i < softAdsRuleInfoArrayOrDefault2.size(); i++) {
                    int keyAt = softAdsRuleInfoArrayOrDefault2.keyAt(i);
                    SoftAdsRuleInfo softAdsRuleInfo = softAdsRuleInfoArrayOrDefault.get(keyAt);
                    SoftAdsRuleInfo softAdsRuleInfo2 = softAdsRuleInfoArrayOrDefault2.get(keyAt);
                    if (softAdsRuleInfo != null && (softAdsRuleInfo2 == null || !softAdsRuleInfo2.getImageMd5().equalsIgnoreCase(softAdsRuleInfo.getImageMd5()))) {
                        Log.i(TAG, "Need to download soft image that id is: " + softAdsRuleInfo.getId());
                        arrayList.add(softAdsRuleInfo);
                    }
                }
                final CountDownLatch countDownLatch = new CountDownLatch(arrayList.size());
                final ArrayList arrayList2 = new ArrayList();
                for (final SoftAdsRuleInfo softAdsRuleInfo3 : arrayList) {
                    String str = sSoftImagePath;
                    NetworkUtil.createDownloadTask(softAdsRuleInfo3.getImageDownloadUrl(), "soft_image", PathUtil.append(str, softAdsRuleInfo3.getId() + softAdsRuleInfo3.getImageType() + NEW_ADS_UPDATE_FILE_SUFFIX), null, false).addFinishListener(new BaseDownloadTask.FinishListener() {
                        @Override
                        public void over(final BaseDownloadTask baseDownloadTask) {
                            ThreadUtil.runAsycTask(new Runnable() {
                                @Override
                                public void run() {
                                    boolean z;
                                    countDownLatch.countDown();
                                    if (-3 == baseDownloadTask.getStatus()) {
                                        String fileMd53 = FileUtil.getFileMd5(baseDownloadTask.getTargetFilePath());
                                        if (TextUtils.isEmpty(fileMd53)) {
                                            Log.e(AdsModule.TAG, "get image md5 that id is " + softAdsRuleInfo3.getId() + " failed!");
                                        } else if (fileMd53.equalsIgnoreCase(softAdsRuleInfo3.getImageMd5())) {
                                            z = false;
                                            if (z) {
                                                return;
                                            }
                                            FileUtil.deleteFile(baseDownloadTask.getTargetFilePath());
                                            synchronized (arrayList2) {
                                                arrayList2.add(baseDownloadTask.getTargetFilePath());
                                            }
                                            return;
                                        }
                                    }
                                    z = true;
                                    if (z) {
                                    }
                                }
                            });
                        }
                    }).start();
                }
                try {
                    countDownLatch.await();
                    Log.i(TAG, "Download soft image finish.");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                if (arrayList2.size() != 0) {
                    Log.e(TAG, "This soft image download has failed, will clear all new ads files.");
                    clearAllNewFiles();
                }
            }
        } else {
            Log.i(TAG, "Has same md5, don't need to update ads.xml");
            if (!file.delete()) {
                Log.e(TAG, "Delete new ads.xml failed!");
            }
        }
        Log.d(TAG, "DealWithNewAdsXml() Leave");
    }

    @Override
    public void onAdsDataReady(final String str) {
        ThreadUtil.runAsycTask(new Runnable() {
            @Override
            public void run() {
                try {
                    try {
                        AdsModule.sAdsXmlFullPath = str;
                        if (AdsModule.sAdsXmlFullPath == null) {
                            Log.e(AdsModule.TAG, "invalid ads xml file path!");
                        } else {
                            File file = new File(AdsModule.sAdsXmlFullPath);
                            if (FileUtil.isFileExists(file)) {
                                Log.i(AdsModule.TAG, "Begin to load data from local ads.xml file...");
                                AdsModule adsModule = AdsModule.this;
                                adsModule.mLocalAdsXmlData = adsModule.loadAdsXml(file);
                                if (AdsModule.this.mLocalAdsXmlData != null) {
                                    if (AdsModule.this.mLocalAdsXmlData.getSoftAdsRuleInfoArrayOrDefault().size() == 0) {
                                        Log.e(AdsModule.TAG, "Don't match any soft ads rule!");
                                    } else {
                                        if (!AdsModule.this.checkLocalSoftImage()) {
                                            Log.e(AdsModule.TAG, "Soft image has error!");
                                        }
                                        if (!AdsModule.this.bNotifyAdsManager) {
                                            Log.i(AdsModule.TAG, "Notify ads data has loaded...");
                                            AdsModule adsModule2 = AdsModule.this;
                                            adsModule2.onAdsDataLoaded(adsModule2.mLocalAdsXmlData.getSoftAdsRuleInfoArrayOrDefault());
                                            AdsModule.this.bNotifyAdsManager = true;
                                        }
                                    }
                                }
                            } else {
                                Log.e(AdsModule.TAG, "invalid ads xml file path " + AdsModule.sAdsXmlFullPath);
                            }
                        }
                    } catch (Exception e) {
                        Log.e(AdsModule.TAG, "startWork exception:", e);
                    }
                } catch (Throwable th) {
                    if (!AdsModule.this.bNotifyAdsManager) {
                        AdsModule.this.onAdsDataLoaded(null);
                    }
                    AdsModule.this.bNotifyAdsManager = false;
                    throw th;
                }
            }
        });
    }

    public synchronized void registerListener(final IAdsDataCallback iAdsDataCallback) {
        if (this.mAdsDataReady) {
            ThreadUtil.runAsycTask(new Runnable() {
                @Override
                public void run() {
                    iAdsDataCallback.onAdsDataReady(AdsModule.sAdsXmlFullPath);
                }
            });
        } else {
            this.mListeners.add(iAdsDataCallback);
        }
    }

    public void startWork() {
        if (MyApp.sInstanceId > 0) {
            VPhoneInstance.getInstance().requestAdsData(this);
        } else {
            ThreadUtil.runAsycTask(new Runnable() {
                @Override
                public void run() {
                    try {
                        try {
                            Log.i(AdsModule.TAG, "Begin to work...");
                            if (!MyApp.isAppFirstStart()) {
                                if (!AdsModule.this.lastUpdateTransactionWasFinished()) {
                                    Log.i(AdsModule.TAG, "Last update transaction wasn't finished");
                                    AdsModule.this.clearAllNewFiles();
                                    AdsModule.this.finishUpdateTransaction();
                                }
                                if (!AdsModule.this.lastInitTransactionWasFinished()) {
                                    Log.i(AdsModule.TAG, "Last init transaction wasn't finished");
                                    AdsModule.this.clearAllAdsFiles();
                                }
                            }
                            AdsModule.this.startInitTransaction();
                            if (MyApp.appHasUpdated() || AdsModule.this.localAdsXmlIsOld() || AdsModule.this.needClearAllAdsFiles()) {
                                Log.d(AdsModule.TAG, "App has updated, begin to clear all ads files.");
                                AdsModule.this.clearAllAdsFiles();
                            }
                            if (!AdsModule.this.mClearNewFiles) {
                                String str = AdsModule.sAdsXmlFullPath + AdsModule.NEW_ADS_UPDATE_FILE_SUFFIX;
                                if (FileUtil.isFileExists(str)) {
                                    Log.i(AdsModule.TAG, "");
                                    if (!FileUtil.moveFile(str, AdsModule.ADS_XML_NAME)) {
                                        Log.e(AdsModule.TAG, "Replace the ads xml failed!");
                                    }
                                }
                                String[] fileNamesInDir = FileUtil.getFileNamesInDir(AdsModule.sSoftImagePath, new FilenameFilter() {
                                    @Override
                                    public boolean accept(File file, String str2) {
                                        return str2.endsWith(AdsModule.NEW_ADS_UPDATE_FILE_SUFFIX);
                                    }
                                });
                                if (fileNamesInDir != null && fileNamesInDir.length > 0) {
                                    for (String str2 : fileNamesInDir) {
                                        if (!FileUtil.moveFile(PathUtil.append(AdsModule.sSoftImagePath, str2), PathUtil.removeExtension(str2))) {
                                            Log.e(AdsModule.TAG, "Replace the ads soft images failed!");
                                        }
                                    }
                                }
                            }
                            File file = new File(AdsModule.sAdsXmlFullPath);
                            if (!FileUtil.isFileExists(file)) {
                                Log.d(AdsModule.TAG, "Don't find local ads.xml file.");
                                if (!AdsModule.this.mClearAllAdsFiles) {
                                    AdsModule.this.clearAllAdsFiles();
                                }
                                Log.i(AdsModule.TAG, "Begin to copy ads.xml from assets dir...");
                                if (!FileUtil.copyFileFromAssets(PathUtil.append("ads", AdsModule.ADS_XML_NAME), file)) {
                                    Log.e(AdsModule.TAG, "copy " + file.getPath() + " failed!");
                                }
                            }
                            if (FileUtil.dirIsEmpty(AdsModule.sSoftImagePath)) {
                                Log.i(AdsModule.TAG, "Begin to copy soft icon from assets dir...");
                                if (!FileUtil.copyFilesFromAssets(PathUtil.removeStartSeparator(PathUtil.join("ads", "img", "soft")), AdsModule.sSoftImagePath)) {
                                    Log.e(AdsModule.TAG, "Copy soft images failed!");
                                }
                            }
                            AdsModule.this.finishInitTransaction();
                            Log.i(AdsModule.TAG, "Begin to load data from local ads.xml file...");
                            AdsModule adsModule = AdsModule.this;
                            adsModule.mLocalAdsXmlData = adsModule.loadAdsXml(file);
                            if (AdsModule.this.mLocalAdsXmlData != null) {
                                if (AdsModule.this.mLocalAdsXmlData.getSoftAdsRuleInfoArrayOrDefault().size() != 0) {
                                    if (!AdsModule.this.checkLocalSoftImage()) {
                                        Log.e(AdsModule.TAG, "Soft image has error!");
                                    }
                                    if (!AdsModule.this.bNotifyAdsManager) {
                                        Log.i(AdsModule.TAG, "Notify ads data has loaded...");
                                        AdsModule.this.notifyAdsDataLoaded(AdsModule.sAdsXmlFullPath, AdsModule.this.mLocalAdsXmlData.getSoftAdsRuleInfoArrayOrDefault());
                                        AdsModule.this.bNotifyAdsManager = true;
                                    }
                                } else {
                                    Log.e(AdsModule.TAG, "Don't match any soft ads rule!");
                                }
                                AdsModule.this.update();
                                Log.i(AdsModule.TAG, "Work finish.");
                            }
                        } catch (Exception e) {
                            Log.e(AdsModule.TAG, "startWork exception:", e);
                        }
                    } catch (Throwable th) {
                        if (!AdsModule.this.bNotifyAdsManager) {
                            AdsModule.this.notifyAdsDataLoaded(null, null);
                        }
                        AdsModule.this.bNotifyAdsManager = false;
                        throw th;
                    }
                }
            });
        }
    }

    public void update() {
        if (!NetworkUtil.isNetworkAvailable()) {
            Log.d(TAG, "Network is available()");
            return;
        }
        Log.i(TAG, "Start update transaction...");
        startUpdateTransaction();
        String str = MyApp.isDebugMode() ? "http://test.app.gsxnj.cn/vphonegaga/ads.php" : "https://app.gsxnj.cn/vphonegaga/ads.php";
        NetworkUtil.createDownloadTask(str, "ads", sAdsXmlFullPath + NEW_ADS_UPDATE_FILE_SUFFIX, null, false).addFinishListener(new BaseDownloadTask.FinishListener() {
            @Override
            public void over(final BaseDownloadTask baseDownloadTask) {
                ThreadUtil.runAsycTask(new Runnable() {
                    @Override
                    public void run() {
                        if (baseDownloadTask.getStatus() == -3) {
                            Log.i(AdsModule.TAG, "New ads.xml download successful!");
                            AdsModule.this.dealWithNewAdsXml();
                        } else {
                            Log.i(AdsModule.TAG, "New ads.xml download failed!");
                        }
                        AdsModule.this.finishUpdateTransaction();
                        Log.i(AdsModule.TAG, "Finish update transaction.");
                    }
                });
            }
        }).start();
    }
}