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

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


package com.tencent.common.utils;

import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.text.TextUtils;
import com.tencent.common.http.NetUtils;
import com.tencent.mtt.base.utils.GetTask;
import com.tencent.mtt.compliance.MethodDelegate;
import com.tencent.mtt.external.qrcode.common.ActionConstants2;
import java.net.URLEncoder;
import java.util.List;

public class MttLoader {

    public static class BrowserInfo {

        public int f10261a = -1;

        public int f10262b = -1;

        public String f10263c = "";

        public String f10264d = "";
    }

    public static class BrowserPackageInfo {

        public String f10265a;

        public String f10266b;

        private BrowserPackageInfo() {
            this.f10265a = "";
            this.f10266b = "";
        }
    }

    public static Intent a(Context context, String str) {
        Uri parse;
        BrowserPackageInfo a2;
        String str2;
        String str3;
        Intent intent = null;
        if (context == null) {
            return null;
        }
        if (!a(str)) {
            str = NetUtils.SCHEME_HTTP + str;
        }
        try {
            parse = Uri.parse(str);
        } catch (Exception unused) {
        }
        if (parse == null) {
            return null;
        }
        if (parse.getScheme().toLowerCase().equals(GetTask.ICustomForegroundPredication.QB) && !a(context)) {
            parse = Uri.parse("https://mdc.html5.qq.com/mh?channel_id=50079&u=" + URLEncoder.encode(str, "UTF-8"));
        }
        BrowserInfo b2 = b(context);
        if (b2.f10261a == -1) {
            return null;
        }
        if (b2.f10261a == 2 && b2.f10262b < 33) {
            return null;
        }
        intent = new Intent("android.intent.action.VIEW");
        if (b2.f10261a == 2) {
            if (b2.f10262b >= 33 && b2.f10262b <= 39) {
                str3 = "com.tencent.mtt.MainActivity";
            } else if (b2.f10262b >= 40 && b2.f10262b <= 45) {
                str3 = "com.tencent.mtt.SplashActivity";
            } else if (b2.f10262b >= 46) {
                intent = new Intent(ActionConstants2.f56473d);
                a2 = a(context, parse);
                if (a2 != null) {
                }
            }
            intent.setClassName("com.tencent.mtt", str3);
        } else if (b2.f10261a == 1) {
            if (b2.f10262b != 1) {
                str2 = b2.f10262b == 2 ? "com.tencent.qbx5.SplashActivity" : "com.tencent.qbx5.MainActivity";
            }
            intent.setClassName("com.tencent.qbx5", str2);
        } else if (b2.f10261a != 0) {
            intent = new Intent(ActionConstants2.f56473d);
            a2 = a(context, parse);
            if (a2 != null) {
            }
        } else if (b2.f10262b >= 4 && b2.f10262b <= 6) {
            intent.setClassName("com.tencent.qbx", "com.tencent.qbx.SplashActivity");
        } else if (b2.f10262b > 6) {
            intent = new Intent(ActionConstants2.f56473d);
            a2 = a(context, parse);
            if (a2 != null) {
            }
        }
        intent.setData(parse);
        intent.addFlags(268435456);
        return intent;
    }

    private static BrowserPackageInfo a(Context context, Uri uri) {
        Intent intent = new Intent(ActionConstants2.f56473d);
        intent.setData(uri);
        List<ResolveInfo> queryIntentActivities = MethodDelegate.queryIntentActivities(context.getPackageManager(), intent, 0);
        if (queryIntentActivities.size() <= 0) {
            return null;
        }
        BrowserPackageInfo browserPackageInfo = new BrowserPackageInfo();
        for (ResolveInfo resolveInfo : queryIntentActivities) {
            String str = resolveInfo.activityInfo.packageName;
            if (str.contains("com.tencent.mtt")) {
                browserPackageInfo.f10265a = resolveInfo.activityInfo.name;
                browserPackageInfo.f10266b = resolveInfo.activityInfo.packageName;
                return browserPackageInfo;
            }
            if (str.contains("com.tencent.qbx")) {
                browserPackageInfo.f10265a = resolveInfo.activityInfo.name;
                browserPackageInfo.f10266b = resolveInfo.activityInfo.packageName;
            }
        }
        return browserPackageInfo;
    }

    public static boolean a(Context context) {
        BrowserInfo b2 = b(context);
        if (b2.f10261a == -1) {
            return false;
        }
        return b2.f10261a != 2 || b2.f10262b >= 42;
    }

    private static boolean a(String str) {
        if (str == null || str.length() == 0) {
            return false;
        }
        String trim = str.trim();
        int indexOf = trim.toLowerCase().indexOf("://");
        int indexOf2 = trim.toLowerCase().indexOf(46);
        if (indexOf <= 0 || indexOf2 <= 0 || indexOf <= indexOf2) {
            return trim.toLowerCase().contains("://");
        }
        return false;
    }

    public static BrowserInfo b(Context context) {
        BrowserInfo browserInfo = new BrowserInfo();
        try {
            PackageManager packageManager = context.getPackageManager();
            PackageInfo packageInfo = null;
            try {
                packageInfo = packageManager.getPackageInfo("com.tencent.mtt", 0);
                browserInfo.f10261a = 2;
                browserInfo.f10263c = "ADRQB_";
                if (packageInfo != null && packageInfo.versionCode > 420000) {
                    browserInfo.f10264d = packageInfo.versionName;
                    browserInfo.f10262b = packageInfo.versionCode;
                    browserInfo.f10263c += packageInfo.versionName.replaceAll("\\.", "");
                    return browserInfo;
                }
            } catch (PackageManager.NameNotFoundException unused) {
            }
            try {
                try {
                    try {
                        try {
                            try {
                                packageInfo = packageManager.getPackageInfo("com.tencent.qbx", 0);
                                browserInfo.f10261a = 0;
                                browserInfo.f10263c = "ADRQBX_";
                            } catch (PackageManager.NameNotFoundException unused2) {
                                packageInfo = packageManager.getPackageInfo("com.tencent.qbx5", 0);
                                browserInfo.f10261a = 1;
                                browserInfo.f10263c = "ADRQBX5_";
                            }
                        } catch (PackageManager.NameNotFoundException unused3) {
                            packageInfo = packageManager.getPackageInfo("com.tencent.mtt", 0);
                            browserInfo.f10261a = 2;
                            browserInfo.f10263c = "ADRQB_";
                        }
                    } catch (Exception unused4) {
                    }
                } catch (Exception unused5) {
                    BrowserPackageInfo a2 = a(context, Uri.parse("https://mdc.html5.qq.com/mh?channel_id=50079&u="));
                    if (a2 != null && !TextUtils.isEmpty(a2.f10266b)) {
                        PackageInfo packageInfo2 = packageManager.getPackageInfo(a2.f10266b, 0);
                        try {
                            browserInfo.f10261a = 2;
                            browserInfo.f10263c = "ADRQB_";
                        } catch (Exception unused6) {
                        }
                        packageInfo = packageInfo2;
                    }
                }
            } catch (PackageManager.NameNotFoundException unused7) {
                packageInfo = packageManager.getPackageInfo("com.tencent.mtt.x86", 0);
                browserInfo.f10261a = 2;
                browserInfo.f10263c = "ADRQB_";
            }
            if (packageInfo != null) {
                browserInfo.f10264d = packageInfo.versionName;
                browserInfo.f10262b = packageInfo.versionCode;
                browserInfo.f10263c += packageInfo.versionName.replaceAll("\\.", "");
            }
        } catch (Exception unused8) {
        }
        return browserInfo;
    }
}