QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685
以下内容为反编译后的 EmojiDataProvider.java 源代码,内容仅作参考
package com.tencent.mtt.comment;
import android.text.TextUtils;
import com.tencent.common.task.TaskManager;
import com.tencent.common.threadpool.BrowserExecutorSupplier;
import com.tencent.common.utils.ByteUtils;
import com.tencent.common.utils.FileUtils;
import com.tencent.common.utils.Md5Utils;
import com.tencent.common.utils.ZipUtils;
import com.tencent.mtt.base.task.PictureTask;
import com.tencent.mtt.base.task.Task;
import com.tencent.mtt.base.task.TaskObserver;
import com.tencent.mtt.comment.Emoji;
import com.tencent.mtt.comment.inhost.CommentEmojiUtils;
import com.tencent.mtt.setting.PublicSettingManager;
import com.tencent.mtt.view.common.QBEmojiTextManager;
import com.xiaomi.mipush.sdk.Constants;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.util.ArrayList;
import tmsdk.common.gourd.vine.IActionReportService;
public class EmojiDataProvider implements TaskObserver {
protected static byte f47600a = 0;
protected static byte f47601b = 1;
protected static byte f47602c = 2;
protected static byte f47603d = 3;
static String g = "QigeBiaoqing.txt";
protected File f;
private ArrayList<Emoji> i;
private IOnRemoteEmojiListener k;
private String h = "666:666:https://3gimg.qq.com/tagstore/QigeBiaoqing/1-666.png;wow:wow:https://3gimg.qq.com/tagstore/QigeBiaoqing/2-wow.png;ainiyo:爱你哟:https://3gimg.qq.com/tagstore/QigeBiaoqing/3-ainiyo.png;zan:赞:https://3gimg.qq.com/tagstore/QigeBiaoqing/4-zan.png;xixixi:嘻嘻嘻:https://3gimg.qq.com/tagstore/QigeBiaoqing/5-xixixi.png;hahaha:哈哈哈:https://3gimg.qq.com/tagstore/QigeBiaoqing/6-hahaha.png;xiexie:谢谢:https://3gimg.qq.com/tagstore/QigeBiaoqing/7-xiexie.png;haixiu:害羞:https://3gimg.qq.com/tagstore/QigeBiaoqing/8-haixiu.png;koubi:抠鼻:https://3gimg.qq.com/tagstore/QigeBiaoqing/9-koubi.png;nani:纳尼:https://3gimg.qq.com/tagstore/QigeBiaoqing/10-nani.png;no:不:https://3gimg.qq.com/tagstore/QigeBiaoqing/11-no.png;wulian:捂脸:https://3gimg.qq.com/tagstore/QigeBiaoqing/12-wulian.png;tuxie:吐血:https://3gimg.qq.com/tagstore/QigeBiaoqing/13-tuxie.png;wunai:无奈:https://3gimg.qq.com/tagstore/QigeBiaoqing/14-wunai.png;fadai:发呆:https://3gimg.qq.com/tagstore/QigeBiaoqing/15-fadai.png;fennu:愤怒:https://3gimg.qq.com/tagstore/QigeBiaoqing/16-fennu.png;danu:大怒:https://3gimg.qq.com/tagstore/QigeBiaoqing/17-danu.png;baodatui:抱大腿:https://3gimg.qq.com/tagstore/QigeBiaoqing/18-baodatui.png;fangjiala:放假啦:https://3gimg.qq.com/tagstore/QigeBiaoqing/19-fangjiala.png;jiaban:加班:https://3gimg.qq.com/tagstore/QigeBiaoqing/20-jiaban.png;shuajian:耍贱:https://3gimg.qq.com/tagstore/QigeBiaoqing/21-shuajian.png;jianaomen:夹脑门:https://3gimg.qq.com/tagstore/QigeBiaoqing/22-jianaomen.png;";
private boolean j = false;
protected byte e = f47600a;
public interface IOnRemoteEmojiListener {
void a(ArrayList<Emoji> arrayList);
}
public EmojiDataProvider() {
this.f = null;
this.f = new File(CommentEmojiUtils.a(), "emoji");
if (this.f.exists()) {
return;
}
this.f.mkdirs();
}
private String a(int i, String str) {
return this.f + "/QigeBiaoqing/" + i + Constants.ACCEPT_TIME_SEPARATOR_SERVER + str + ".png";
}
public ArrayList<Emoji> b(String str) {
Emoji emoji;
ArrayList<Emoji> arrayList = new ArrayList<>();
if (TextUtils.isEmpty(str)) {
return arrayList;
}
String[] split = str.split(IActionReportService.COMMON_SEPARATOR);
for (int i = 0; i < split.length; i++) {
String[] split2 = split[i].split(Constants.COLON_SEPARATOR, 3);
if (split2.length < 3) {
String[] strArr = {"", "", ""};
for (int i2 = 0; i2 < split2.length; i2++) {
strArr[i2] = split2[i2];
}
File file = new File(a(i + 1, strArr[0]));
if (file.exists()) {
emoji = new Emoji(1, new Emoji.RemoteEmoji(strArr[0], strArr[1], strArr[2], file.getAbsolutePath()));
arrayList.add(emoji);
}
} else {
File file2 = new File(a(i + 1, split2[0]));
if (file2.exists()) {
emoji = new Emoji(1, new Emoji.RemoteEmoji(split2[0], split2[1], split2[2], file2.getAbsolutePath()));
arrayList.add(emoji);
}
}
}
return arrayList;
}
public ArrayList<Emoji> a() {
ArrayList<Emoji> arrayList = new ArrayList<>();
int length = QBEmojiTextManager.b().f74118a.length;
for (int i = 0; i < length; i++) {
arrayList.add(new Emoji(0, new Emoji.DefaultEmoji(QBEmojiTextManager.b().f74118a[i], QBEmojiTextManager.b().f74119b[i])));
}
return arrayList;
}
public void a(IOnRemoteEmojiListener iOnRemoteEmojiListener) {
if (iOnRemoteEmojiListener != null) {
ArrayList<Emoji> arrayList = this.i;
if (arrayList != null && arrayList.size() > 0) {
iOnRemoteEmojiListener.a(this.i);
} else {
a(true);
this.k = iOnRemoteEmojiListener;
}
}
}
public void a(String str) {
if (this.j) {
return;
}
this.j = true;
TaskManager.a().a((Task) new PictureTask(str, this, false, null, (byte) 0, "emoji"));
}
public void a(final boolean z) {
byte b2 = this.e;
byte b3 = f47601b;
if (b2 == b3) {
return;
}
this.e = b3;
BrowserExecutorSupplier.postForIoTasks(new BrowserExecutorSupplier.BackgroundRunable() {
@Override
public void doRun() {
EmojiDataProvider.this.h = CommentEmojiUtils.a(new File(EmojiDataProvider.this.f + "/QigeBiaoqing", EmojiDataProvider.g));
if (TextUtils.isEmpty(EmojiDataProvider.this.h)) {
EmojiDataProvider.this.e = EmojiDataProvider.f47603d;
if (z) {
EmojiDataProvider.this.a("https://3gimg.qq.com/tagstore/QigeBiaoqing/QigeBiaoqing.zip");
return;
}
return;
}
EmojiDataProvider.this.e = EmojiDataProvider.f47602c;
EmojiDataProvider emojiDataProvider = EmojiDataProvider.this;
emojiDataProvider.i = emojiDataProvider.b(emojiDataProvider.h);
if (EmojiDataProvider.this.i == null || EmojiDataProvider.this.i.size() <= 0 || EmojiDataProvider.this.k == null) {
return;
}
BrowserExecutorSupplier.forMainThreadTasks().execute(new Runnable() {
@Override
public void run() {
EmojiDataProvider.this.k.a(EmojiDataProvider.this.i);
}
});
}
});
}
@Override
public void onTaskCompleted(Task task) {
byte[] a2;
this.j = false;
if (!(task instanceof PictureTask) || (a2 = ((PictureTask) task).a()) == null || a2.length <= 0) {
return;
}
FileUtils.b(this.f);
this.f.mkdirs();
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(a2);
byte[] a3 = Md5Utils.a(byteArrayInputStream);
if (a3 != null) {
PublicSettingManager.a().setString("key_comment_emoji_md5", ByteUtils.byteToHexString(a3));
}
byteArrayInputStream.reset();
if (ZipUtils.a(byteArrayInputStream, this.f, (String) null)) {
a(false);
}
}
@Override
public void onTaskCreated(Task task) {
}
@Override
public void onTaskExtEvent(Task task) {
}
@Override
public void onTaskFailed(Task task) {
this.j = false;
}
@Override
public void onTaskProgress(Task task) {
}
@Override
public void onTaskStarted(Task task) {
}
}