QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685
以下内容为反编译后的 ShortCutManager.java 源代码,内容仅作参考
package com.tencent.mtt.browser.moremenu.shortcut;
import android.net.Uri;
import android.text.TextUtils;
import com.tencent.common.featuretoggle.FeatureToggle;
import com.tencent.common.manifest.EventMessage;
import com.tencent.common.manifest.annotation.CreateMethod;
import com.tencent.common.manifest.annotation.EventReceiver;
import com.tencent.common.utils.UrlUtils;
import com.tencent.connect.common.Constants;
import com.tencent.mtt.R;
import com.tencent.mtt.base.hometab.ICustomTabService;
import com.tencent.mtt.base.preload.facade.IQbPreloadService;
import com.tencent.mtt.base.skin.MttResources;
import com.tencent.mtt.browser.homepage.fastcut.IFastCutManager;
import com.tencent.mtt.browser.homepage.fastcut.IFastCutTittleManager;
import com.tencent.mtt.browser.homepage.fastcut.INovelInterfaceImplService;
import com.tencent.mtt.browser.moremenu.CommonMenuItemView;
import com.tencent.mtt.browser.moremenu.item.bar.AddShortCutMenuItem;
import com.tencent.mtt.browser.moremenu.item.bar.RemoveShortCutMenuItem;
import com.tencent.mtt.browser.window.IWebView;
import com.tencent.mtt.browser.window.WindowManager;
import com.tencent.mtt.businesscenter.facade.IMenuItem;
import com.tencent.mtt.businesscenter.facade.IWebPageStatService;
import com.tencent.mtt.frequence.visit.IVisit;
import com.tencent.mtt.qbcontext.core.QBContext;
import com.tencent.mtt.view.toast.MttToaster;
import java.util.Iterator;
import java.util.List;
import org.json.JSONObject;
import qb.menu.BuildConfig;
public class ShortCutManager {
private static final class ShortCutManagerHolder {
private static final ShortCutManager f42983a = new ShortCutManager();
private ShortCutManagerHolder() {
}
}
private ShortCutManager() {
}
public static void a() {
IWebView t;
IFastCutManager iFastCutManager = (IFastCutManager) QBContext.getInstance().getService(IFastCutManager.class);
if (iFastCutManager == null || (t = WindowManager.t()) == null) {
return;
}
String pageTitle = t.getPageTitle();
String url = t.getUrl();
ShortCutModel shortCutModel = new ShortCutModel(url, pageTitle);
shortCutModel.f42986c = e(url);
if (iFastCutManager.hasExist(shortCutModel)) {
if (FeatureToggle.a(BuildConfig.FEATURE_TOGGLE_866987277)) {
((IWebPageStatService) QBContext.getInstance().getService(IWebPageStatService.class)).stat("web_0130");
}
d();
} else {
if (FeatureToggle.a(BuildConfig.FEATURE_TOGGLE_866987277)) {
((IWebPageStatService) QBContext.getInstance().getService(IWebPageStatService.class)).stat("web_0129");
}
c();
}
}
public static void a(IWebView iWebView, CommonMenuItemView commonMenuItemView) {
int i;
if (b()) {
commonMenuItemView.setMenuItemText("移除直达");
i = R.drawable.b77;
} else {
commonMenuItemView.setMenuItemText("添加直达");
i = R.drawable.b76;
}
commonMenuItemView.a(MttResources.p(i), true);
commonMenuItemView.setEnabled(true);
commonMenuItemView.setFocusable(true);
commonMenuItemView.setAlpha(1.0f);
}
public static void a(List<IMenuItem> list) {
IWebView t;
if (!((ICustomTabService) QBContext.getInstance().getService(ICustomTabService.class)).checkTabShowing(117) || list == null || (t = WindowManager.t()) == null) {
return;
}
String pageTitle = t.getPageTitle();
if (a(pageTitle)) {
return;
}
String url = t.getUrl();
if (!b(url) && b(list)) {
a(list, b() ? new RemoveShortCutMenuItem() : new AddShortCutMenuItem(), c(list));
ShortCutMenuReportUtils.a(url, pageTitle);
}
}
public static void a(List<IMenuItem> list, IMenuItem iMenuItem, int i) {
if (i < list.size() - 1) {
list.add(i, iMenuItem);
} else {
list.add(iMenuItem);
}
}
public static boolean a(String str) {
return TextUtils.isEmpty(str) || "资讯正文".equals(str) || "《》".equals(str) || !((IFastCutTittleManager) QBContext.getInstance().getService(IFastCutTittleManager.class)).isValidTittle(str);
}
public static boolean b() {
IWebView t;
IFastCutManager iFastCutManager = (IFastCutManager) QBContext.getInstance().getService(IFastCutManager.class);
if (iFastCutManager == null || (t = WindowManager.t()) == null) {
return false;
}
return iFastCutManager.hasExist(new ShortCutModel(t.getUrl(), t.getPageTitle()));
}
public static boolean b(String str) {
if (TextUtils.isEmpty(str) || str.startsWith("qb://video/feedsvideo") || d(str) || c(str)) {
return true;
}
if (str.startsWith("qb://home")) {
try {
if (Constants.VIA_SHARE_TYPE_INFO.equals(Uri.parse(str).getQueryParameter("tabId"))) {
return true;
}
} catch (Exception unused) {
}
}
return false;
}
public static boolean b(List<IMenuItem> list) {
Iterator<IMenuItem> it = list.iterator();
while (it.hasNext()) {
int a2 = it.next().a();
if (a2 == 207 || a2 == 206) {
return false;
}
}
return true;
}
public static int c(List<IMenuItem> list) {
for (int i = 0; i < list.size(); i++) {
int a2 = list.get(i).a();
if (a2 == 126 || a2 == 130) {
return i;
}
}
return 0;
}
public static void c() {
IWebView t;
IFastCutManager iFastCutManager = (IFastCutManager) QBContext.getInstance().getService(IFastCutManager.class);
if (iFastCutManager == null || (t = WindowManager.t()) == null) {
return;
}
String pageTitle = t.getPageTitle();
String url = t.getUrl();
ShortCutModel shortCutModel = new ShortCutModel(url, pageTitle);
shortCutModel.f42987d = f(url);
shortCutModel.f42986c = e(url);
shortCutModel.a("2");
iFastCutManager.addFastCut(shortCutModel, true, null);
ShortCutMenuReportUtils.a(url, pageTitle, shortCutModel.getSourceId());
}
public static boolean c(String str) {
if (str.startsWith("qb://ext/hp")) {
return TextUtils.equals("circleUserCenter", UrlUtils.getUrlParamValue(str, "module"));
}
return false;
}
public static void d() {
IWebView t;
IFastCutManager iFastCutManager = (IFastCutManager) QBContext.getInstance().getService(IFastCutManager.class);
if (iFastCutManager == null || (t = WindowManager.t()) == null) {
return;
}
String pageTitle = t.getPageTitle();
String url = t.getUrl();
ShortCutModel shortCutModel = new ShortCutModel(url, pageTitle);
shortCutModel.a("2");
if (iFastCutManager.removeFastCut(shortCutModel)) {
MttToaster.show("已移除直达", 0);
}
ShortCutMenuReportUtils.b(url, pageTitle, shortCutModel.getSourceId());
}
public static boolean d(String str) {
if (!str.startsWith("qb://ext/rn")) {
return false;
}
try {
Uri parse = Uri.parse(str);
String queryParameter = parse.getQueryParameter("module");
String queryParameter2 = parse.getQueryParameter("component");
if (!"ugcfloat".equals(queryParameter) || !"ugcfloat".equals(queryParameter2)) {
if (!IQbPreloadService.QB_PRELOAD_MODULE_VIDEOFLOAT.equals(queryParameter)) {
return false;
}
if (!IQbPreloadService.QB_PRELOAD_MODULE_VIDEOFLOAT.equals(queryParameter2)) {
return false;
}
}
return true;
} catch (Exception unused) {
return false;
}
}
private static String e(String str) {
return (str == null || !str.startsWith("qb://ext/read")) ? "https://m4.publicimg.browser.qq.com/publicimg/nav/xhome/https.png" : "";
}
private static String f(String str) {
if (TextUtils.isEmpty(str) || !str.startsWith("qb://ext/novelreader")) {
return null;
}
String queryParameter = Uri.parse(str).getQueryParameter("bookId");
INovelInterfaceImplService iNovelInterfaceImplService = (INovelInterfaceImplService) QBContext.getInstance().getService(INovelInterfaceImplService.class);
if (iNovelInterfaceImplService != null) {
return iNovelInterfaceImplService.getNovelPicByBookId(queryParameter);
}
return null;
}
public static ShortCutManager getInstance() {
return ShortCutManagerHolder.f42983a;
}
@EventReceiver(createMethod = CreateMethod.GET, eventName = "MINI_PROGRAM_ACTIVITY_PAUSED")
public void onMiniProgramPause(EventMessage eventMessage) {
if (((ICustomTabService) QBContext.getInstance().getService(ICustomTabService.class)).checkTabShowing(117) && eventMessage != null && (eventMessage.arg instanceof String)) {
try {
JSONObject jSONObject = new JSONObject((String) eventMessage.arg);
String str = (String) jSONObject.opt("qbUrl");
if (!TextUtils.isEmpty(str) && str.contains("&path")) {
str = str.substring(0, str.indexOf("&path"));
}
String str2 = (String) jSONObject.opt("iconUrl");
((IVisit) QBContext.getInstance().getService(IVisit.class)).visitMiniProgram((String) jSONObject.opt("name"), str, str2);
} catch (Exception unused) {
}
}
}
}