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