TIM v2.3.1版本的 MD5 值为:d6957e3ee7ce901ccc491cefdea0da8c

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


package com.tencent.biz.webviewplugin;

import android.app.Activity;
import android.content.Intent;
import android.text.TextUtils;
import com.tencent.biz.AuthorizeConfig;
import com.tencent.biz.common.util.Util;
import com.tencent.common.app.AppInterface;
import com.tencent.mobileqq.activity.QQBrowserActivity;
import com.tencent.mobileqq.app.AppConstants;
import com.tencent.mobileqq.msf.core.NetConnInfoCenter;
import com.tencent.mobileqq.utils.DeviceInfoUtil;
import com.tencent.mobileqq.utils.HexUtil;
import com.tencent.mobileqq.webview.swift.JsBridgeListener;
import com.tencent.mobileqq.webview.swift.WebViewPlugin;
import com.tencent.qphone.base.util.BaseApplication;
import com.tencent.qphone.base.util.QLog;
import com.tencent.smtt.sdk.CookieManager;
import com.tencent.smtt.sdk.CookieSyncManager;
import com.tencent.smtt.utils.Md5Utils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import mqq.app.AppRuntime;
import mqq.manager.TicketManager;
import org.json.JSONException;
import org.json.JSONObject;
@Deprecated
public class GetKeyPlugin extends WebViewPlugin {
    public static final String f83380a = "Cookie";
    public static final String f83381c = "async_cookie=1";
    private long f6666a;
    protected AuthorizeConfig f6667a;
    protected Thread f6668a;
    protected String f6671b;
    private boolean f6672b;
    protected final int f6665a = 0;
    protected final int f83382b = 1;
    protected final int f6673c = 2;
    protected final int d = 3;
    private boolean f6670a = true;
    HashMap f6669a = new HashMap();

    public GetKeyPlugin() {
        this.mPluginNameSpace = "Cookie";
    }

    @Override
    public void onCreate() {
        this.f6667a = AuthorizeConfig.a();
    }

    private boolean m1808a() {
        boolean z = BaseApplication.getContext().getSharedPreferences(AppConstants.f17367Y, 4).getBoolean("ptlogin_flag" + this.mRuntime.m9632a().getAccount(), false);
        if (QLog.isColorLevel()) {
            QLog.d(this.TAG, 2, "mPtloginFlag: " + z);
        }
        return z;
    }

    private boolean m1809a(String str) {
        if (str.contains("mail.qq.com")) {
            CookieManager cookieManager = CookieManager.getInstance();
            AppInterface m9632a = this.mRuntime.m9632a();
            Activity a2 = this.mRuntime.a();
            if (a2 != null) {
                Intent intent = a2.getIntent();
                cookieManager.setAcceptCookie(true);
                if (intent.getBooleanExtra(QQBrowserActivity.as, false)) {
                    this.f6672b = true;
                    String stringExtra = intent.getStringExtra(QQBrowserActivity.at);
                    if (m9632a != null) {
                        a(m9632a, stringExtra, "qq.com");
                        b(m9632a, stringExtra, "mail.qq.com");
                    }
                }
            }
        }
        return true;
    }

    protected void a(String str, String str2) {
        ArrayList arrayList = (ArrayList) this.f6669a.get(str);
        if (arrayList == null) {
            arrayList = new ArrayList();
        }
        arrayList.add(str2);
        this.f6669a.put(str, arrayList);
    }

    private void a() {
        HashMap hashMap = new HashMap();
        Set<Map.Entry> entrySet = this.f6669a.entrySet();
        StringBuilder sb = new StringBuilder(this.f6669a.size() == 0 ? 16 : this.f6669a.size() * 256);
        for (Map.Entry entry : entrySet) {
            String str = (String) entry.getKey();
            ArrayList arrayList = (ArrayList) entry.getValue();
            if (arrayList != null && arrayList.size() > 0) {
                String[] strArr = (String[]) arrayList.toArray(new String[arrayList.size()]);
                if (QLog.isColorLevel()) {
                    sb.append("set cookies: ").append(str).append(", value: ").append(Util.c(Arrays.toString(strArr), new String[0])).append("\n");
                }
                hashMap.put(str, strArr);
            }
        }
        if (QLog.isColorLevel()) {
            QLog.i(this.TAG, 2, sb.toString());
        }
        if (hashMap.size() > 0) {
            CookieManager.getInstance().setCookies(hashMap);
        }
        this.f6669a.clear();
    }

    private String a(String str) {
        StringBuffer stringBuffer = new StringBuffer("");
        ArrayList arrayList = (ArrayList) this.f6669a.get(str);
        if (arrayList == null) {
            return stringBuffer.toString();
        }
        Iterator it = arrayList.iterator();
        while (it.hasNext()) {
            stringBuffer.append((String) it.next());
        }
        return stringBuffer.toString();
    }

    @Override
    public boolean handleEvent(String str, long j, Map map) {
        if (j == 32) {
        }
        if (j == 8589934610L) {
            return m1809a(str);
        }
        return false;
    }

    @Override
    public void onPostPluginAsyncTask() {
        if (QLog.isColorLevel()) {
            QLog.d(this.TAG, 2, "async set cookie done, cost=" + (System.currentTimeMillis() - this.f6666a));
        }
        this.f6670a = true;
    }

    @Override
    public boolean handleJsRequest(JsBridgeListener jsBridgeListener, String str, String str2, String str3, String... strArr) {
        if (QLog.isColorLevel()) {
            QLog.d(this.TAG, 2, "handleJsRequest, url=" + Util.b(str, new String[0]));
        }
        if (!"Cookie".equals(str2) || str == null || str3 == null) {
            return false;
        }
        try {
            JSONObject jSONObject = new JSONObject(strArr[0]);
            String string = jSONObject.has("callback") ? jSONObject.getString("callback") : "";
            String[] strArr2 = new String[1];
            strArr2[0] = this.f6670a ? "true" : "false";
            callJs(string, strArr2);
            if (QLog.isColorLevel()) {
                QLog.d(this.TAG, 4, "on JS query async cookie setting status:" + this.f6670a);
            }
            return true;
        } catch (JSONException e) {
            QLog.e(this.TAG, 2, "on JS query async cookie setting status exception:" + e.getMessage());
            return false;
        } catch (Exception e2) {
            QLog.e(this.TAG, 2, "on JS query async cookie setting status exception:" + e2.getMessage());
            return false;
        }
    }

    @Override
    public void onDestroy() {
        AppInterface m9632a;
        if (this.f6672b && (m9632a = this.mRuntime.m9632a()) != null) {
            a(m9632a);
        }
        if (this.f6668a != null && this.f6668a.isAlive()) {
            this.f6668a.interrupt();
        }
    }

    private String b(String str) {
        if (!TextUtils.isEmpty(str)) {
            if (str.length() < 10) {
                StringBuilder sb = new StringBuilder("o");
                for (int length = str.length(); length < 10; length++) {
                    sb.append("0");
                }
                return sb.append(str).toString();
            }
            return "o" + str;
        }
        return str;
    }

    private void a(String str, CookieManager cookieManager, String str2) {
        if (cookieManager != null && !TextUtils.isEmpty(str) && !TextUtils.isEmpty(str2) && str.equalsIgnoreCase("https://aq.qq.com/cn2/findpsw/mobile_web_find_input_account?source_id=2756")) {
            a(str, String.format("dvid1=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", HexUtil.a(NetConnInfoCenter.GUID), str2));
            String m9130a = DeviceInfoUtil.m9130a();
            if (!TextUtils.isEmpty(m9130a)) {
                a(str, String.format("dvid5=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", m9130a, str2));
            }
            String m9136b = DeviceInfoUtil.m9136b();
            if (!TextUtils.isEmpty(m9136b)) {
                a(str, String.format("dvid4=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", Md5Utils.getMD5(m9136b), str2));
            }
            String c2 = DeviceInfoUtil.c(BaseApplication.getContext());
            if (!TextUtils.isEmpty(c2)) {
                a(str, String.format("dvid2=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", Md5Utils.getMD5(c2), str2));
            }
            String b2 = DeviceInfoUtil.b(BaseApplication.getContext());
            if (!TextUtils.isEmpty(b2)) {
                a(str, String.format("dvid3=%s; PATH=/; DOMAIN=.%s; Secure; HttpOnly;", Md5Utils.getMD5(b2), str2));
            }
        }
    }

    public Boolean a(AppRuntime appRuntime, String str, String str2) {
        if (TextUtils.isEmpty(str) || TextUtils.isEmpty(str2)) {
            return false;
        }
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        String str3 = "http://www." + str2 + '/';
        cookieManager.setCookie(str3, "uin=o" + str + "; PATH=/; DOMAIN=." + str2 + ';');
        cookieManager.setCookie(str3, "pt2gguin=o" + str + "; PATH=/; DOMAIN=." + str2 + ';');
        CookieSyncManager.createInstance(appRuntime.getApplication().getApplicationContext());
        CookieSyncManager.getInstance().sync();
        return true;
    }

    public Boolean b(AppRuntime appRuntime, String str, String str2) {
        if (TextUtils.isEmpty(str) || TextUtils.isEmpty(str2)) {
            return false;
        }
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        String str3 = "http://www." + str2 + '/';
        StringBuilder sb = new StringBuilder();
        sb.append("p_uin=").append(b(str)).append("; PATH=/; DOMAIN=.").append(str2).append(';');
        cookieManager.setCookie(str3, sb.toString());
        StringBuilder sb2 = new StringBuilder();
        sb2.append("uin=").append(b(str)).append("; PATH=/; DOMAIN=.").append(str2).append(';');
        cookieManager.setCookie(str3, sb2.toString());
        String pskey = ((TicketManager) appRuntime.getManager(2)).getPskey(str, str2);
        if (TextUtils.isEmpty(pskey)) {
            return false;
        }
        cookieManager.setCookie(str3, "p_skey=" + pskey + "; PATH=/; DOMAIN=." + str2 + ';');
        CookieSyncManager.createInstance(appRuntime.getApplication().getApplicationContext());
        CookieSyncManager.getInstance().sync();
        return true;
    }

    public Boolean a(AppRuntime appRuntime) {
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        String str = "http://www.qq.com/";
        cookieManager.setCookie(str, "uin=; PATH=/; DOMAIN=.qq.com;");
        cookieManager.setCookie(str, "pt2gguin=; PATH=/; DOMAIN=.qq.com;");
        String str2 = "http://www.mail.qq.com/";
        StringBuilder sb = new StringBuilder();
        sb.append("p_uin=").append("").append("; PATH=/; DOMAIN=.").append("mail.qq.com").append(';');
        cookieManager.setCookie(str2, sb.toString());
        StringBuilder sb2 = new StringBuilder();
        sb2.append("uin=").append("").append("; PATH=/; DOMAIN=.").append("mail.qq.com").append(';');
        cookieManager.setCookie(str2, sb2.toString());
        cookieManager.setCookie(str2, "p_skey=; PATH=/; DOMAIN=.mail.qq.com;");
        CookieSyncManager.createInstance(appRuntime.getApplication().getApplicationContext());
        CookieSyncManager.getInstance().sync();
        return true;
    }
}