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

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


package com.tencent.mtt.external;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.ParcelFileDescriptor;
import android.system.ErrnoException;
import android.text.TextUtils;
import android.view.MotionEvent;
import androidx.core.app.NotificationCompat;
import com.tencent.common.data.FileConsts;
import com.tencent.common.plugin.exports.QBPluginItemInfo;
import com.tencent.common.task.Continuation;
import com.tencent.common.task.QBTask;
import com.tencent.common.utils.FdToFilePath;
import com.tencent.common.utils.FileUtils;
import com.tencent.common.utils.FileUtilsF;
import com.tencent.common.utils.UrlUtils;
import com.tencent.mtt.ContextHolder;
import com.tencent.mtt.QbActivityBase;
import com.tencent.mtt.R;
import com.tencent.mtt.base.functionwindow.ActivityHandler;
import com.tencent.mtt.base.utils.CommonUtils;
import com.tencent.mtt.base.utils.QBUrlUtils;
import com.tencent.mtt.base.utils.permission.PermissionRequest;
import com.tencent.mtt.base.utils.permission.PermissionUtils;
import com.tencent.mtt.boot.base.IBoot;
import com.tencent.mtt.browser.download.core.impl.DownloadServiceManager;
import com.tencent.mtt.browser.download.engine.DownloadInfo;
import com.tencent.mtt.browser.file.DocRecorder;
import com.tencent.mtt.browser.file.facade.IFileOpenManager;
import com.tencent.mtt.compliance.MethodDelegate;
import com.tencent.mtt.external.novel.facade.INovelService;
import com.tencent.mtt.external.qrcode.common.ActionConstants2;
import com.tencent.mtt.external.reader.ReaderConstantsDefine;
import com.tencent.mtt.qbcontext.core.QBContext;
import com.tencent.mtt.sdkcontext.SDKContext;
import com.tencent.qqlive.module.videoreport.collect.EventCollector;
import java.io.File;
import java.io.FileDescriptor;
import java.lang.reflect.Field;
import java.util.concurrent.Callable;
import qb.a.a;

public class ThirdOpenNovelActivity extends QbActivityBase {
    public void a() {
        if (((IBoot) SDKContext.getInstance().getService(IBoot.class)).getShutPhase() < 0) {
            QBTask.a((Callable) new Callable<String>() {
                @Override
                public String call() {
                    ThirdOpenNovelActivity thirdOpenNovelActivity = ThirdOpenNovelActivity.this;
                    return thirdOpenNovelActivity.parseIntent(thirdOpenNovelActivity.getIntent());
                }
            }).a(new Continuation<String, Object>() {
                @Override
                public Object then(QBTask<String> qBTask) {
                    if (ThirdOpenNovelActivity.this.isFinishing()) {
                        return null;
                    }
                    String e = qBTask.e();
                    if (TextUtils.isEmpty(e)) {
                        try {
                            Intent intent = ThirdOpenNovelActivity.this.getIntent();
                            intent.setClass(ThirdOpenNovelActivity.this, Class.forName("com.tencent.mtt.external.reader.thirdcall.ThirdCallFileReaderActivity"));
                            ThirdOpenNovelActivity.this.startActivity(intent);
                        } catch (ClassNotFoundException unused) {
                        }
                        ThirdOpenNovelActivity.this.finish();
                        return null;
                    }
                    try {
                        Intent intent2 = new Intent();
                        intent2.setAction(ActionConstants2.k);
                        intent2.putExtra("internal_back", false);
                        intent2.putExtra("backType", 2);
                        intent2.setData(Uri.parse(e));
                        intent2.setPackage("com.tencent.mtt");
                        intent2.putExtra("PosID", "4");
                        intent2.putExtra("ChannelID", "qqbrowser");
                        ActivityHandler.b().a(R.anim.ce, intent2);
                        ThirdOpenNovelActivity.this.finish();
                        return null;
                    } catch (Exception unused2) {
                        return null;
                    }
                }
            }, 6);
            return;
        }
        Context appContext = ContextHolder.getAppContext();
        ((AlarmManager) appContext.getSystemService(NotificationCompat.CATEGORY_ALARM)).set(1, System.currentTimeMillis() + 500, PendingIntent.getActivity(appContext, 0, getIntent(), 268435456));
        finish();
        overridePendingTransition(a.e, a.j);
    }

    private boolean a(Intent intent, String str, String str2) {
        return intent.getBooleanExtra("internal_back", false) || !QBUrlUtils.p(str) || TextUtils.isEmpty(str2);
    }

    private void c(Intent intent) {
        if (!((IFileOpenManager) QBContext.getInstance().getService(IFileOpenManager.class)).transferContentUri(intent, getApplicationContext()) || intent.getData() == null || intent.getData() == null) {
            return;
        }
        intent.putExtra("key_reader_sdk_path", intent.getData().getPath());
    }

    private boolean d(Intent intent) {
        return (intent == null || intent.getScheme() == null || intent.getScheme().compareToIgnoreCase("content") != 0) ? false : true;
    }

    protected String a(Intent intent) {
        IFileOpenManager iFileOpenManager;
        Bundle extras = intent.getExtras();
        if (extras == null) {
            return null;
        }
        int i = extras.getInt("key_reader_sdk_type");
        String string = extras.getString("key_reader_sdk_url");
        String string2 = extras.getString("key_reader_sdk_path");
        String string3 = extras.getString("key_reader_sdk_format");
        if (TextUtils.isEmpty(string3)) {
            string3 = FileUtilsF.a(string2);
        }
        extras.getString("key_reader_sdk_package");
        String string4 = extras.getString("ChannelID");
        int i2 = extras.getInt("key_reader_sdk_id", 0);
        extras.getBoolean("key_reader_sdk_share", true);
        new Bundle();
        if (i == 1) {
            if (TextUtils.isEmpty(string2)) {
                string2 = UrlUtils.guessFileName(string, null, null);
            }
            if (!FileConsts.Uitls.f(string2, string3)) {
                return null;
            }
            DownloadInfo downloadInfo = new DownloadInfo();
            downloadInfo.f37604a = string;
            downloadInfo.j = false;
            downloadInfo.h = false;
            downloadInfo.H = 32;
            DownloadServiceManager.a().startDownloadTask(downloadInfo, null, null);
        } else if (i == 0) {
            if (QBPluginItemInfo.CONTENT_TXT.equalsIgnoreCase(string3)) {
                INovelService iNovelService = (INovelService) QBContext.getInstance().getService(INovelService.class);
                if (iNovelService.checkLocalNovel(0, string2) > 0 && i2 != 1 && i2 != 2) {
                    Bundle bundle = extras.getBundle("key_reader_sdk_extrals");
                    if ((bundle != null ? bundle.getInt(ReaderConstantsDefine.READER_REQ_FEATURE_KEY, 0) : 0) == 4013 && "".equalsIgnoreCase(string4)) {
                        return iNovelService.getOpenLocalNovelUrl(0, string2, getNovelChannelID(5, string2), 2);
                    }
                    return iNovelService.getOpenLocalNovelUrl(0, string2, getNovelChannelID(7, string2), 0);
                }
            }
            if (QBPluginItemInfo.CONTENT_TXT.equalsIgnoreCase(string3)) {
                INovelService iNovelService2 = (INovelService) QBContext.getInstance().getService(INovelService.class);
                if (iNovelService2.checkLocalNovel(0, string2) > 0) {
                    if (i2 == 1) {
                        DocRecorder.a().a(string2);
                        return iNovelService2.getOpenLocalNovelUrl(0, string2, getNovelChannelID(6, string2), 1);
                    }
                    if (i2 == 2) {
                        DocRecorder.a().a(string2);
                        return iNovelService2.getOpenLocalNovelUrl(0, string2, getNovelChannelID(5, string2), 2);
                    }
                    if ("".equalsIgnoreCase(string4)) {
                        DocRecorder.a().a(string2);
                        return iNovelService2.getOpenLocalNovelUrl(0, string2, getNovelChannelID(5, string2), 2);
                    }
                    if ("com.tencent.mm".equalsIgnoreCase(string4)) {
                        DocRecorder.a().a(string2);
                        return iNovelService2.getOpenLocalNovelUrl(0, string2, getNovelChannelID(6, string2), 1);
                    }
                    DocRecorder.a().a(string2);
                    return iNovelService2.getOpenLocalNovelUrl(0, string2, getNovelChannelID(7, string2), 0);
                }
            }
            if (!FileConsts.Uitls.f(string2, string3) && !FileConsts.Uitls.a(string2, string3) && ((string3 == null || !string3.equalsIgnoreCase("extraFunction")) && (iFileOpenManager = (IFileOpenManager) QBContext.getInstance().getService(IFileOpenManager.class)) != null)) {
                iFileOpenManager.openFileBySystem(string2);
            }
        }
        return null;
    }

    protected String b(Intent intent) {
        if (intent == null) {
            return null;
        }
        String dataString = intent.getDataString();
        intent.getType();
        String path = intent.getData() != null ? intent.getData().getPath() : null;
        if (a(intent, dataString, path)) {
            return null;
        }
        Bundle extras = intent.getExtras();
        String string = extras != null ? extras.getString("ChannelID") : "";
        String a2 = FileUtilsF.a(path);
        if (QBPluginItemInfo.CONTENT_TXT.equalsIgnoreCase(a2)) {
            INovelService iNovelService = (INovelService) QBContext.getInstance().getService(INovelService.class);
            if (iNovelService.checkLocalNovel(0, path) > 0 && !"".equalsIgnoreCase(string) && !"com.tencent.mm".equalsIgnoreCase(string)) {
                return iNovelService.getOpenLocalNovelUrl(0, path, getNovelChannelID(7, path), 0);
            }
        }
        if (QBPluginItemInfo.CONTENT_TXT.equalsIgnoreCase(a2)) {
            INovelService iNovelService2 = (INovelService) QBContext.getInstance().getService(INovelService.class);
            if (iNovelService2.checkLocalNovel(0, path) > 0) {
                if ("".equalsIgnoreCase(string)) {
                    DocRecorder.a().a(path);
                    return iNovelService2.getOpenLocalNovelUrl(0, path, getNovelChannelID(5, path), 2);
                }
                if ("com.tencent.mm".equalsIgnoreCase(string)) {
                    DocRecorder.a().a(path);
                    return iNovelService2.getOpenLocalNovelUrl(0, path, getNovelChannelID(6, path), 1);
                }
                DocRecorder.a().a(path);
                return iNovelService2.getOpenLocalNovelUrl(0, path, getNovelChannelID(7, path), 0);
            }
        }
        return null;
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent motionEvent) {
        EventCollector.getInstance().onActivityDispatchTouchEvent(this, motionEvent, false, true);
        boolean dispatchTouchEvent = super.dispatchTouchEvent(motionEvent);
        EventCollector.getInstance().onActivityDispatchTouchEvent(this, motionEvent, dispatchTouchEvent, false);
        return dispatchTouchEvent;
    }

    public String getNovelChannelID(int i, String str) {
        switch (i) {
            case 3:
                return "004673";
            case 4:
                return "004672";
            case 5:
                return "004676";
            case 6:
                return "004675";
            case 7:
                return "004674";
            case 8:
                return "004679";
            case 9:
                return "004678";
            default:
                return "004677";
        }
    }

    @Override
    public void onConfigurationChanged(Configuration configuration) {
        super.onConfigurationChanged(configuration);
        EventCollector.getInstance().onActivityConfigurationChanged(this, configuration);
    }

    @Override
    public void onCreate(Bundle bundle) {
        CommonUtils.a(getIntent());
        super.onCreate(bundle);
        registerPermissionCheck(PermissionUtils.a(4), new PermissionRequest.Callback() {
            @Override
            public void onPermissionRequestGranted(boolean z) {
                ThirdOpenNovelActivity.this.a();
            }

            @Override
            public void onPermissionRevokeCanceled() {
                ThirdOpenNovelActivity.this.finish();
            }
        });
    }

    @Override
    public void onNewIntent(Intent intent) {
        CommonUtils.a(intent);
        super.onNewIntent(intent);
        QBTask.a((Callable) new Callable<String>() {
            @Override
            public String call() {
                ThirdOpenNovelActivity thirdOpenNovelActivity = ThirdOpenNovelActivity.this;
                return thirdOpenNovelActivity.parseIntent(thirdOpenNovelActivity.getIntent());
            }
        }).a(new Continuation<String, Object>() {
            @Override
            public Object then(QBTask<String> qBTask) {
                if (ThirdOpenNovelActivity.this.isFinishing()) {
                    return null;
                }
                String e = qBTask.e();
                if (TextUtils.isEmpty(e)) {
                    ThirdOpenNovelActivity.this.finish();
                    return null;
                }
                try {
                    Intent intent2 = new Intent();
                    intent2.setAction(ActionConstants2.k);
                    intent2.putExtra("internal_back", false);
                    intent2.putExtra("backType", 2);
                    intent2.setData(Uri.parse(e));
                    intent2.setPackage("com.tencent.mtt");
                    intent2.putExtra("PosID", "4");
                    intent2.putExtra("ChannelID", "qqbrowser");
                    ThirdOpenNovelActivity.this.startActivity(intent2);
                    ThirdOpenNovelActivity.this.finish();
                    return null;
                } catch (Exception unused) {
                    return null;
                }
            }
        }, 6);
    }

    @Override
    public void onStop() {
        super.onStop();
        finish();
    }

    public String parseIntent(Intent intent) {
        if (intent == null) {
            return null;
        }
        if (d(intent)) {
            c(intent);
        }
        if ("com.tencent.QQBrowser.action.sdk.document".equals(intent.getAction())) {
            return a(intent);
        }
        transferUri(intent, this);
        return b(intent);
    }

    public boolean transferUri(Intent intent, Context context) {
        return transferUri(intent, context, new StringBuffer());
    }

    public boolean transferUri(Intent intent, Context context, StringBuffer stringBuffer) {
        ParcelFileDescriptor parcelFileDescriptor;
        String str;
        boolean z;
        if (intent.getData() != null && context != null && !TextUtils.isEmpty(intent.getDataString())) {
            if (FileUtils.l(intent.getDataString())) {
                return true;
            }
            try {
                stringBuffer.append("Uri:into");
                Cursor query = MethodDelegate.query(context.getContentResolver(), intent.getData(), new String[]{"_data"}, null, null, null);
                if (query != null) {
                    query.moveToFirst();
                    int columnIndex = query.getColumnIndex("_data");
                    stringBuffer.append(columnIndex);
                    if (columnIndex > -1) {
                        String string = query.getString(columnIndex);
                        if (!TextUtils.isEmpty(string) && FileUtils.l(string) && new File(string).exists()) {
                            stringBuffer.append("cursor:1");
                            if (intent.getType() != null) {
                                intent.setDataAndType(Uri.fromFile(new File(string)), intent.getType());
                            } else {
                                intent.setData(Uri.fromFile(new File(string)));
                            }
                            query.close();
                            return true;
                        }
                    }
                    query.close();
                }
            } catch (Exception unused) {
            }
            try {
                Cursor query2 = MethodDelegate.query(context.getContentResolver(), intent.getData(), null, null, null, null);
                if (query2 != null) {
                    query2.moveToFirst();
                    String columnName = query2.getColumnName(0);
                    if (!TextUtils.isEmpty(columnName)) {
                        String string2 = query2.getString(query2.getColumnIndex(columnName));
                        if (!TextUtils.isEmpty(string2) && FileUtils.l(string2) && new File(string2).exists()) {
                            stringBuffer.append("cursor:2");
                            if (intent.getType() != null) {
                                intent.setDataAndType(Uri.fromFile(new File(string2)), intent.getType());
                            } else {
                                intent.setData(Uri.fromFile(new File(string2)));
                            }
                            query2.close();
                            return true;
                        }
                    }
                    query2.close();
                }
            } catch (Exception unused2) {
            }
            stringBuffer.append("ifsp:exits");
            FileDescriptor fileDescriptor = null;
            try {
                if (intent.getData() == null || context == null) {
                    parcelFileDescriptor = null;
                } else {
                    parcelFileDescriptor = context.getContentResolver().openFileDescriptor(intent.getData(), "r");
                    try {
                        StringBuilder sb = new StringBuilder();
                        sb.append("pfd:");
                        sb.append(parcelFileDescriptor != null);
                        stringBuffer.append(sb.toString());
                        if (parcelFileDescriptor != null) {
                            fileDescriptor = parcelFileDescriptor.getFileDescriptor();
                        }
                    } catch (Throwable th) {
                        th = th;
                        stringBuffer.append("pfd:exception=" + th.getMessage());
                        if (fileDescriptor != null) {
                        }
                    }
                }
            } catch (Throwable th2) {
                th = th2;
                parcelFileDescriptor = null;
            }
            if (fileDescriptor != null) {
                if (parcelFileDescriptor != null) {
                    try {
                        parcelFileDescriptor.close();
                    } catch (Exception unused3) {
                    }
                }
                stringBuffer.append("fd:null");
                return false;
            }
            try {
                try {
                    try {
                        try {
                            Field declaredField = fileDescriptor.getClass().getDeclaredField("descriptor");
                            declaredField.setAccessible(true);
                            String a2 = FdToFilePath.a(((Integer) declaredField.get(fileDescriptor)).intValue());
                            if (!TextUtils.isEmpty(a2) && FileUtils.l(a2)) {
                                try {
                                    File file = new File(a2);
                                    try {
                                        if (file.exists()) {
                                            if (file.length() > 0) {
                                                z = true;
                                                stringBuffer.append("FdToFile:len=" + file.length());
                                            }
                                        }
                                        stringBuffer.append("FdToFile:len=" + file.length());
                                    } catch (Exception unused4) {
                                        stringBuffer.append("FdToFile:isLocal=" + z);
                                        if (!z) {
                                            try {
                                                parcelFileDescriptor.close();
                                            } catch (Exception unused5) {
                                            }
                                            return false;
                                        }
                                        if (intent.getType() != null) {
                                            stringBuffer.append("FdToFile:type=" + intent.getType());
                                            intent.setDataAndType(Uri.fromFile(new File(a2)), intent.getType());
                                        } else {
                                            intent.setData(Uri.fromFile(new File(a2)));
                                        }
                                        try {
                                            parcelFileDescriptor.close();
                                        } catch (Exception unused6) {
                                        }
                                        return true;
                                    }
                                    z = false;
                                } catch (Exception unused7) {
                                    z = false;
                                }
                            }
                        } catch (ErrnoException e) {
                            stringBuffer.append("FdToFile:error=");
                            str = e.getMessage();
                            stringBuffer.append(str);
                            parcelFileDescriptor.close();
                        }
                    } catch (IllegalAccessException e2) {
                        str = "FdToFile:Illegalfile=" + e2.getMessage();
                        stringBuffer.append(str);
                        parcelFileDescriptor.close();
                    } catch (NoSuchFieldException e3) {
                        str = "FdToFile:Nofile=" + e3.getMessage();
                        stringBuffer.append(str);
                        parcelFileDescriptor.close();
                    }
                    parcelFileDescriptor.close();
                } catch (Exception unused8) {
                }
            } catch (Throwable th3) {
                try {
                    parcelFileDescriptor.close();
                } catch (Exception unused9) {
                }
                throw th3;
            }
        }
        return false;
    }
}