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