QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685

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


package com.tencent.mtt;

import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import com.tencent.common.http.NetUtils;
import com.tencent.common.manifest.EventMessage;
import com.tencent.common.manifest.annotation.CreateMethod;
import com.tencent.common.manifest.annotation.EventReceiver;
import com.tencent.common.threadpool.BrowserExecutorSupplier;
import com.tencent.common.utils.UrlUtils;
import com.tencent.connect.common.Constants;
import com.tencent.mtt.base.functionwindow.ActivityHandler;
import com.tencent.mtt.base.hometab.ICustomTabService;
import com.tencent.mtt.base.preload.facade.IQbPreloadService;
import com.tencent.mtt.base.preload.facade.PreloadResult;
import com.tencent.mtt.base.stat.utils.PlatformStatUtils;
import com.tencent.mtt.base.utils.QBUrlUtils;
import com.tencent.mtt.boot.operation.IOperationUrlReportService;
import com.tencent.mtt.browser.SystemWebviewFixer;
import com.tencent.mtt.browser.download.business.core.DownloadOperationManager;
import com.tencent.mtt.browser.download.business.ui.QBDownloadSheet;
import com.tencent.mtt.browser.download.core.facade.IBusinessDownloadService;
import com.tencent.mtt.browser.download.core.facade.OverwritePolicy;
import com.tencent.mtt.browser.download.core.facade.ResultCallback;
import com.tencent.mtt.browser.download.core.impl.DownloadServiceManager;
import com.tencent.mtt.browser.download.engine.DownloadInfo;
import com.tencent.mtt.browser.window.UrlParams;
import com.tencent.mtt.businesscenter.facade.IFrameworkDelegate;
import com.tencent.mtt.hippy.qb.modules.appdownload.HippyAppConstants;
import com.tencent.mtt.qbcontext.core.QBContext;
import com.tencent.mtt.setting.PublicSettingManager;
import com.tencent.rmpbusiness.newuser.operation.NewUserGuideReporter;
import com.tencent.rmpbusiness.report.TraceEvent;
import com.tencent.rmpbusiness.report.TraceEventManager;
import java.net.URLDecoder;
import org.json.JSONObject;

public class NewRmpOperationManager {

    private static volatile NewRmpOperationManager f30628a;

    private boolean f30629b = false;

    private NewRmpOperationManager() {
    }

    private TraceEvent.UrlType a(String str, int i) {
        TraceEvent.UrlType urlType = TraceEvent.UrlType.TYPE_NONE;
        if (TextUtils.isEmpty(str)) {
            return urlType;
        }
        char c2 = 65535;
        switch (str.hashCode()) {
            case 49:
                if (str.equals("1")) {
                    c2 = 0;
                    break;
                }
                break;
            case 50:
                if (str.equals("2")) {
                    c2 = 1;
                    break;
                }
                break;
            case 51:
                if (str.equals("3")) {
                    c2 = 2;
                    break;
                }
                break;
            case 52:
                if (str.equals("4")) {
                    c2 = 3;
                    break;
                }
                break;
            case 54:
                if (str.equals(Constants.VIA_SHARE_TYPE_INFO)) {
                    c2 = 5;
                    break;
                }
                break;
            case 55:
                if (str.equals("7")) {
                    c2 = 4;
                    break;
                }
                break;
        }
        if (c2 == 0) {
            return TraceEvent.UrlType.TYPE_CLIP;
        }
        if (c2 == 1) {
            return TraceEvent.UrlType.TYPE_FILE;
        }
        if (c2 == 2) {
            return TraceEvent.UrlType.TYPE_APK;
        }
        if (c2 == 3) {
            return TraceEvent.UrlType.TYPE_NO_OAS_CLIP;
        }
        if (c2 == 4) {
            return TraceEvent.UrlType.TYPE_NO_OAS_FILE;
        }
        if (c2 != 5) {
            return urlType;
        }
        return i == 3 ? TraceEvent.UrlType.TYPE_OAS_CLIP : i == 5 ? TraceEvent.UrlType.TYPE_OAS_FILE : i == 6 ? TraceEvent.UrlType.TYPE_OAS_APK : i == 1 ? TraceEvent.UrlType.TYPE_OAS_SPLASH : i == 4 ? TraceEvent.UrlType.TYPE_OAS_TASK : TraceEvent.UrlType.TYPE_BUS;
    }

    private void a(Bundle bundle) {
        if (bundle == null || this.f30629b) {
            return;
        }
        this.f30629b = true;
        String string = bundle.getString("url");
        if (TextUtils.isEmpty(string)) {
            ((IOperationUrlReportService) QBContext.getInstance().getService(IOperationUrlReportService.class)).report("qb://home", true, 1);
        } else {
            a(string, bundle.getString("urlType"), bundle.getInt("recpMode", 0), bundle.getString("traceId"));
        }
    }

    private void a(String str, String str2, int i, String str3) {
        String str4;
        String handleNovelUrl = ((IQbPreloadService) QBContext.getInstance().getService(IQbPreloadService.class)).handleNovelUrl(str);
        PlatformStatUtils.a("NEWUSER_LOAD_RMP_URL_START");
        PublicSettingManager.a().setBoolean("key_intent_rmp_first", false);
        PlatformStatUtils.a("NEWUSER_LOAD_BUS_URL");
        PlatformStatUtils.a("NEWUSER_LOAD_RMP_URL_SUCC_FROM_" + str2);
        TraceEvent.UrlType a2 = a(str2, i);
        if (TextUtils.isEmpty(str3)) {
            str4 = handleNovelUrl;
        } else {
            str4 = TraceEventManager.a().a(handleNovelUrl, str3);
            TraceEventManager.a().a(str3, TraceEvent.TraceAction.FINAL_RET, str4, handleNovelUrl, a2);
        }
        NewUserGuideReporter.a(NewUserGuideReporter.Action.FINAL_RET, str4, str2);
        NewUserGuideReporter.a(NewUserGuideReporter.Action.LAUNCH_URL, str4, str2);
        TraceEventManager.a().a(str3, TraceEvent.TraceAction.LAUNCH_URL, str4, handleNovelUrl, a2);
        if (!c(str4)) {
            d(str4);
        } else {
            ((IOperationUrlReportService) QBContext.getInstance().getService(IOperationUrlReportService.class)).report(handleNovelUrl, true, 1);
            b(str4);
        }
    }

    private void b(final String str) {
        BrowserExecutorSupplier.forMainThreadTasks().execute(new Runnable() {
            @Override
            public void run() {
                PreloadResult handlePreload = ((IQbPreloadService) QBContext.getInstance().getService(IQbPreloadService.class)).handlePreload(str, 3);
                UrlParams b2 = new UrlParams(str).b(1);
                if (NewRmpOperationManager.this.a(str)) {
                    b2.b("qb://tab/feedschannel?component=FeedsNovelPage&module=novelsingletab&title=小说");
                }
                b2.b(QBUrlUtils.ab(str) && !SystemWebviewFixer.a());
                b2.a(handlePreload.f32886b);
                ((IFrameworkDelegate) QBContext.getInstance().getService(IFrameworkDelegate.class)).doLoad(b2);
            }
        });
    }

    private boolean c(String str) {
        return QBUrlUtils.w(str) || QBUrlUtils.a(str) || UrlUtils.isHttpsUrl(str) || UrlUtils.isHttpUrl(str);
    }

    private void d(String str) {
        if (TextUtils.isEmpty(str)) {
            return;
        }
        try {
            JSONObject jSONObject = new JSONObject(URLDecoder.decode(str, "UTF-8"));
            if (!jSONObject.has("downloadUrl")) {
                if (jSONObject.has("evokeUrl")) {
                    String string = jSONObject.getString("evokeUrl");
                    if (QBUrlUtils.o(string)) {
                        PlatformStatUtils.a("NEWUSER_APP_COMMENT_EVOKE");
                        ((IFrameworkDelegate) QBContext.getInstance().getService(IFrameworkDelegate.class)).doLoad(new UrlParams(string).b(1).c(-1).a((Bundle) null));
                        return;
                    }
                    return;
                }
                return;
            }
            String string2 = jSONObject.getString("downloadUrl");
            if (QBUrlUtils.o(string2)) {
                Boolean bool = true;
                String optString = jSONObject.optString("hasDlg");
                if (!TextUtils.isEmpty(optString) && TextUtils.equals(optString, "false")) {
                    bool = false;
                }
                jSONObject.optString("sceneId");
                final String string3 = jSONObject.getString(HippyAppConstants.KEY_FILE_NAME);
                final DownloadInfo downloadInfo = new DownloadInfo();
                downloadInfo.f37604a = string2;
                downloadInfo.f37606c = string3;
                downloadInfo.z = 7;
                downloadInfo.s = "application/vnd.android.package-archive";
                downloadInfo.j = false;
                downloadInfo.h = false;
                downloadInfo.I |= 8388608;
                PlatformStatUtils.a("NEWUSER_APP_COMMENT_DOWNLOAD");
                if (bool.booleanValue()) {
                    final QbActivityBase n = ActivityHandler.b().n();
                    BrowserExecutorSupplier.forMainThreadTasks().execute(new Runnable() {
                        @Override
                        public void run() {
                            DownloadInfo downloadInfo2;
                            Context context = n;
                            if (context == null || (downloadInfo2 = downloadInfo) == null) {
                                return;
                            }
                            new QBDownloadSheet(context, downloadInfo2, new ResultCallback<DownloadInfo>() {
                                @Override
                                public void onResult(ResultCallback.Result result, DownloadInfo downloadInfo3) {
                                    if (result != ResultCallback.Result.OK || downloadInfo3 == null) {
                                        return;
                                    }
                                    PlatformStatUtils.a("NEWUSER_APP_COMMENT_DOWNLOAD_START");
                                    IBusinessDownloadService a2 = DownloadServiceManager.a();
                                    if (a2 != null) {
                                        a2.startDownloadTask(downloadInfo, OverwritePolicy.NEED_CONFIRM, null);
                                        DownloadOperationManager.a(string3, (String) null);
                                    }
                                }
                            }).f();
                        }
                    });
                    return;
                }
                IBusinessDownloadService a2 = DownloadServiceManager.a();
                if (a2 != null) {
                    a2.startDownloadTask(downloadInfo, OverwritePolicy.NEED_CONFIRM, null);
                    DownloadOperationManager.a(string3, (String) null);
                }
            }
        } catch (Exception unused) {
        }
    }

    public static NewRmpOperationManager getInstance() {
        if (f30628a == null) {
            synchronized (NewRmpOperationManager.class) {
                if (f30628a == null) {
                    f30628a = new NewRmpOperationManager();
                }
            }
        }
        return f30628a;
    }

    public boolean a(String str) {
        if (TextUtils.isEmpty(str)) {
            return false;
        }
        if (str.startsWith(NetUtils.SCHEME_HTTP)) {
            str = str.replace(NetUtils.SCHEME_HTTP, NetUtils.SCHEME_HTTPS);
        }
        return str.startsWith("qb://ext/novelreader") || str.startsWith("https://bookshelf.html5.qq.com");
    }

    @EventReceiver(createMethod = CreateMethod.GET, eventName = "NOTIFY_NEWUSER_NOVEL_MODE")
    public void notifyNovelMode(EventMessage eventMessage) {
        if (eventMessage != null) {
            int i = eventMessage.arg0;
            if (i == 1) {
                ((ICustomTabService) QBContext.getInstance().getService(ICustomTabService.class)).updateNovelNewUser(true, 100);
            } else if (i == 2) {
                ((ICustomTabService) QBContext.getInstance().getService(ICustomTabService.class)).updateWelfareMode(true, 100);
            }
        }
    }

    @EventReceiver(createMethod = CreateMethod.GET, eventName = "NOTIFY_OPERATION_NEWUSER_URL")
    public void notifyUrl(EventMessage eventMessage) {
        a((eventMessage == null || eventMessage.arg == null || !(eventMessage.arg instanceof Bundle)) ? null : (Bundle) eventMessage.arg);
    }
}