夏天YY v1.0版本的 MD5 值为:04df6daece98ad4aaa5f0e7a450865f8
以下内容为反编译后的 gk.java 源代码,内容仅作参考
package c.t.m.g;
import android.content.Context;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class gk {
private String a = "ModuleUpadateImpl";
private Context b;
public gk(Context context) {
this.b = context;
}
public void a(List<gl> list, List<gl> list2) {
try {
gw.a(this.b).a("update");
for (int i = 0; i < 3; i++) {
boolean c2 = c(list, list2);
if (gn.a) {
String str = this.a;
gn.a(str, "down load new module result " + c2 + ", retry " + i);
}
if (c2) {
break;
}
}
gw.a(this.b).b("update");
gd.a().d();
} catch (Throwable th) {
if (gn.a) {
gn.a(this.a, th);
}
}
}
private List<gl> b(List<gl> list, List<gl> list2) {
boolean z;
ArrayList arrayList = new ArrayList();
for (int i = 0; i < list.size(); i++) {
gl glVar = list.get(i);
int i2 = 0;
while (true) {
if (i2 >= list2.size()) {
z = false;
break;
} else if (glVar.a == list2.get(i2).a) {
arrayList.add(list2.get(i2));
z = true;
break;
} else {
i2++;
}
}
if (!z) {
arrayList.add(glVar);
}
}
return arrayList;
}
private boolean a(String str, byte[] bArr, gl glVar) {
if (bArr == null || bArr.length == 0) {
if (gn.a) {
String str2 = this.a;
gn.a(str2, "write to this path with data null," + str);
}
return false;
} else if (!new gx(str).a(bArr, false)) {
if (gn.a) {
String str3 = this.a;
gn.a(str3, "write to this path failed !!!," + str);
}
return false;
} else {
String a = gy.a(new File(str));
if (a == null || !glVar.e.equals(a)) {
if (gn.a) {
String str4 = this.a;
gn.a(str4, "check data from server failed !!!," + str);
}
return false;
} else if (gn.a) {
String str5 = this.a;
gn.a(str5, "download and check data from server success !!!," + str);
return true;
} else {
return true;
}
}
}
private synchronized boolean c(List<gl> list, List<gl> list2) {
long d = gy.d();
if (d < 10485760) {
if (gn.a) {
gn.a(this.a, "Not enough storage, cancel!");
}
gd.a().a("MDS", "NoSpaceEnough," + d);
return false;
}
String b = gy.b(this.b, "TMLSDK_hp");
ArrayList arrayList = new ArrayList();
for (int i = 0; i < list.size(); i++) {
gl glVar = list.get(i);
if (a(b, glVar)) {
arrayList.add(glVar);
gd.a().a("MDS", "already," + glVar.f114c);
} else {
if (gn.a) {
gn.b(this.a, "current download module is " + glVar.toString());
}
String str = "https://maplbs-40171.sh.gfp.tencent-cloud.com/modules/" + glVar.e;
if (gn.a) {
gn.a(this.a, "dex down load url is " + str);
}
byte[] a = gs.a(str);
if (a != null) {
boolean a2 = a(b + File.separator + glVar.e + "." + glVar.f, gy.a(gq.b(a, gy.a("m_plugin_pwd", gu.n))), glVar);
if (gn.a) {
gn.a(this.a, "down load so check result:" + a2);
}
gd.a().a("MDS", "download res," + a2 + "," + glVar.f114c);
if (a2) {
arrayList.add(glVar);
}
} else {
gd.a().a("MDS", "netError");
if (gn.a) {
gn.a(this.a, "down load module failed!!!," + str);
}
}
}
}
if (gn.a) {
String str2 = this.a;
StringBuilder sb = new StringBuilder();
sb.append("all module download ");
sb.append(list.size() == arrayList.size());
gn.a(str2, sb.toString());
gn.a(this.a, "start rename download files");
}
gd.a().a("MDS", "should download," + list.size() + ",real download suc," + arrayList.size());
if (list.size() == arrayList.size()) {
String a3 = gy.a(b(list2, arrayList));
boolean a4 = gy.a(this.b, "SP_TMLSDK_MODULE_INFO", a3);
if (gn.a) {
gn.b(this.a, "module update success desc " + a3);
}
gd.a().a("MDS", "update result," + a4 + "," + a3);
return true;
}
return false;
}
private boolean a(String str, gl glVar) {
File file;
try {
file = new File(str, glVar.e + "." + glVar.f);
} catch (Exception e) {
if (gn.a) {
gn.a(this.a, e);
}
}
if (!file.exists()) {
if (gn.a) {
String str2 = this.a;
gn.b(str2, "checkIsDownLoadMoudle path is not exists," + file.getAbsolutePath());
}
return false;
}
long length = file.length();
String a = gy.a(file);
if (a != null && glVar.d == length && glVar.e.equals(a)) {
if (gn.a) {
String str3 = this.a;
gn.a(str3, "module to download is same to update dir ,so donot to download " + glVar);
return true;
}
return true;
}
return false;
}
}