360手机助手 v5.2.50版本的 MD5 值为:087c008db9e518cd556c792742e6830c

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


package com.qihoo.appstore.volley.a;

import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import com.qihoo.appstore.utils.AppstoreSharePref;
import com.qihoo.utils.ad;
import com.qihoo.utils.bn;
import com.qihoo.utils.ck;
import com.qihoo.utils.cn;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class d implements com.qihoo.utils.net.l {
    private static final Map b = new HashMap();
    private static final List c = new ArrayList();
    private static d d = null;
    private final String a = "ConnectInterceptor";

    public static d a() {
        if (d == null) {
            synchronized (d.class) {
                if (d == null) {
                    d = new d();
                }
            }
        }
        return d;
    }

    private d() {
        b();
    }

    public void b() {
        f();
        i.b();
        e();
        com.qihoo.utils.net.i.a().a(this);
    }

    private void e() {
        AppstoreSharePref.removeKey("ipPreferredList");
        AppstoreSharePref.removeKey("ipBackUpList");
    }

    private void f() {
        String b2 = b("{\"openbox.mobilem.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"update.mobilem.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"fake.api.mobilem.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"update.api.sj.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"wallpaper.api.sj.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"ebook.api.sj.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"ring.api.sj.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"topic.api.sj.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"free.api.sj.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"recommend.api.sj.360.cn\":{\"125.88.193.234\":3,\"221.130.199.88\":1,\"218.30.118.222\":3,\"123.125.82.206\":2},\"zonghe.m.so.com\":{\"111.13.66.125\":2,\"106.38.184.107\":2,\"125.88.193.217\":2,\"182.118.31.51\":2,\"221.130.199.208\":2},\"helper.m.so.com\":{\"111.13.65.243\":2,\"106.120.160.203\":2,\"182.118.31.99\":2},\"sug.m.so.com\":{\"106.120.160.207\":2,\"182.118.31.142\":2}}");
        if (!TextUtils.isEmpty(b2)) {
            try {
                a(new JSONObject(b2));
            } catch (JSONException e) {
                bn.e("ConnectInterceptor", e.toString());
            }
        }
        bn.b("NetMeter_Config", "initBackupIpList backupIpList = " + b2);
    }

    public void a(JSONObject jSONObject) {
        synchronized (b) {
            if (jSONObject != null) {
                if (!b.isEmpty()) {
                    b.clear();
                }
                Iterator<String> keys = jSONObject.keys();
                while (keys.hasNext()) {
                    String next = keys.next();
                    try {
                        Map map = (Map) b.get(next);
                        Map hashMap = map == null ? new HashMap() : map;
                        JSONArray optJSONArray = jSONObject.optJSONArray(next);
                        if (optJSONArray != null) {
                            for (int i = 0; i < optJSONArray.length(); i++) {
                                hashMap.put(optJSONArray.optString(i), "0");
                                if (bn.c()) {
                                    bn.b("ConnectInterceptor", String.format("backup: host:%s,ip:%s", next, optJSONArray.optString(i)));
                                }
                            }
                        } else {
                            JSONObject optJSONObject = jSONObject.optJSONObject(next);
                            if (optJSONObject != null) {
                                Iterator<String> keys2 = optJSONObject.keys();
                                while (keys2.hasNext()) {
                                    String next2 = keys2.next();
                                    hashMap.put(next2, String.valueOf(optJSONObject.optInt(next2)));
                                    if (bn.c()) {
                                        bn.b("ConnectInterceptor", String.format("backup: ip:%s,type:%s", next2, optJSONObject.optString(next2)));
                                    }
                                }
                            }
                        }
                        if (!hashMap.isEmpty()) {
                            b.put(next, hashMap);
                        }
                    } catch (Exception e) {
                        bn.c("ConnectInterceptor", e.toString(), e);
                    }
                }
            }
        }
    }

    public String a(String str, String str2) {
        String a = i.a(str);
        if (TextUtils.isEmpty(a) || a.equalsIgnoreCase(str2)) {
            if (b.size() > 0) {
                ArrayList arrayList = new ArrayList(((Map) b.get(str)).keySet());
                arrayList.remove(str2);
                if (arrayList == null || arrayList.size() == 0) {
                    return "";
                }
                return (String) arrayList.get(ck.a(r0.size() - 1));
            }
            return "";
        }
        return a;
    }

    public void b(JSONObject jSONObject) {
        bn.b("NetMeter_Config", "updateTargetIp = " + jSONObject.toString());
        a(jSONObject);
        i.a();
        a((String) null, true);
    }

    public void a(String str, boolean z) {
        bn.b("NetMeter_Config", "reselectTargetIp start");
        i.a(str, z);
        e(str);
        new Handler(Looper.getMainLooper()).post(new e(this));
    }

    private static void e(String str) {
        if (!TextUtils.isEmpty(str)) {
            synchronized (c) {
                if (c.contains(str)) {
                    c.remove(str);
                }
                c.add(str);
            }
        }
    }

    private static void g() {
        synchronized (c) {
            c.clear();
        }
    }

    @Override
    public void a(boolean z) {
        bn.b("NetMeter_Config", "onNetworkStatusChanged isConnected = " + z);
        if (z) {
            g();
            i.a(b, c, false);
        } else {
            i.a();
        }
    }

    public static void a(String str) {
        cn.a("connect_config", ad.a(), "ipBackUpList", (Object) str);
    }

    public static String b(String str) {
        return cn.a("connect_config", ad.a(), "ipBackUpList", str);
    }

    public static void c(String str) {
        cn.a("connect_config", ad.a(), "ipPreferredList", (Object) str);
    }

    public static String d(String str) {
        return cn.a("connect_config", ad.a(), "ipPreferredList", str);
    }
}