QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685

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


package com.tencent.mtt.view.common.qqemoji;

import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.text.TextUtils;
import com.tencent.common.task.TaskManager;
import com.tencent.common.utils.FileUtils;
import com.tencent.common.utils.ZipUtils;
import com.tencent.mtt.ContextHolder;
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.multiproc.QBSharedPreferences;
import com.tencent.mtt.setting.PublicSettingManager;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.json.JSONObject;

public class LoadQQEmojiManager {

    private final List<String> f74185a;

    private final List<Integer> f74186b;

    private File f74187c;

    private File f74188d;
    private boolean e;
    private DownLoadEmojiListener f;

    public static final class LoadQQEmojiManagerHolder {

        private static final LoadQQEmojiManager f74190a = new LoadQQEmojiManager();

        private LoadQQEmojiManagerHolder() {
        }
    }

    private LoadQQEmojiManager() {
        this.f74185a = new ArrayList();
        this.f74186b = new ArrayList();
        this.f74187c = null;
        this.f74188d = null;
        this.e = false;
        this.f = null;
        this.f74187c = new File(b(), "emoji");
        if (this.f74187c.exists()) {
            return;
        }
        this.f74187c.mkdirs();
    }

    public static LoadQQEmojiManager a() {
        return LoadQQEmojiManagerHolder.f74190a;
    }

    private String a(File file) {
        if (file != null && file.exists()) {
            try {
                ByteBuffer h = FileUtils.h(file);
                if (h == null) {
                    return null;
                }
                return new String(h.array(), 0, (int) file.length(), "UTF-8");
            } catch (Exception unused) {
            }
        }
        return null;
    }

    private void a(String str) {
        if (this.e) {
            return;
        }
        this.e = true;
        TaskManager.a().a((Task) new PictureTask(str, new TaskObserver() {
            @Override
            public void onTaskCompleted(Task task) {
                byte[] a2;
                LoadQQEmojiManager.this.e = false;
                if (!(task instanceof PictureTask) || (a2 = ((PictureTask) task).a()) == null || a2.length <= 0) {
                    LoadQQEmojiManager.this.h();
                    return;
                }
                FileUtils.b(LoadQQEmojiManager.this.f74187c);
                LoadQQEmojiManager.this.f74187c.mkdirs();
                if (!ZipUtils.a(new ByteArrayInputStream(a2), LoadQQEmojiManager.this.f74187c, (String) null)) {
                    LoadQQEmojiManager.this.h();
                    return;
                }
                PublicSettingManager.a().setString("key_home_feeds_last_emoji_package_url", task.getTaskUrl());
                LoadQQEmojiManager.this.d();
                LoadQQEmojiManager.this.g();
            }

            @Override
            public void onTaskCreated(Task task) {
            }

            @Override
            public void onTaskExtEvent(Task task) {
            }

            @Override
            public void onTaskFailed(Task task) {
                LoadQQEmojiManager.this.e = false;
                LoadQQEmojiManager.this.h();
            }

            @Override
            public void onTaskProgress(Task task) {
            }

            @Override
            public void onTaskStarted(Task task) {
            }
        }, false, (String) null, (byte) 0));
    }

    private synchronized void b(String str) {
        try {
            this.f74185a.clear();
            this.f74186b.clear();
            JSONObject jSONObject = new JSONObject(str);
            Iterator<String> keys = jSONObject.keys();
            while (keys.hasNext()) {
                String next = keys.next();
                int optInt = jSONObject.optInt(next);
                if (!TextUtils.isEmpty(next) && optInt > 0) {
                    this.f74185a.add(next);
                    this.f74186b.add(Integer.valueOf(optInt));
                }
            }
        } catch (Exception unused) {
        }
    }

    public void g() {
        DownLoadEmojiListener downLoadEmojiListener = this.f;
        if (downLoadEmojiListener != null) {
            downLoadEmojiListener.a();
        }
    }

    public void h() {
        DownLoadEmojiListener downLoadEmojiListener = this.f;
        if (downLoadEmojiListener != null) {
            downLoadEmojiListener.b();
        }
    }

    public void a(DownLoadEmojiListener downLoadEmojiListener) {
        this.f = downLoadEmojiListener;
        String string = PublicSettingManager.a().getString("key_home_feeds_last_emoji_package_url", "");
        String string2 = PublicSettingManager.a().getString("ANDROID_PUBLIC_PREFS_QQEMOJI_ZIP_URL", "https://static.res.qq.com/nav/qqEmoji/emoji.zip");
        if (TextUtils.equals(string, string2)) {
            return;
        }
        a(string2);
    }

    public boolean a(int i) {
        return this.f74186b.contains(Integer.valueOf(i));
    }

    public Bitmap b(int i) {
        if (!this.f74186b.contains(Integer.valueOf(i))) {
            return null;
        }
        return BitmapFactory.decodeFile(new File(this.f74187c, i + ".png").getAbsolutePath());
    }

    public File b() {
        if (this.f74188d == null) {
            this.f74188d = new File(FileUtils.j(), "qqEmoji");
        }
        return this.f74188d;
    }

    public void c() {
        String string = QBSharedPreferences.getSharedPreferences(ContextHolder.getAppContext(), "emoji_file_config", 0).getString("emoji_config", "");
        if (TextUtils.isEmpty(string)) {
            return;
        }
        b(string);
    }

    public void d() {
        String a2 = a(new File(this.f74187c, "map.txt"));
        SharedPreferences.Editor edit = QBSharedPreferences.getSharedPreferences(ContextHolder.getAppContext(), "emoji_file_config", 0).edit();
        edit.putString("emoji_config", a2);
        edit.commit();
    }

    public List<String> e() {
        return this.f74185a;
    }

    public List<Integer> f() {
        return this.f74186b;
    }
}