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

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


package com.tencent.mobileqq.activity;

import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.tencent.biz.common.util.Util;
import com.tencent.biz.webviewbase.AbsBaseWebViewActivity;
import com.tencent.biz.webviewbase.WebAIOController;
import com.tencent.common.app.BaseApplicationImpl;
import com.tencent.magnifiersdk.memory.ActivityLeakSolution;
import com.tencent.mobileqq.app.AppConstants;
import com.tencent.mobileqq.app.ThreadExcutor;
import com.tencent.mobileqq.app.ThreadManager;
import com.tencent.mobileqq.gesturelock.GesturePWDUtils;
import com.tencent.mobileqq.transfile.dns.InnerDns;
import com.tencent.mobileqq.vaswebviewplugin.VasWebviewConstants;
import com.tencent.mobileqq.webprocess.WebAccelerateHelper;
import com.tencent.mobileqq.webview.WebViewTitleStyleHelper;
import com.tencent.mobileqq.webview.swift.SwiftWebViewFragmentSupporter;
import com.tencent.mobileqq.webview.swift.WebViewFragment;
import com.tencent.mobileqq.webview.swift.WebViewFragmentBuilder;
import com.tencent.mobileqq.webview.swift.WebViewTabBarData;
import com.tencent.mobileqq.webview.swift.WebviewFragmentTabBarBuilder;
import com.tencent.mobileqq.webview.swift.component.SwiftBrowserStatistics;
import com.tencent.mobileqq.webview.swift.utils.SwiftWebAccelerator;
import com.tencent.mobileqq.webview.swift.utils.SwiftWebViewUtils;
import com.tencent.qphone.base.util.QLog;
import com.tencent.smtt.sdk.WebView;
import com.tencent.tim.R;
import com.tencent.widget.immersive.ImmersiveUtils;
import cooperation.comic.VipComicReportUtils;
import cooperation.qzone.music.QzoneWebMusicJsPlugin;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class QQBrowserActivity extends FragmentActivity implements SwiftWebViewFragmentSupporter {
    public static final int A = 5;
    public static final int B = 6;
    public static final String f10655B = "WebLog_QQBrowserActivity";
    public static final int C = 1;
    public static final String f10656C = "Xiaomi_MI 2";
    public static final int D = 2;
    public static final String f10657D = "web_report";
    public static final int E = 3;
    public static final String f10658E = "action_name";
    public static final int F = 4;
    public static final String f10659F = "webview";
    public static final int G = 5;
    public static final String f10660G = "tabConfigData";
    public static int H = 0;
    public static final String f10661H = "topTabSwitchFragment";
    public static final String I = "topTabSelectIndex";
    public static final String J = "ba_is_login";
    public static final String K = "finish_animation_up_down";
    @Deprecated
    public static final String L = "avoidLoginWeb";
    public static final String M = "ignoreLoginWeb";
    public static final String N = "url";
    public static final String O = "titleStyle";
    public static final String P = "isOpeningQunApp";
    public static final String Q = "appid";
    public static final String R = "troopid";
    public static final String S = "extraParams";
    public static final String T = "articalChannelId";
    public static final String U = "ARTICAL_CHANNEL_EXTRAL_INFO";
    public static final String V = "onNewIntentReDoStateMachine";
    public static final String W = "isShowAd";
    public static final String X = "com.tencent.tim.SignInSbumited";
    public static final String Y = "friendUin";
    public static final String Z = "friendUin";
    private static final String f85283a = "browserRestoreFlag";
    public static final HashSet f10662a = AbsBaseWebViewActivity.f83370a;
    public static final String aa = "groupUin";
    public static final String ab = "uinType";
    public static final String ac = "fromPublicAccount";
    public static final String ad = "fromNearby";
    public static final String ae = "dicussgroup_uin";
    public static final String af = "qqbrowser_float_shortcut";
    public static final String ag = "qqBrowserActivityCreateTime";
    public static final String ah = "http://mdc.html5.qq.com/d/directdown.jsp?channel_id=50079";
    public static final String ai = "http://mdc.html5.qq.com/d/directdown.jsp?channel_id=10367";
    public static final String aj = "com.tencent.mobileqq.card.modify";
    public static final String ak = "com.tencent.mobileqq.view.self.album";
    public static final String al = "com.tencent.mobileqq.opencenter.vipInfo";
    public static final String am = "broadcastAction";
    public static final String an = "key_pay_action_result";
    public static final String ao = "reqType";
    public static final String ap = "2909288299";
    public static final String aq = "miniqb://home";
    public static final String ar = "version_code_key";
    public static final String as = "Web_load_email_pskey";
    public static final String at = "Web_load_email_uin";
    public static final String au = "fromAio";
    public static final int e = 4660;
    public static final int f = 0;
    public static final int g = 1;
    public static final int h = 2;
    public static final int i = 3;
    public static final int j = 4;
    public static final int k = 5;
    public static final int l = 6;
    public static final int m = 7;
    public static final int n = 9;
    public static final int o = 10;
    public static final int p = 11;
    public static final int q = 12;
    public static final int r = 13;
    public static final int s = 14;
    public static final int t = 100;
    public static final int u = 10000;
    public static final int w = 1;
    public static final int x = 2;
    public static final int y = 3;
    public static final int z = 4;
    private View f10663a;
    FrameLayout f10664a;
    public Class f10665a;
    public ArrayList f10666a;
    private boolean f10667a;
    private FrameLayout f85284b;
    private boolean f10668b;
    public int v = -1;

    @Override
    public void onCreate(Bundle bundle) {
        Util.m945a(SwiftBrowserStatistics.f);
        Intent intent = super.getIntent();
        if (bundle != null && bundle.getBoolean(f85283a)) {
            intent.putExtra(VasWebviewConstants.KEY_OPEN_PAGE_TIME, System.currentTimeMillis());
        }
        intent.putExtra(SwiftBrowserStatistics.W, System.currentTimeMillis());
        SwiftWebAccelerator.a().m9687a();
        SwiftWebAccelerator.b();
        if (!WebAccelerateHelper.isWebViewCache) {
            ThreadManager.a((Runnable) new kwj(this), (ThreadExcutor.IThreadListener) null, false);
            if (InnerDns.b() == null) {
                ThreadManager.a((Runnable) new kwk(this), (ThreadExcutor.IThreadListener) null, false);
            }
            if (!WebViewTitleStyleHelper.a().f34558a) {
                ThreadManager.a((Runnable) new kwl(this), (ThreadExcutor.IThreadListener) null, false);
            }
        }
        ThreadManager.a((Runnable) new kwm(this), (ThreadExcutor.IThreadListener) null, false);
        super.onCreate(bundle);
        if (Build.VERSION.SDK_INT > 10 && !f10662a.contains(Build.MANUFACTURER + "_" + Build.MODEL)) {
            getWindow().addFlags(16777216);
        }
        Util.m947b(SwiftBrowserStatistics.f);
    }

    @Override
    public void doOnSaveInstanceState(Bundle bundle) {
        if (bundle == null) {
            bundle = new Bundle();
        }
        bundle.putBoolean(f85283a, true);
        super.doOnSaveInstanceState(bundle);
    }

    protected void a(Bundle bundle) {
        super.onCreate(bundle);
    }

    @Override
    public boolean doOnCreate(Bundle bundle) {
        Util.m945a(SwiftBrowserStatistics.g);
        Intent intent = super.getIntent();
        intent.putExtra(SwiftBrowserStatistics.X, System.currentTimeMillis());
        c();
        d();
        this.mNeedStatusTrans = false;
        FrameLayout frameLayout = new FrameLayout(this);
        setTheme(R.style.f67878name_res_0x7f0d02a2);
        super.doOnCreate(bundle);
        super.setContentView(frameLayout, new FrameLayout.LayoutParams(-1, -1));
        if (ImmersiveUtils.isSupporImmersive() == 1) {
            super.getActivity().getWindow().addFlags(67108864);
        }
        Serializable serializableExtra = intent.getSerializableExtra(f10660G);
        if (serializableExtra instanceof ArrayList) {
            this.f10666a = (ArrayList) serializableExtra;
        }
        if (this.f10666a == null) {
            WebViewTabBarData webViewTabBarData = new WebViewTabBarData();
            webViewTabBarData.tag = "web";
            webViewTabBarData.url = intent.getStringExtra("url");
            if (webViewTabBarData.url == null) {
                webViewTabBarData.url = "";
                QLog.e(f10655B, 1, "url = null");
            }
            this.f10666a = new ArrayList(1);
            this.f10666a.add(webViewTabBarData);
        } else {
            intent.removeExtra(f10660G);
        }
        this.f85284b = frameLayout;
        if (this.f10666a.size() > 1 && !(frameLayout.getParent() instanceof FrameLayout)) {
            this.f85284b = new FrameLayout(this);
            frameLayout.addView(this.f85284b, new FrameLayout.LayoutParams(-1, -1));
            QLog.i(f10655B, 1, "doOnCreate warning:content is not an instance of FrameLayout.");
        }
        this.f85284b.setId(R.id.f47518name_res_0x7f0901ba);
        if (this.f10666a.size() > 1) {
            this.f10663a = WebviewFragmentTabBarBuilder.a(this, intent, this.f10666a, new kwn(this));
            this.f10663a.setId(R.id.f49299name_res_0x7f0908af);
            ViewParent parent = this.f85284b.getParent();
            if (parent instanceof FrameLayout) {
                if (!intent.getBooleanExtra(f10661H, false)) {
                    ((FrameLayout) parent).addView(this.f10663a, new FrameLayout.LayoutParams(-1, -2, 80));
                    FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) this.f85284b.getLayoutParams();
                    layoutParams.bottomMargin = (int) ((54.0f * getResources().getDisplayMetrics().density) + 0.5f);
                    this.f85284b.setLayoutParams(layoutParams);
                }
            } else {
                QLog.e(f10655B, 1, "doOnCreate error:should not enter here!");
            }
        } else {
            WebViewTabBarData webViewTabBarData2 = (WebViewTabBarData) this.f10666a.get(0);
            WebViewFragment a2 = a(webViewTabBarData2);
            if (a2 != null) {
                if (!a2.isAdded()) {
                    super.getSupportFragmentManager().beginTransaction().add(R.id.f47518name_res_0x7f0901ba, a2, webViewTabBarData2.tag).commitAllowingStateLoss();
                } else {
                    super.getSupportFragmentManager().beginTransaction().show(a2).commitAllowingStateLoss();
                }
            }
        }
        Util.m947b(SwiftBrowserStatistics.g);
        return true;
    }

    protected void c() {
        getWindow().setFormat(-3);
    }

    protected void d() {
        getWindow().setBackgroundDrawable(null);
    }

    @Override
    public void doOnDestroy() {
        if (this.f85284b != null) {
            ViewParent parent = this.f85284b.getParent();
            if (parent instanceof ViewGroup) {
                ((ViewGroup) parent).removeView(this.f10663a);
            }
            this.f10663a = null;
        }
        ActivityLeakSolution.fixInputMethodManagerLeak(this);
        ActivityLeakSolution.fixAudioManagerLeak(this);
        try {
            super.doOnDestroy();
        } catch (Exception e2) {
            QLog.e(f10655B, 1, e2, new Object[0]);
        }
    }

    public static WebViewFragment a(int i2, QQBrowserActivity qQBrowserActivity) {
        WebViewTabBarData webViewTabBarData = (WebViewTabBarData) qQBrowserActivity.f10666a.get(i2);
        WebViewFragment a2 = qQBrowserActivity.a(webViewTabBarData);
        WebViewFragment mo2731a = qQBrowserActivity.mo2731a();
        FragmentTransaction beginTransaction = qQBrowserActivity.getSupportFragmentManager().beginTransaction();
        beginTransaction.hide(mo2731a);
        if (a2 != null) {
            if (!a2.isAdded()) {
                beginTransaction.add(R.id.f47518name_res_0x7f0901ba, a2, webViewTabBarData.tag);
            } else {
                beginTransaction.show(a2);
            }
        }
        beginTransaction.commitAllowingStateLoss();
        return a2;
    }

    protected boolean m2733a(Bundle bundle) {
        return super.doOnCreate(bundle);
    }

    @Override
    public WebViewFragment mo2732a(Intent intent) {
        WebViewFragment webViewFragment;
        if (this.f10665a != null) {
            try {
                webViewFragment = (WebViewFragment) this.f10665a.newInstance();
            } catch (Exception e2) {
                webViewFragment = new WebViewFragment();
            }
        } else {
            webViewFragment = new WebViewFragment();
        }
        Bundle bundle = new Bundle();
        bundle.putParcelable("intent", intent);
        webViewFragment.setArguments(bundle);
        return webViewFragment;
    }

    public WebViewFragment a(WebViewTabBarData webViewTabBarData) {
        if (webViewTabBarData != null) {
            WebViewFragment webViewFragment = (WebViewFragment) super.getSupportFragmentManager().findFragmentByTag(webViewTabBarData.tag);
            if (webViewFragment == null) {
                Intent intent = super.getIntent();
                long longExtra = intent.getLongExtra(VasWebviewConstants.KEY_OPEN_PAGE_TIME, -1L);
                if (longExtra == -1 || System.currentTimeMillis() - longExtra > 5000) {
                    intent.putExtra(VasWebviewConstants.KEY_OPEN_PAGE_TIME, System.currentTimeMillis());
                }
                Intent intent2 = new Intent(intent);
                WebViewFragment a2 = WebViewFragmentBuilder.a(this, webViewTabBarData, intent2);
                a(intent2);
                intent.removeExtra(VasWebviewConstants.KEY_OPEN_PAGE_TIME);
                intent.removeExtra(SwiftBrowserStatistics.W);
                intent.removeExtra(SwiftBrowserStatistics.X);
                intent.removeExtra(VipComicReportUtils.j);
                if (QLog.isColorLevel()) {
                    QLog.d(SwiftBrowserStatistics.f95075b, 2, "Web_qqbrowser_  create a new WebViewFragment ");
                    return a2;
                }
                return a2;
            }
            return webViewFragment;
        }
        return null;
    }

    private void a(Intent intent) {
        String a2 = SwiftWebViewUtils.a(intent);
        WebAccelerateHelper.getInstance().preGetKey(a2, intent, null);
        WebAccelerateHelper.getInstance().preCheckOffline(a2);
    }

    @Override
    public void doOnActivityResult(int i2, int i3, Intent intent) {
        super.doOnActivityResult(i2, i3, intent);
        if (i3 == 4660) {
            super.setResult(4660);
            finish();
        }
        WebViewFragment mo2731a = mo2731a();
        if (mo2731a != null) {
            mo2731a.a(i2, i3, intent);
        }
    }

    @Override
    public void doOnNewIntent(Intent intent) {
        super.doOnNewIntent(intent);
        WebViewFragment mo2731a = mo2731a();
        if (mo2731a != null) {
            mo2731a.mo9617a(intent);
        }
    }

    @Override
    public void onWindowFocusChanged(boolean z2) {
        super.onWindowFocusChanged(z2);
        WebViewFragment mo2731a = mo2731a();
        if (mo2731a != null) {
            mo2731a.g(z2);
        }
    }

    @Override
    public synchronized Object getSystemService(String str) {
        Object systemService;
        if ("audio".equals(str)) {
            systemService = null;
            WebViewFragment mo2731a = mo2731a();
            if (mo2731a != null) {
                systemService = mo2731a.mo9616a();
            }
            if (systemService == null) {
                systemService = super.getSystemService("audio");
                if (QLog.isColorLevel()) {
                    QLog.d(f10655B, 2, "using system AudioManager");
                }
            }
        } else {
            systemService = super.getSystemService(str);
        }
        return systemService;
    }

    @Override
    protected void requestWindowFeature(Intent intent) {
        if (getWindow().getContainer() == null) {
            requestWindowFeature(7);
        }
    }

    public WebAIOController a() {
        return null;
    }

    @Override
    public boolean isWrapContent() {
        return false;
    }

    @Override
    public void onConfigurationChanged(Configuration configuration) {
        super.onConfigurationChanged(configuration);
        WebViewFragment mo2731a = mo2731a();
        if (mo2731a != null) {
            mo2731a.a(configuration);
        }
    }

    @Override
    public void finish() {
        if (QLog.isColorLevel()) {
            QLog.d(f10655B, 2, QzoneWebMusicJsPlugin.EVENT_FINISH);
        }
        WebViewFragment mo2731a = mo2731a();
        if (mo2731a != null) {
            mo2731a.mo9622b();
        }
        InputMethodManager inputMethodManager = (InputMethodManager) getSystemService("input_method");
        if (inputMethodManager != null && super.getCurrentFocus() != null) {
            inputMethodManager.hideSoftInputFromWindow(super.getCurrentFocus().getWindowToken(), 0);
        }
        super.finish();
        if (getIntent().getBooleanExtra(K, false)) {
            overridePendingTransition(0, R.anim.f37540name_res_0x7f04000a);
        }
        if (mo2731a != null && mo2731a.f34655a != null) {
            if ((mo2731a.f34655a.f35001d & 256) != 0) {
                overridePendingTransition(0, 0);
            } else if ((mo2731a.f34655a.f35001d & 512) != 0) {
                overridePendingTransition(0, R.anim.f37552name_res_0x7f040016);
            }
        }
    }

    @Override
    public boolean onBackEvent() {
        WebViewFragment mo2731a = mo2731a();
        if (mo2731a != null) {
            mo2731a.mo9624d();
            return true;
        }
        return true;
    }

    @Override
    public boolean doOnKeyDown(int i2, KeyEvent keyEvent) {
        WebViewFragment mo2731a = mo2731a();
        if (mo2731a != null) {
            mo2731a.a(i2, keyEvent);
        }
        return super.doOnKeyDown(i2, keyEvent);
    }

    @Override
    public void onPostThemeChanged() {
        super.onPostThemeChanged();
        WebViewFragment mo2731a = mo2731a();
        if (mo2731a != null) {
            mo2731a.y();
        }
    }

    public void a(WebView webView, String str) {
    }

    @Override
    public void setTitle(CharSequence charSequence) {
        WebViewFragment mo2731a = mo2731a();
        if (mo2731a != null) {
            mo2731a.e(charSequence.toString());
        }
        super.setTitle(charSequence);
    }

    @Override
    protected void doOnUserLeaveHint() {
        Intent intent = new Intent("tencent.notify.background");
        intent.putExtra("selfuin", BaseApplicationImpl.a().m1871a().getAccount());
        intent.putExtra("AccountInfoSync", AppConstants.dn);
        intent.putExtra("classname", getClass().getName());
        sendBroadcast(intent, "com.tencent.tim.msg.permission.pushnotify");
        super.doOnUserLeaveHint();
    }

    @Override
    public void receiveScreenOff() {
        super.receiveScreenOff();
        if (this.mCanLock && !TextUtils.isEmpty(BaseApplicationImpl.a().m1871a().getAccount()) && GesturePWDUtils.getGesturePWDState(this, BaseApplicationImpl.a().m1871a().getAccount()) == 2 && GesturePWDUtils.getGesturePWDMode(this, BaseApplicationImpl.a().m1871a().getAccount()) == 21) {
            startUnlockActivity();
        }
    }

    @Override
    public WebViewFragment mo2731a() {
        List<Fragment> fragments;
        FragmentManager supportFragmentManager = super.getSupportFragmentManager();
        if (supportFragmentManager != null && (fragments = supportFragmentManager.getFragments()) != null && fragments.size() > 0) {
            for (Fragment fragment : fragments) {
                if ((fragment instanceof WebViewFragment) && fragment.isVisible()) {
                    return (WebViewFragment) fragment;
                }
            }
        }
        return null;
    }

    @Override
    public boolean a(boolean z2) {
        if (this.f10663a != null) {
            this.f10663a.setVisibility(z2 ? 0 : 8);
        }
        if (this.f85284b != null) {
            FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) this.f85284b.getLayoutParams();
            layoutParams.bottomMargin = (int) (((z2 ? 54 : 0) * getResources().getDisplayMetrics().density) + 0.5f);
            this.f85284b.setLayoutParams(layoutParams);
        }
        return false;
    }

    @Override
    public boolean showPreview() {
        Util.m945a(SwiftBrowserStatistics.h);
        super.setImmersiveStatus();
        if (this.mSystemBarComp != null) {
            this.mSystemBarComp.init();
            int color = super.getResources().getColor(R.color.f38443name_res_0x7f0b002a);
            this.mSystemBarComp.a(color);
            this.mSystemBarComp.b(color);
        }
        overridePendingTransition(0, 0);
        View inflate = LayoutInflater.from(this).inflate(R.layout.f56463name_res_0x7f030076, (ViewGroup) null, false);
        if (this.mNeedStatusTrans && ImmersiveUtils.isSupporImmersive() == 1) {
            inflate.setFitsSystemWindows(true);
            inflate.setPadding(0, ImmersiveUtils.a((Context) this), 0, 0);
        }
        super.setContentView(inflate);
        ((TextView) findViewById(R.id.f48289name_res_0x7f0904bd)).setText(R.string.f60653name_res_0x7f0a08c9);
        Util.m947b(SwiftBrowserStatistics.h);
        return true;
    }
}