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;
}
}