光速虚拟机 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();
}
}