50度灰 v5.8.2版本的 MD5 值为:9fe3d350fdc75fa1a3ec45509fa0107e

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


package c.e.a.b.b;

import android.os.Build;
import android.text.TextUtils;
import com.tencent.beacon.base.net.HttpMethod;
import com.tencent.beacon.base.net.f;
import com.tencent.beacon.base.net.g;
import java.util.LinkedHashMap;
import java.util.Map;
public class b {
    private static volatile b f615a;
    private static final Map<String, String> f616b = new LinkedHashMap();
    private boolean f617c = false;
    private boolean f618d = false;

    public class a implements com.tencent.beacon.base.net.a.b<com.tencent.beacon.base.net.b> {
        a() {
        }

        @Override
        public void a(g gVar) {
        }

        @Override
        public void a(com.tencent.beacon.base.net.b bVar) {
            c.e.a.b.e.c.c("AttaReport", "net ret: " + bVar.toString(), new Object[0]);
        }
    }

    public class RunnableC0015b implements Runnable {
        final String f620a;
        final String f621b;
        final Throwable f622c;
        final com.tencent.beacon.base.net.a.b s;

        RunnableC0015b(String str, String str2, Throwable th, com.tencent.beacon.base.net.a.b bVar) {
            this.f620a = str;
            this.f621b = str2;
            this.f622c = th;
            this.s = bVar;
        }

        @Override
        public void run() {
            synchronized (b.this) {
                LinkedHashMap linkedHashMap = new LinkedHashMap(b.f616b);
                linkedHashMap.put("error_code", this.f620a);
                linkedHashMap.put("error_msg", this.f621b);
                linkedHashMap.put("error_stack_full", c.e.a.b.e.b.e(this.f622c));
                linkedHashMap.put("_dc", String.valueOf(Math.random()));
                f.o().a(com.tencent.beacon.base.net.a.d.b().f("https://h.trace.qq.com/kv").b("atta").c(linkedHashMap).a(HttpMethod.POST).d()).a(this.s);
                c.e.a.b.e.c.n("[atta] upload a new error, errorCode: %s, message: %s, stack: %s", this.f620a, this.f621b, c.e.a.b.e.b.e(this.f622c));
            }
        }
    }

    private b() {
    }

    public static synchronized b f() {
        b bVar;
        synchronized (b.class) {
            if (f615a == null) {
                synchronized (b.class) {
                    if (f615a == null) {
                        f615a = new b();
                    }
                }
            }
            bVar = f615a;
        }
        return bVar;
    }

    private synchronized void h() {
        if (this.f617c) {
            return;
        }
        Map<String, String> map = f616b;
        map.put("attaid", "00400014144");
        map.put("token", "6478159937");
        map.put("error_code", "");
        map.put("platform", "Android");
        map.put("uin", c.e.a.b.c.c.q().j());
        map.put("model", Build.BOARD + " " + Build.MODEL);
        map.put("os", c.e.a.b.c.c.q().z());
        map.put("error_msg", "");
        map.put("error_stack_full", "");
        map.put("app_version", c.e.a.b.c.a.a());
        map.put("sdk_version", c.e.a.b.c.b.k().p());
        map.put("product_id", c.e.a.b.c.b.k().m());
        map.put("_dc", "");
        this.f617c = true;
    }

    public synchronized void b(String str, String str2) {
        c(str, str2, null);
    }

    public synchronized void c(String str, String str2, Throwable th) {
        d(str, str2, th, new a());
    }

    public synchronized void d(String str, String str2, Throwable th, com.tencent.beacon.base.net.a.b<com.tencent.beacon.base.net.b> bVar) {
        if (g()) {
            if (!this.f617c) {
                h();
            }
            if (TextUtils.isEmpty(str)) {
                c.e.a.b.e.c.h("[atta] errorCode isn't valid value!", new Object[0]);
            } else {
                c.e.a.b.b.a.b().f(new RunnableC0015b(str, str2, th, bVar));
            }
        }
    }

    public void e(boolean z) {
        this.f618d = z;
    }

    public boolean g() {
        if (this.f618d) {
            return true;
        }
        if (c.e.a.b.e.c.g()) {
            return false;
        }
        String j = c.e.a.b.c.c.q().j();
        return !TextUtils.isEmpty(j) && ((double) Math.abs(j.hashCode() % 10000)) < 100.0d;
    }
}