QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685
以下内容为反编译后的 CirclePostPage.java 源代码,内容仅作参考
package com.tencent.mtt.external.circle.view;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.FrameLayout;
import com.dike.lib.apkmarker.Apk;
import com.tencent.common.threadpool.BrowserExecutorSupplier;
import com.tencent.mtt.ContextHolder;
import com.tencent.mtt.base.functionwindow.ActivityHandler;
import com.tencent.mtt.base.nativeframework.NativePage;
import com.tencent.mtt.base.nativeframework.NativeWebLongClickListener;
import com.tencent.mtt.base.webview.QBWebView;
import com.tencent.mtt.base.webview.common.QBWebChromeClient;
import com.tencent.mtt.base.webview.common.QBWebChromeClientExtension;
import com.tencent.mtt.base.webview.common.QBWebViewClient;
import com.tencent.mtt.base.wrapper.callback.IScrollListener;
import com.tencent.mtt.browser.bra.toolbar.CommentToolBarView;
import com.tencent.mtt.browser.menu.facade.IMenuService;
import com.tencent.mtt.browser.window.PageFrame;
import com.tencent.mtt.browser.window.UrlParams;
import com.tencent.mtt.browser.window.WindowManager;
import com.tencent.mtt.browser.window.data.PageInfo;
import com.tencent.mtt.browser.window.templayer.BaseNativeGroup;
import com.tencent.mtt.comment.facade.ICommentListenerExt;
import com.tencent.mtt.comment.facade.ICommentManager;
import com.tencent.mtt.comment.facade.ICommentService;
import com.tencent.mtt.external.circle.CircleConstant;
import com.tencent.mtt.external.circle.presenter.js.CirclePostJsExtension;
import com.tencent.mtt.external.setting.base.FontSizeChangeListener;
import com.tencent.mtt.external.setting.base.FontSizeManager;
import com.tencent.mtt.qbcontext.core.QBContext;
import com.tencent.mtt.view.addressbar.progress.ProgressBarView;
import com.tencent.mtt.view.addressbar.progress.ProgressCalculator;
import com.tencent.mtt.view.toast.MttToaster;
import com.tencent.mtt.view.viewpager.QBViewPager;
import com.tencent.qqlive.module.videoreport.collect.EventCollector;
import java.util.HashMap;
public class CirclePostPage extends NativePage implements ICommentListenerExt, FontSizeChangeListener {
protected ProgressCalculator f51118a;
protected ProgressBarView f51119b;
protected String f51120c;
protected ICommentManager f51121d;
protected QBViewPager e;
ViewGroup f;
private QBWebView g;
private String h;
private String i;
private HashMap<String, String> j;
private boolean k;
public CirclePostPage(Context context, BaseNativeGroup baseNativeGroup, String str, HashMap<String, String> hashMap) {
super(context, new FrameLayout.LayoutParams(-1, -1), baseNativeGroup, 2);
this.f51118a = new ProgressCalculator();
this.k = true;
this.i = str;
this.j = hashMap;
this.h = this.j.get("url");
a();
b();
FontSizeManager.a().a(this);
}
private void a() {
this.g = new QBWebView(getActivityContext());
QBWebView qBWebView = this.g;
qBWebView.setWebChromeClientExtension(new QBWebChromeClientExtension(qBWebView, 10, new NativeWebLongClickListener(qBWebView)));
this.g.refreshEyeShieldMode();
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(-1, -1);
layoutParams.gravity = 51;
this.g.addDefaultJavaScriptInterface();
this.g.addJavascriptInterface(new CirclePostJsExtension(this), CircleConstant.f51002a);
String e = this.g.getQBSettings().e();
this.g.getQBSettings().b(e + " CirclePost");
this.g.setQBWebChromeClient(new QBWebChromeClient() {
@Override
public void onProgressChanged(QBWebView qBWebView2, int i) {
super.onProgressChanged(qBWebView2, i);
if (i >= 100) {
if (CirclePostPage.this.k) {
CirclePostPage.this.k = false;
}
if (CirclePostPage.this.f51118a.e() != 1) {
CirclePostPage.this.f51118a.a((byte) 1);
}
}
}
@Override
public void onReceivedTitle(QBWebView qBWebView2, String str) {
CirclePostPage.this.f51120c = str;
super.onReceivedTitle(qBWebView2, str);
if (CirclePostPage.this.mWebViewClient != null) {
CirclePostPage.this.mWebViewClient.onReceivedTitle(CirclePostPage.this, str);
}
}
});
QBWebView qBWebView2 = this.g;
qBWebView2.setWebChromeClientExtension(new QBWebChromeClientExtension(qBWebView2, 0, new NativeWebLongClickListener(qBWebView2)));
PageFrame s = WindowManager.a().s();
if (s != null && s.getWebPageScroller() != null && (s.getWebPageScroller() instanceof QBViewPager)) {
this.e = (QBViewPager) s.getWebPageScroller();
}
this.g.setX5WebViewOnScrollListener(new IScrollListener() {
@Override
public boolean onOverScroll(int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8, boolean z) {
if (CirclePostPage.this.e != null) {
return CirclePostPage.this.e.onOverScroll(i, i2, i3, i4, i5, i6, i7, i8, z);
}
return false;
}
});
this.g.setQBWebViewClient(new QBWebViewClient() {
@Override
public void onPageFinished(QBWebView qBWebView3, String str) {
if (CirclePostPage.this.f51118a.e() != 1) {
CirclePostPage.this.f51118a.a((byte) 1);
}
}
@Override
public void onPageStarted(QBWebView qBWebView3, String str, Bitmap bitmap) {
super.onPageStarted(qBWebView3, str, bitmap);
if (CirclePostPage.this.f51118a.e() != 0) {
CirclePostPage.this.f51118a.a((byte) 0);
}
}
@Override
public boolean shouldOverrideUrlLoading(QBWebView qBWebView3, String str) {
if (qBWebView3 == null || TextUtils.isEmpty(qBWebView3.getUrl()) || qBWebView3.getUrl().equals(str)) {
return false;
}
new UrlParams(str).b(1).c(61).e();
return true;
}
});
addView(this.g, layoutParams);
this.f51119b = new ProgressBarView(getContext());
FrameLayout.LayoutParams layoutParams2 = new FrameLayout.LayoutParams(-1, this.f51119b.getProcessHeight());
layoutParams2.gravity = 51;
this.f51119b.setLayoutParams(layoutParams2);
this.f51119b.setProcessBarCalculator(this.f51118a);
addView(this.f51119b);
if (this.f51118a.e() != 0) {
this.f51118a.a((byte) 0);
}
this.g.loadUrl(this.h);
}
private void b() {
this.mAddressBarDataSource.i = CommentToolBarView.class;
this.mAddressBarDataSource.k.putBoolean("toolBarCommentBtnEnable", true);
this.mAddressBarDataSource.k.putBoolean("toolBarInputBtnEnable", true);
this.mAddressBarDataSource.j = this;
this.f51121d = ((ICommentService) QBContext.getInstance().getService(ICommentService.class)).getCommentManager(getContext(), this.j.get("circleid"), this.j.get("postid"), this.j.get(Apk.IEditor.KEY_CHANNEL), 0);
ICommentManager iCommentManager = this.f51121d;
if (iCommentManager != null) {
iCommentManager.a(this);
}
}
private static Context getActivityContext() {
Activity n = ActivityHandler.b().n();
if (n == null) {
n = ActivityHandler.b().a();
}
return n == null ? ContextHolder.getAppContext() : n;
}
public void a(final int i) {
BrowserExecutorSupplier.forMainThreadTasks().execute(new Runnable() {
@Override
public void run() {
String str;
int i2 = i;
if (i2 <= 0) {
str = "";
} else if (i2 < 10000) {
str = String.valueOf(i2);
} else {
float f = i2 / 10000.0f;
str = String.valueOf(f).substring(0, f < 10.0f ? 3 : 2) + "万";
}
CirclePostPage.this.mAddressBarDataSource.k.putString("toolBarCommentStr", str);
CirclePostPage.this.mAddressBarDataSource.g();
}
});
}
public void a(final String str, final String str2, final String str3) {
if (this.f51121d != null) {
BrowserExecutorSupplier.forMainThreadTasks().execute(new Runnable() {
@Override
public void run() {
CirclePostPage.this.f51121d.a(str3, str2, str, false, true);
}
});
}
}
@Override
public void active() {
super.active();
ICommentManager iCommentManager = this.f51121d;
if (iCommentManager != null) {
iCommentManager.a();
}
QBWebView qBWebView = this.g;
if (qBWebView != null) {
qBWebView.active();
}
}
@Override
public void addWrapperView(ViewGroup viewGroup, FrameLayout.LayoutParams layoutParams) {
this.f = viewGroup;
ViewParent parent = this.g.getParent();
ViewGroup.LayoutParams layoutParams2 = this.g.getLayoutParams();
if (parent instanceof ViewGroup) {
ViewGroup viewGroup2 = (ViewGroup) parent;
int indexOfChild = viewGroup2.indexOfChild(this.g);
viewGroup2.removeView(this.g);
viewGroup2.addView(this.f, indexOfChild, layoutParams2);
this.f.addView(this.g, new ViewGroup.LayoutParams(-1, -1));
}
}
@Override
public boolean can(int i) {
return i == 1 || i == 2 || i == 3 || i == 4 || i == 7 || i == 8 || i == 9 || i == 11;
}
@Override
public void deactive() {
super.deactive();
ICommentManager iCommentManager = this.f51121d;
if (iCommentManager != null) {
iCommentManager.b();
}
QBWebView qBWebView = this.g;
if (qBWebView != null) {
qBWebView.deactive();
}
}
@Override
public void destroy() {
this.g.destroy();
}
@Override
public String getContentUrl() {
return this.g.getUrl();
}
@Override
public String getPageTitle() {
return this.f51120c;
}
@Override
public View getPageView() {
return this.g;
}
@Override
public QBWebView getQBWebView() {
return this.g;
}
@Override
public PageInfo getShareBundle() {
PageInfo pageInfo = new PageInfo();
pageInfo.a(getPageTitle()).b(getUrl());
pageInfo.a(0);
return pageInfo;
}
@Override
public int getStatusBarBgColor() {
return -1;
}
@Override
public String getUrl() {
return this.i;
}
@Override
public int getWebviewScrollY() {
return this.g.getWebViewScrollY();
}
@Override
public ViewGroup getWrapperView() {
return this.f;
}
@Override
public void onClick(View view) {
String str;
EventCollector.getInstance().onViewClickedBefore(view);
if (view.getId() != 1313) {
if (view.getId() == 1212) {
try {
str = this.mAddressBarDataSource.k.getString("toolBarCommentStr", "");
} catch (Exception unused) {
str = "";
}
if (TextUtils.isEmpty(str)) {
MttToaster.show("评论正在加载", 2000);
} else {
QBWebView qBWebView = this.g;
if (qBWebView != null) {
qBWebView.loadUrl("javascript:togglePostPageYOffset()");
}
}
} else if (view.getId() == 1214) {
((IMenuService) QBContext.getInstance().getService(IMenuService.class)).actionShare();
}
EventCollector.getInstance().onViewClicked(view);
}
a("", "", "");
EventCollector.getInstance().onViewClicked(view);
}
@Override
public void onCommentCancel() {
}
@Override
public void onCommitResult(int i, String str, String str2, String str3, String str4) {
}
@Override
public void onCommitResult(final ICommentListenerExt.CommentResult commentResult) {
if (commentResult != null) {
post(new Runnable() {
@Override
public void run() {
if (CirclePostPage.this.g != null) {
try {
CirclePostPage.this.g.loadUrl("javascript:try{window.x5TweetSuccess(" + commentResult.j + ")}catch(e){}");
String string = CirclePostPage.this.mAddressBarDataSource.k.getString("toolBarCommentStr");
if (TextUtils.isEmpty(string) || string.contains("万")) {
return;
}
CirclePostPage.this.a(Integer.valueOf(string).intValue() + 1);
} catch (Exception unused) {
}
}
}
});
}
}
@Override
public void onFontSizeChanged(boolean z, int i, int i2) {
QBWebView qBWebView = this.g;
if (qBWebView != null) {
qBWebView.setFontSize(z, i, i2);
}
}
@Override
public void onPostBtnClick(boolean z) {
}
@Override
public void onSwitchBtnClick(boolean z) {
}
@Override
public void onWebColorChanged() {
QBWebView qBWebView = this.g;
if (qBWebView != null) {
qBWebView.refreshEyeShieldMode();
}
}
@Override
public void reload() {
this.g.reload();
}
@Override
public void switchSkin() {
QBWebView qBWebView = this.g;
if (qBWebView != null) {
qBWebView.switchSkin();
}
super.switchSkin();
}
}