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