QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685
以下内容为反编译后的 SearchEngineManager.java 源代码,内容仅作参考
package com.tencent.mtt.search.searchEngine;
import MTT.SearchConfRule;
import MTT.SearchItemInfo;
import MTT.SearchItemReq;
import MTT.SearchItemRsp;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.text.TextUtils;
import com.heytap.mcssdk.mode.Message;
import com.huawei.hms.actions.SearchIntents;
import com.huawei.hms.framework.common.ContainerUtils;
import com.huawei.hms.support.hianalytics.HiAnalyticsConstant;
import com.tencent.common.featuretoggle.FeatureToggle;
import com.tencent.common.manifest.annotation.CreateMethod;
import com.tencent.common.manifest.annotation.ServiceImpl;
import com.tencent.common.task.QBTask;
import com.tencent.common.task.TaskManager;
import com.tencent.common.task.TaskObserverBase;
import com.tencent.common.utils.FileUtils;
import com.tencent.common.utils.StringUtils;
import com.tencent.common.utils.UrlUtils;
import com.tencent.common.wup.IWUPRequestCallBack;
import com.tencent.common.wup.WUPRequestBase;
import com.tencent.common.wup.WUPResponseBase;
import com.tencent.common.wup.WUPTaskProxy;
import com.tencent.mtt.ContextHolder;
import com.tencent.mtt.R;
import com.tencent.mtt.base.skin.MttResources;
import com.tencent.mtt.base.stat.StatManager;
import com.tencent.mtt.base.stat.utils.PlatformStatUtils;
import com.tencent.mtt.base.task.PictureTask;
import com.tencent.mtt.base.task.Task;
import com.tencent.mtt.base.utils.UIUtil;
import com.tencent.mtt.base.wup.WUPRequest;
import com.tencent.mtt.browser.WebEngine;
import com.tencent.mtt.browser.bra.addressbar.view.AddressBarViewState;
import com.tencent.mtt.browser.setting.manager.SkinManager;
import com.tencent.mtt.browser.setting.manager.UserSettingManager;
import com.tencent.mtt.browser.window.BackStragety;
import com.tencent.mtt.browser.window.IWebView;
import com.tencent.mtt.browser.window.StatementExternalCallBackStragety;
import com.tencent.mtt.browser.window.UrlParams;
import com.tencent.mtt.browser.window.WindowManager;
import com.tencent.mtt.businesscenter.facade.IFrameworkDelegate;
import com.tencent.mtt.external.weapp.facade.IWeAppService;
import com.tencent.mtt.operation.event.EventLog;
import com.tencent.mtt.qbcontext.core.QBContext;
import com.tencent.mtt.qbcontext.interfaces.wup.IBrowserCmdService;
import com.tencent.mtt.search.SearchHistoryUtil;
import com.tencent.mtt.search.SearchUtils;
import com.tencent.mtt.search.SearchVReportManager;
import com.tencent.mtt.search.backForward.SearchCommonNativePage;
import com.tencent.mtt.search.data.history.SearchHistoryManager;
import com.tencent.mtt.search.data.history.SearchInputHistory;
import com.tencent.mtt.search.facade.IOnSearchEngineSelectChanged;
import com.tencent.mtt.search.facade.ISearchEngineService;
import com.tencent.mtt.search.facade.SearchVReportBean;
import com.tencent.mtt.search.network.MTT.SmartBox_SearchControlRsp;
import com.tencent.mtt.search.network.MTT.SmartBox_SearchControlTask;
import com.tencent.mtt.search.network.MTT.SmartBox_SearchControl_EngineSet;
import com.tencent.mtt.search.searchEngine.urlloader.SearchUrlLoader;
import com.tencent.mtt.search.searchEngine.urlloader.SearchUrlLoaderConfig;
import com.tencent.mtt.search.statistics.SearchLog;
import com.tencent.mtt.search.utils.SearchUrlReportUtil;
import com.tencent.mtt.search.view.common.SearchInputConfig;
import com.tencent.mtt.search.view.reactnative.SearchRNManager;
import com.tencent.mtt.setting.PublicSettingManager;
import com.tencent.mtt.view.dialog.alert.QBLinearDialogClickListener;
import com.xiaomi.mipush.sdk.Constants;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.regex.Pattern;
import kotlin.text.Typography;
import org.json.JSONObject;
import qb.search.BuildConfig;
@ServiceImpl(createMethod = CreateMethod.GET, service = ISearchEngineService.class)
public class SearchEngineManager implements IWUPRequestCallBack, ISearchEngineService {
private static boolean f70411d;
private static boolean k;
private static volatile SearchEngineManager m;
private ArrayList<SearchEngineItemInfo> f70413b;
private ArrayList<SearchConfRule> f70414c;
private int l;
SearchEngineDialog f70412a = null;
private CopyOnWriteArrayList<IOnSearchEngineSelectChanged> e = new CopyOnWriteArrayList<>();
private boolean f = false;
private boolean g = false;
private SearchEngineInfo h = new SearchEngineInfo("1", "");
private Bitmap i = null;
private String j = "";
private interface ControlCommandKey {
}
public interface EngineType {
}
public static class JumpSearchData {
String f70422a;
String f70423b;
String f70424c;
int f70425d;
BackStragety e;
int f;
int g;
Bundle h;
public JumpSearchData(String str, String str2, String str3, int i, BackStragety backStragety, int i2, int i3, Bundle bundle) {
this.f70422a = str;
this.f70423b = str2;
this.f70424c = str3;
this.f70425d = i;
this.e = backStragety;
this.f = i2;
this.g = i3;
this.h = bundle;
}
}
public static class SearchEngineInfo {
public String f70426a;
public String f70427b;
public Bitmap f70428c;
public SearchEngineInfo(String str, String str2) {
this.f70426a = str;
this.f70427b = str2;
}
public SearchEngineInfo(String str, String str2, Bitmap bitmap) {
this.f70426a = str;
this.f70427b = str2;
this.f70428c = bitmap;
}
public Bitmap a() {
return this.f70428c;
}
}
private SearchEngineManager() {
}
private int a(int i) {
if (i == 8 || i == 24) {
return 19;
}
if (i != 49) {
return i != 50 ? 0 : 72;
}
return 71;
}
private Bitmap a(AddressBarViewState addressBarViewState) {
if (TextUtils.isEmpty(addressBarViewState.i)) {
addressBarViewState.i = "";
}
if (TextUtils.isEmpty(addressBarViewState.j)) {
addressBarViewState.j = "";
}
ArrayList<SearchConfRule> searchRules = getSearchRules();
if (searchRules != null && searchRules.size() > 0) {
Iterator<SearchConfRule> it = searchRules.iterator();
while (it.hasNext()) {
SearchConfRule next = it.next();
if (a(Pattern.matches(next.sHomePageRule, addressBarViewState.i), Pattern.matches(next.sDefaultPageRule, addressBarViewState.i), TextUtils.isEmpty(next.sTitleRule) || Pattern.matches(next.sTitleRule, addressBarViewState.j))) {
Iterator<SearchEngineItemInfo> it2 = getSearchItems().iterator();
while (it2.hasNext()) {
SearchEngineItemInfo next2 = it2.next();
if (TextUtils.equals(next2.f70408b, next.sFullName)) {
return b(next2);
}
}
} else if (Pattern.matches(next.sResultPageRule, addressBarViewState.i)) {
Iterator<SearchEngineItemInfo> it3 = getSearchItems().iterator();
while (it3.hasNext()) {
SearchEngineItemInfo next3 = it3.next();
if (TextUtils.equals(next3.f70408b, next.sFullName)) {
return a(next3);
}
}
} else {
continue;
}
}
}
return getDefaultIconBitmap();
}
private Bitmap a(SearchEngineItemInfo searchEngineItemInfo) {
Bitmap o = o(searchEngineItemInfo.i);
return o == null ? getDefaultIconBitmap() : o;
}
private JumpSearchData a(String str, int i, int i2, String str2, String str3, String str4) {
String validSearchKey = getValidSearchKey(str);
int a2 = a(i);
StatementExternalCallBackStragety statementExternalCallBackStragety = (i == 42 || i == 17 || i == 9) ? new StatementExternalCallBackStragety() : null;
int i3 = i == 48 ? 24 : i;
Bundle bundle = new Bundle();
a(bundle, SearchVReportManager.a(), str4);
bundle.putBoolean("isSearchEngineLoad", true);
String a3 = SearchUrlReportUtil.f70462a.a(str2 + validSearchKey, str4);
if (a(i3, a3)) {
a3 = SearchHistoryUtil.a(a3);
}
return new JumpSearchData(validSearchKey, a3, str3, a2, statementExternalCallBackStragety, i2, i3, bundle);
}
private synchronized String a(SearchEngineRoutingData searchEngineRoutingData) {
String[] b2 = searchEngineRoutingData.b();
if (b2 != null && b2.length > 0) {
ArrayList<SearchEngineItemInfo> searchItems = getSearchItems();
if (searchItems != null && searchItems.size() > 0) {
for (String str : b2) {
for (int i = 0; i < searchItems.size(); i++) {
SearchEngineItemInfo searchEngineItemInfo = searchItems.get(i);
if (searchEngineItemInfo != null) {
EventLog.a("引擎路由", "match :" + str + " __" + searchEngineItemInfo.m);
if (TextUtils.equals(str, searchEngineItemInfo.m)) {
return searchEngineItemInfo.f70409c;
}
}
}
}
return "";
}
EventLog.a("引擎路由", "引擎列表获取失败");
return "";
}
EventLog.a("引擎路由", "引擎路由无引擎参数");
return "";
}
private void a(Bundle bundle, SearchVReportBean searchVReportBean, String str) {
String string = PublicSettingManager.a().getString("ProcessDataForSearch.Search.ExtraInfo", "");
if (searchVReportBean != null) {
if (!TextUtils.isEmpty(string)) {
string = string + ContainerUtils.FIELD_DELIMITER;
}
string = string + "entryScene=" + searchVReportBean.q() + ContainerUtils.FIELD_DELIMITER + "entryStatus" + ContainerUtils.KEY_VALUE_DELIMITER + searchVReportBean.r() + ContainerUtils.FIELD_DELIMITER + "searchPageStatus" + ContainerUtils.KEY_VALUE_DELIMITER + searchVReportBean.s() + ContainerUtils.FIELD_DELIMITER + "entryTime" + ContainerUtils.KEY_VALUE_DELIMITER + searchVReportBean.v() + ContainerUtils.FIELD_DELIMITER + "entryContent" + ContainerUtils.KEY_VALUE_DELIMITER + searchVReportBean.t() + ContainerUtils.FIELD_DELIMITER + "searchPageContent" + ContainerUtils.KEY_VALUE_DELIMITER + searchVReportBean.u();
if (!TextUtils.isEmpty(str)) {
string = string + "&jump_from=" + str;
}
}
bundle.putString("key_search_direct_extra_info", string);
}
private void a(JumpSearchData jumpSearchData) {
SearchUrlLoaderConfig searchUrlLoaderConfig = new SearchUrlLoaderConfig();
searchUrlLoaderConfig.a(jumpSearchData.f70422a);
SearchUrlLoader.a().a(new UrlParams(jumpSearchData.f70423b).b(jumpSearchData.f70424c).f(jumpSearchData.f70425d).a(jumpSearchData.e).b(jumpSearchData.f).c(jumpSearchData.g).a(jumpSearchData.h), jumpSearchData.f70422a, jumpSearchData.f70423b, searchUrlLoaderConfig);
}
private void a(JumpSearchData jumpSearchData, IWebView iWebView, boolean z) {
String str;
String str2;
if (!TextUtils.equals(jumpSearchData.f70423b, this.j)) {
str = "打开的链接为:" + jumpSearchData.f70423b;
str2 = "搜索词与前一个不相同,打开新的搜索结果页";
} else {
if (a(iWebView) && z) {
SearchLog.a("右键点击", "搜索词与上一个相同,且上一个界面是搜索界面,直接复用上一个界面,并刷新", "打开的链接为:" + jumpSearchData.f70423b, 1);
WindowManager.a().s().back(true, false);
jumpSearchData.f = 33;
a(jumpSearchData);
}
str = "打开的链接为:" + jumpSearchData.f70423b;
str2 = "搜索词与上一个相同,且上一个界面不是搜索界面,打开新的搜索结果页";
}
SearchLog.a("右键点击", str2, str, 1);
a(jumpSearchData);
}
private void a(String str, int i, int i2) {
String str2;
PlatformStatUtils.a("Search_EngineCtrl_doEngineControl");
if (TextUtils.isEmpty(str) || i < 0 || i > 1) {
SearchLog.a("CMD下发", "WUP云控-云控失败0", "引擎名为空或icon不在范围内,engineName=" + str + ",iconType=" + i, -1);
return;
}
ArrayList<SearchEngineItemInfo> searchItems = getSearchItems();
if (searchItems == null || searchItems.size() <= 0) {
SearchLog.a("CMD下发", "WUP云控-云控失败1", "本地引擎列表为空", -1);
PlatformStatUtils.a("Search_EngineCtrl_NotHaveEngineList");
return;
}
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
boolean z = false;
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && !TextUtils.isEmpty(next.f70408b) && next.f70408b.equalsIgnoreCase(str)) {
z = true;
}
}
if (z) {
String searchEngineRecogName = getSearchEngineRecogName();
SearchLog.a("CMD下发", "WUP云控-切换引擎成功", "engineName=" + str + ",iconType=" + i + ".taskID=" + i2, 1);
StringBuilder sb = new StringBuilder();
sb.append("searchenginename");
sb.append("网页".hashCode());
PublicSettingManager.a().setString(sb.toString(), str);
PublicSettingManager.a().setString("searchengineicon", i + "");
PublicSettingManager.a().setBoolean("key_search_engine_has_changed_v5_1", false);
notifySearchEngineSelectListener();
PublicSettingManager.a().setInt("searchControlTaskID", i2);
PublicSettingManager.a().setString("searchControlCommand", "");
ChangeEngineUploader.a().a(searchEngineRecogName, str, 1);
str2 = "Search_EngineCtrl_ControlSuccess";
} else {
SearchLog.a("CMD下发", "WUP云控-切换引擎失败3", "本地没有要切换的引擎", -1);
str2 = "Search_EngineCtrl_NotHaveTargetEngine";
}
PlatformStatUtils.a(str2);
}
private void a(String str, int i, boolean z, boolean z2, int i2) {
if (!z && b(str, i) && z2) {
SearchInputHistory searchInputHistory = new SearchInputHistory(str, str);
searchInputHistory.z = 5;
searchInputHistory.y = str;
searchInputHistory.D = i2;
SearchHistoryManager.a().b(searchInputHistory);
}
}
public static void a(boolean z) {
k = z;
}
private boolean a(int i, String str) {
return i == 97 && SearchUtils.h(str);
}
private boolean a(IWebView iWebView) {
if (iWebView == null) {
return false;
}
String url = iWebView.getUrl();
return SearchUtils.c(url) || SearchUtils.d(url);
}
private boolean a(ArrayList<SearchItemInfo> arrayList) {
if (arrayList == null || arrayList.size() <= 0) {
SearchLog.a("CMD下发", "引擎协议回包", "引擎列表为空", -1);
return false;
}
if (c(arrayList)) {
return true;
}
if (b(arrayList)) {
return false;
}
a(e(arrayList), 5);
return true;
}
private boolean a(boolean z, boolean z2, boolean z3) {
return (z || z2) && z3;
}
private Bitmap b(SearchEngineItemInfo searchEngineItemInfo) {
Bitmap o = o(searchEngineItemInfo.g);
return o == null ? getDefaultIconBitmap() : o;
}
public static Bitmap b(String str) {
File c2;
FileInputStream fileInputStream;
Bitmap bitmap = null;
bitmap = null;
bitmap = null;
bitmap = null;
bitmap = null;
FileInputStream fileInputStream2 = null;
bitmap = null;
bitmap = null;
if (TextUtils.isEmpty(str)) {
return null;
}
if (!TextUtils.isEmpty(str) && (c2 = c(str)) != null && c2.exists()) {
try {
fileInputStream = new FileInputStream(c2);
try {
bitmap = BitmapFactory.decodeStream(fileInputStream);
} catch (Exception unused) {
} catch (OutOfMemoryError unused2) {
} catch (Throwable th) {
th = th;
fileInputStream2 = fileInputStream;
if (fileInputStream2 != null) {
try {
fileInputStream2.close();
} catch (IOException unused3) {
}
}
throw th;
}
} catch (Exception unused4) {
fileInputStream = null;
} catch (OutOfMemoryError unused5) {
fileInputStream = null;
} catch (Throwable th2) {
th = th2;
}
try {
fileInputStream.close();
} catch (IOException unused6) {
}
}
return bitmap;
}
private void b(String str, int i, int i2, boolean z, String str2, boolean z2, String str3, String str4, String str5, int i3) {
a(str, i, z, z2, i3);
d(str3);
JumpSearchData a2 = a(str, i, i2, str3, str4, str5);
if (TextUtils.isEmpty(str2)) {
a(a2, SearchUtils.d(-1), k());
return;
}
SearchLog.a("右键点击", "PID为空,直接加载引擎结果页", "打开的链接为:" + a2.f70423b, 1);
a2.f = 12;
a2.h.putString("KEY_PID", str2);
a(a2);
}
private boolean b(String str, int i) {
return (TextUtils.isEmpty(str) || TextUtils.isEmpty(str.trim()) || i == 91 || i == 92 || i == 48 || i == 4) ? false : true;
}
private boolean b(ArrayList<SearchItemInfo> arrayList) {
String i = i();
if (TextUtils.isEmpty(i)) {
return true;
}
Iterator<SearchItemInfo> it = arrayList.iterator();
while (it.hasNext()) {
SearchItemInfo next = it.next();
if (next != null && next.sFullName.equalsIgnoreCase(i)) {
SearchLog.a("CMD下发", "引擎协议回包", "用户之前设置的引擎包含在新引擎列表中", 1);
return true;
}
}
return false;
}
public static File c(String str) {
if (TextUtils.isEmpty(str)) {
return null;
}
return new File(SettingUtils.a(), str.hashCode() + ".png");
}
private ArrayList<String> c(String str, String str2) {
SearchConfRule d2 = d(str, str2);
if (d2 == null) {
return null;
}
ArrayList<String> arrayList = new ArrayList<>();
arrayList.addAll(d2.vQueryParams);
return arrayList;
}
private void c(String str, int i, int i2, boolean z, String str2, boolean z2, String str3, String str4, String str5, int i3) {
String str6;
String str7;
String str8;
String str9;
String str10;
StringBuilder sb;
String str11 = null;
if (TextUtils.isEmpty(str3)) {
str6 = null;
} else {
str6 = str3;
str11 = getEngineUrlByName(str6);
}
if (TextUtils.isEmpty(str6) || TextUtils.isEmpty(str11)) {
str6 = getSearchEngineRecogName();
str11 = getEngineUrl();
}
SearchLog.a("右键点击", "赋值引擎名与url", "引擎名:" + str6 + ",引擎url:" + str11, 1);
if (str6 == null || !((str6.contains("sogou") || str6.contains("搜狗")) && str11 != null && str11.contains("pid="))) {
str7 = str11;
} else {
String decode = UrlUtils.decode(UrlUtils.getValueByKey(str11, str11.toLowerCase(), "pid=", Typography.amp));
if (i == 5) {
str8 = "pid=" + decode;
str9 = "pid=sogou-appi-ba9fab001f67381e";
} else if (i != 41) {
if (i == 48) {
sb = new StringBuilder();
} else if (i == 91 || i == 92) {
sb = new StringBuilder();
} else {
str8 = "pid=" + decode;
str9 = "pid=sogou-mobb-0bfce12794757473";
}
sb.append("pid=");
sb.append(decode);
str10 = str11.replaceFirst(sb.toString(), "pid=sogou-mobb-28659414dab9eca0");
SearchLog.a("右键点击", "给搜狗搜索增加不同的渠道", "", 1);
str7 = str10;
} else {
str8 = "pid=" + decode;
str9 = "pid=sogou-mobb-cfbc6c5cfb8a3e10";
}
str10 = str11.replaceFirst(str8, str9);
SearchLog.a("右键点击", "给搜狗搜索增加不同的渠道", "", 1);
str7 = str10;
}
b(str, i, i2, z, str2, z2, str7, str4, str5, i3);
}
private boolean c(ArrayList<SearchItemInfo> arrayList) {
Iterator<SearchItemInfo> it = arrayList.iterator();
while (it.hasNext()) {
SearchItemInfo next = it.next();
if (next != null && !TextUtils.isEmpty(next.sFullName) && next.isTargetEngine == 1) {
a(next.sFullName, 4);
return true;
}
}
return false;
}
private SearchConfRule d(String str, String str2) {
ArrayList<SearchConfRule> searchRules = getSearchRules();
if (searchRules != null && searchRules.size() > 0) {
Iterator<SearchConfRule> it = searchRules.iterator();
while (it.hasNext()) {
SearchConfRule next = it.next();
if (next.vDomain != null && next.vDomain.size() > 0 && next.vQueryParams != null && next.vQueryParams.size() > 0) {
Iterator<String> it2 = next.vDomain.iterator();
while (it2.hasNext()) {
if (TextUtils.equals(it2.next(), str2) && !TextUtils.isEmpty(next.sResultPageRule)) {
try {
if (Pattern.matches(next.sResultPageRule, str)) {
return next;
}
} catch (Exception unused) {
}
}
}
}
}
}
return null;
}
private String d(ArrayList<SearchEngineItemInfo> arrayList) {
Iterator<SearchEngineItemInfo> it = arrayList.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && next.n != 0 && next.n == 1 && !TextUtils.isEmpty(next.f70408b)) {
return next.f70408b;
}
}
Iterator<SearchEngineItemInfo> it2 = arrayList.iterator();
while (it2.hasNext()) {
SearchEngineItemInfo next2 = it2.next();
if (next2 != null || !TextUtils.isEmpty(next2.f70408b)) {
return next2.f70408b;
}
}
return "";
}
public static String e(String str) {
return PublicSettingManager.a().getString("huichuan_config_prefix_" + str, "");
}
private String e(ArrayList<SearchItemInfo> arrayList) {
Iterator<SearchItemInfo> it = arrayList.iterator();
while (it.hasNext()) {
SearchItemInfo next = it.next();
if (next != null && next.isDefault != 0 && next.isDefault == 1 && !TextUtils.isEmpty(next.sFullName)) {
return next.sFullName;
}
}
Iterator<SearchItemInfo> it2 = arrayList.iterator();
while (it2.hasNext()) {
SearchItemInfo next2 = it2.next();
if (next2 != null || !TextUtils.isEmpty(next2.sFullName)) {
return next2.sFullName;
}
}
return "";
}
private ArrayList<String> g(String str) {
ArrayList<String> arrayList = new ArrayList<>();
if (m(str)) {
arrayList.add("word");
arrayList.add("wd");
} else {
String str2 = "ikt";
if (l(str)) {
arrayList.add(IWeAppService.PARAM_KEYWORD);
} else if (k(str)) {
arrayList.add("ikt");
arrayList.add(SearchIntents.EXTRA_QUERY);
arrayList.add("key");
arrayList.add(IWeAppService.PARAM_KEYWORD);
} else {
str2 = "q";
if (!j(str)) {
if (!i(str)) {
if (!str.equalsIgnoreCase("m.haosou.com")) {
if (!h(str)) {
}
}
}
}
}
arrayList.add(str2);
}
return arrayList;
}
public static SearchEngineManager getInstance() {
if (m == null) {
synchronized (SearchEngineManager.class) {
if (m == null) {
m = new SearchEngineManager();
}
}
}
return m;
}
private void h() {
if (l()) {
return;
}
a(getSearchEngineRecogName(), 6);
SearchLog.a("CMD下发", "脏数据迁移", "用户选择的引擎不在引擎列表中,将用户的引擎设置为默认引擎", 1);
}
private boolean h(String str) {
return str.equalsIgnoreCase("m.sm.com") || str.equalsIgnoreCase("m.sm.cn");
}
private String i() {
return PublicSettingManager.a().getString("searchenginename" + "网页".hashCode(), "");
}
private boolean i(String str) {
return str.equalsIgnoreCase("wap.easou.com") || str.equalsIgnoreCase("i.easou.com");
}
private ArrayList<SearchEngineItemInfo> j() {
ArrayList<SearchEngineItemInfo> arrayList = new ArrayList<>();
String[] m2 = MttResources.m(R.array.ad);
String[] m3 = MttResources.m(R.array.ae);
String[] m4 = MttResources.m(R.array.af);
for (int i = 0; i < m2.length; i++) {
arrayList.add(new SearchEngineItemInfo(m2[i], m3[i], m4[i]));
}
return arrayList;
}
private boolean j(String str) {
return str.equalsIgnoreCase("www.google.com.cn") || str.equalsIgnoreCase("www.google.com.hk");
}
private boolean k() {
return SearchUtils.d(0) instanceof SearchCommonNativePage;
}
private boolean k(String str) {
return str.equalsIgnoreCase("www.soso.com") || str.equalsIgnoreCase("m.soso.com") || str.equalsIgnoreCase("wap.soso.com");
}
private boolean l() {
String i = i();
if (TextUtils.isEmpty(i)) {
return true;
}
Iterator<SearchEngineItemInfo> it = getSearchItems().iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && i.equalsIgnoreCase(next.f70408b)) {
return true;
}
}
return false;
}
private boolean l(String str) {
return str.equalsIgnoreCase("www.sogou.com") || str.equalsIgnoreCase("m.sogou.com") || str.equalsIgnoreCase("wap.sogou.com");
}
private String m() {
return StringUtils.b(SearchRNManager.a().f(), 0) + "";
}
private boolean m(String str) {
return str.equalsIgnoreCase("www.baidu.com") || str.equalsIgnoreCase("m.baidu.com") || str.equalsIgnoreCase("wap.baidu.com");
}
private Bitmap n(String str) {
ArrayList<SearchEngineItemInfo> searchItems;
if (TextUtils.isEmpty(str) || (searchItems = getSearchItems()) == null || searchItems.size() <= 0) {
return null;
}
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && next.f70408b.equalsIgnoreCase(str)) {
Bitmap b2 = b(next.f);
if (b2 != null) {
return b2;
}
final File c2 = c(next.f);
if (c2 != null && !c2.exists()) {
String str2 = next.f;
if (!TextUtils.isEmpty(str2)) {
TaskManager.a().a((Task) new PictureTask(str2, new TaskObserverBase() {
@Override
public void onTaskCompleted(Task task) {
FileUtils.a(c2, ((PictureTask) task).a());
}
}, false, null, (byte) 0, "search"));
}
}
}
}
return getDefaultIconBitmap();
}
private Bitmap o(String str) {
final File c2;
Bitmap b2 = b(str);
if (b2 == null && (c2 = c(str)) != null && !c2.exists() && !TextUtils.isEmpty(str)) {
TaskManager.a().a((Task) new PictureTask(str, new TaskObserverBase() {
@Override
public void onTaskCompleted(Task task) {
FileUtils.a(c2, ((PictureTask) task).a());
}
}, false, null, (byte) 0, "search_icon"));
}
return b2;
}
private static Bitmap p(String str) {
Bitmap bitmap = null;
if (TextUtils.isEmpty(str)) {
return null;
}
try {
if (!FeatureToggle.a(BuildConfig.BUG_TOGGLE_94413627)) {
str = str.split(Constants.ACCEPT_TIME_SEPARATOR_SERVER)[0];
}
InputStream open = ContextHolder.getAppContext().getResources().getAssets().open("searchengine_icon/icon_" + str + ".png");
bitmap = BitmapFactory.decodeStream(open);
open.close();
} catch (Exception | OutOfMemoryError unused) {
}
if (bitmap != null) {
return bitmap;
}
try {
InputStream open2 = ContextHolder.getAppContext().getResources().getAssets().open("searchengine_icon/icon_default.png");
bitmap = BitmapFactory.decodeStream(open2);
open2.close();
return bitmap;
} catch (Exception | OutOfMemoryError unused2) {
return bitmap;
}
}
private void q(String str) {
PublicSettingManager.a().setString("searchenginename" + "网页".hashCode(), str);
}
public Bitmap a(String str, String str2) {
if (a(this.h, new SearchEngineInfo(str, str2))) {
return this.h.a();
}
return null;
}
public String a(String str) {
SearchConfRule d2 = d(str, UrlUtils.getHost(str));
if (d2 != null) {
return d2.sFullName;
}
return null;
}
public void a() {
this.l++;
}
public void a(SearchItemRsp searchItemRsp) {
Set<String> keySet;
if (searchItemRsp == null || searchItemRsp.mHuichuanConf == null || (keySet = searchItemRsp.mHuichuanConf.keySet()) == null) {
return;
}
for (String str : keySet) {
if (!TextUtils.isEmpty(str)) {
PublicSettingManager.a().setString("huichuan_config_prefix_" + str, searchItemRsp.mHuichuanConf.get(str));
}
}
}
void a(WUPRequestBase wUPRequestBase, WUPResponseBase wUPResponseBase) {
Object bindObject;
if (wUPRequestBase != null && (bindObject = wUPRequestBase.getBindObject()) != null) {
((IBrowserCmdService) QBContext.getInstance().getService(IBrowserCmdService.class)).onBrowserCmdSuccess(bindObject, "");
}
UserSettingManager.b().setLong("key_last_request_search_engine_time", System.currentTimeMillis());
SearchItemRsp searchItemRsp = (SearchItemRsp) wUPResponseBase.get(HiAnalyticsConstant.Direction.RESPONSE);
if (searchItemRsp != null) {
if (FeatureToggle.a(BuildConfig.FEATURE_TOGGLE_868756421)) {
a(searchItemRsp.vSearchItemInfo);
}
getInstance().saveSearchData(searchItemRsp);
notifySearchEngineSelectListener();
}
a(searchItemRsp);
SearchCtrlRequester.a(this);
}
public void a(SmartBox_SearchControlRsp smartBox_SearchControlRsp) {
if (smartBox_SearchControlRsp == null || smartBox_SearchControlRsp.iRetCode != 0) {
SearchLog.a("CMD下发", "WUP云控-参数异常0-终止云控", "rsp为空或者rsp.iRetCode不为0", -1);
return;
}
PlatformStatUtils.a("Search_EngineCtrl_ReceiveRet0Result");
String str = smartBox_SearchControlRsp.sAuth;
SmartBox_SearchControlTask smartBox_SearchControlTask = smartBox_SearchControlRsp.task;
PublicSettingManager.a().setString("searchControlAuth", str);
if (smartBox_SearchControlTask == null) {
SearchLog.a("CMD下发", "WUP云控-参数异常1-终止云控", "controlTask为空", -1);
return;
}
int i = smartBox_SearchControlTask.iTaskId;
if (i == PublicSettingManager.a().getInt("searchControlTaskID", -1)) {
SearchLog.a("CMD下发", "WUP云控-任务已执行过,不再执行,终止云控", "taskID=" + i, -1);
PlatformStatUtils.a("Search_EngineCtrl_AlreadyDo");
return;
}
SmartBox_SearchControl_EngineSet smartBox_SearchControl_EngineSet = smartBox_SearchControlTask.sContent;
if (smartBox_SearchControl_EngineSet == null) {
SearchLog.a("CMD下发", "WUP云控-云控命令为空,终止云控", "", -1);
return;
}
String str2 = smartBox_SearchControl_EngineSet.sOldEngineName;
String str3 = smartBox_SearchControl_EngineSet.sNewEngineName;
String searchEngineRecogName = getInstance().getSearchEngineRecogName();
if (!TextUtils.isEmpty(str2) && !TextUtils.equals(str2, searchEngineRecogName)) {
SearchLog.a("CMD下发", "WUP云控-不符合target判断,云控终止", "oldEngine=" + str2 + ",newEngine=" + str3 + ",localEngineName=" + searchEngineRecogName, -1);
PlatformStatUtils.a("Search_EngineCtrl_NotMatch");
return;
}
SearchLog.a("CMD下发", "WUP云控-符合target判断,将命令存了下来,准备云控", "oldEngine=" + str2 + ",newEngine=" + str3 + ",localEngineName=" + searchEngineRecogName, 1);
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put("engineName", str3);
jSONObject.put("iconType", smartBox_SearchControl_EngineSet.iDefaultIcon);
jSONObject.put(Message.TASK_ID, i);
PublicSettingManager.a().setString("searchControlCommand", jSONObject.toString());
PlatformStatUtils.a("Search_EngineCtrl_SaveCommand");
} catch (Exception unused) {
}
}
public void a(String str, int i) {
if (TextUtils.isEmpty(str)) {
return;
}
SearchLog.a("CMD下发", "开始切换搜索引擎", "", 1);
PublicSettingManager a2 = PublicSettingManager.a();
boolean z = false;
Iterator<SearchEngineItemInfo> it = getSearchItems().iterator();
while (it.hasNext()) {
if (str.equalsIgnoreCase(it.next().f70408b)) {
z = true;
}
}
if (!z) {
SearchLog.a("CMD下发", "切换搜索引擎失败", "本地没有" + str + "引擎", -1);
return;
}
SearchLog.a("CMD下发", "切换搜索引擎成功", "切换为" + str, 1);
ChangeEngineUploader.a().a(getSearchEngineRecogName(), str, i);
q(str);
PublicSettingManager.a().setString("key_search_engine_info", str);
a2.setBoolean("key_search_engine_has_changed_v5_1", true);
notifySearchEngineSelectListener();
StatManager.b().c("N38");
a(true);
}
public void a(String str, int i, int i2, boolean z, String str2, boolean z2, String str3, String str4, String str5, int i3) {
if (i == 91 || i == 92 || i == 48 || i == 5 || i == 41) {
c(str, i, i2, z, str2, z2, str3, str4, str5, i3);
return;
}
String engineUrlByName = TextUtils.isEmpty(str3) ? null : getEngineUrlByName(str3);
if (TextUtils.isEmpty(engineUrlByName)) {
engineUrlByName = getEngineUrl();
}
b(str, i, i2, z, str2, z2, engineUrlByName, str4, str5, i3);
}
public boolean a(SearchEngineInfo searchEngineInfo, SearchEngineInfo searchEngineInfo2) {
return searchEngineInfo != null && searchEngineInfo2 != null && TextUtils.equals(searchEngineInfo.f70427b, searchEngineInfo2.f70427b) && TextUtils.equals(searchEngineInfo.f70426a, searchEngineInfo2.f70426a);
}
@Override
public void addSearchEngineSelectListener(IOnSearchEngineSelectChanged iOnSearchEngineSelectChanged) {
CopyOnWriteArrayList<IOnSearchEngineSelectChanged> copyOnWriteArrayList = this.e;
if (copyOnWriteArrayList == null || copyOnWriteArrayList.contains(iOnSearchEngineSelectChanged)) {
return;
}
this.e.add(iOnSearchEngineSelectChanged);
}
public String b(String str, String str2) {
String str3 = null;
if (TextUtils.isEmpty(str2)) {
str2 = null;
} else {
str3 = getInstance().getEngineUrlByName(str2);
}
if (TextUtils.isEmpty(str2) || TextUtils.isEmpty(str3)) {
str2 = getSearchEngineRecogName();
str3 = getEngineUrl();
}
if (str2 != null && ((str2.contains("sogou") || str2.contains("搜狗")) && str3 != null && str3.contains("pid="))) {
str3 = str3.replaceFirst("pid=" + UrlUtils.decode(UrlUtils.getValueByKey(str3, str3.toLowerCase(), "pid=", Typography.amp)), "pid=sogou-mobb-28659414dab9eca0");
}
return str3 + getValidSearchKey(str);
}
public void b(SearchItemRsp searchItemRsp) {
if (searchItemRsp == null) {
return;
}
int i = searchItemRsp.bBoostMode;
int i2 = i >> 8;
int i3 = i & 255;
if (i2 == PublicSettingManager.a().getInt("search_direct_enhance_version", 0)) {
return;
}
PublicSettingManager.a().setInt("search_direct_enhance_version", i2);
if (i3 == 2) {
PublicSettingManager.a().setBoolean("key_search_direct_enhance_mode_new", false);
StatManager.b().a("BPSG02", 0, false);
} else if (i3 == 1) {
PublicSettingManager.a().setBoolean("key_search_direct_enhance_mode_new", true);
StatManager.b().a("BPSG02", 1, false);
}
}
public boolean b() {
return this.l <= 1;
}
public boolean c() {
return this.g;
}
@Override
public void cleanSearchEngineConfig() {
PublicSettingManager.a().d();
notifySearchEngineSelectListener();
}
public void d() {
SearchLog.a("CMD下发", "WUP云控-切到后台,准备进行云控", "", 1);
try {
String string = PublicSettingManager.a().getString("searchControlCommand", "");
if (TextUtils.isEmpty(string)) {
SearchLog.a("CMD下发", "WUP云控-取到的命令为空。终止云控", "", -1);
return;
}
PlatformStatUtils.a("Search_EngineCtrl_ShutDownStartCommand");
JSONObject jSONObject = new JSONObject(string);
String string2 = jSONObject.getString("engineName");
int i = jSONObject.getInt("iconType");
int i2 = jSONObject.getInt(Message.TASK_ID);
if (i2 != PublicSettingManager.a().getInt("searchControlTaskID", -1)) {
a(string2, i, i2);
return;
}
SearchLog.a("CMD下发", "WUP云控,此命令已执行过,终止云控", "engineName=" + string2 + ",iconType=" + i + ",taskID=" + i2, -1);
PublicSettingManager.a().setString("searchControlCommand", "");
} catch (Exception unused) {
SearchLog.a("CMD下发", "WUP云控,突发异常,终止云控", "", -1);
}
}
public void d(String str) {
WebEngine e;
String string;
if (!TextUtils.isEmpty(str) && str.startsWith("qb://searchresult")) {
HashMap<String, String> urlParam = UrlUtils.getUrlParam(str);
if (urlParam != null) {
e = WebEngine.e();
str = urlParam.get("sogouUrl");
}
string = PublicSettingManager.a().getString("ANDROID_KD_TENCENT_SERACH_DOMAIN", "https://so.html5.qq.com/");
if (TextUtils.isEmpty(string)) {
WebEngine.e().g(string);
return;
}
return;
}
e = WebEngine.e();
e.g(str);
string = PublicSettingManager.a().getString("ANDROID_KD_TENCENT_SERACH_DOMAIN", "https://so.html5.qq.com/");
if (TextUtils.isEmpty(string)) {
}
}
@Override
public void doSearch(String str, int i, int i2) {
doSearch(str, i, i2, PublicSettingManager.a().e(), null, true, "");
}
@Override
public void doSearch(String str, int i, int i2, String str2) {
doSearch(str, i, i2, PublicSettingManager.a().e(), str2, true, "");
}
@Override
public void doSearch(String str, int i, int i2, String str2, String str3) {
a(str, i, i2, PublicSettingManager.a().e(), str2, true, "", str3, "", 0);
}
@Override
public void doSearch(String str, int i, int i2, boolean z, String str2, boolean z2, String str3) {
a(str, i, i2, z, str2, z2, str3, "", "", 0);
}
public String e() {
ArrayList<SearchEngineItemInfo> searchItems;
String searchEngineRecogName = getInstance().getSearchEngineRecogName();
if (!TextUtils.isEmpty(searchEngineRecogName) && (searchItems = getSearchItems()) != null && searchItems.size() > 0) {
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && next.f70408b.equalsIgnoreCase(searchEngineRecogName)) {
return next.f70410d;
}
}
}
return "";
}
public synchronized void f() {
ArrayList<SearchEngineItemInfo> arrayList = null;
SearchItemRsp b2 = SearchEngineData.b();
if (!SearchEngineData.a(b2)) {
arrayList = SearchEngineData.b(b2);
this.f70414c = b2.vSearchConfRule;
}
if (arrayList == null) {
arrayList = j();
}
this.f70413b = arrayList;
f70411d = true;
}
public void f(String str) {
String str2;
String str3;
EventLog.a("引擎路由", "originUrl:" + str);
SearchEngineRoutingData searchEngineRoutingData = new SearchEngineRoutingData(str);
if (TextUtils.isEmpty(searchEngineRoutingData.a())) {
return;
}
String a2 = a(searchEngineRoutingData);
if (!TextUtils.isEmpty(a2)) {
str2 = a2 + UrlUtils.encode(searchEngineRoutingData.a());
if (!TextUtils.isEmpty(searchEngineRoutingData.c())) {
str2 = UrlUtils.addParamsToUrl(str2, searchEngineRoutingData.c());
}
str3 = "SEARCH_ENGINE_ROUTING_SUCESS";
} else if (TextUtils.isEmpty(searchEngineRoutingData.d())) {
str2 = getEngineUrl() + UrlUtils.encode(searchEngineRoutingData.a());
str3 = "SEARCH_ENGINE_ROUTING_FAIL_DEFAULT_SEARCH";
} else {
str2 = searchEngineRoutingData.d();
str3 = "SEARCH_ENGINE_ROUTING_FAIL_OPEN_RESERVEDURL";
}
PlatformStatUtils.a(str3);
if (TextUtils.isEmpty(str2)) {
return;
}
EventLog.a("引擎路由", "targetUrl:" + str2);
Bundle bundle = new Bundle();
String g = SearchUtils.g();
if (!TextUtils.isEmpty(g)) {
bundle.putString("welfaredata", g);
}
((IFrameworkDelegate) QBContext.getInstance().getService(IFrameworkDelegate.class)).doLoad(new UrlParams(str2).a(bundle));
}
public void g() {
requestSearchItem(null, false);
}
@Override
public Bitmap getCurrentSearchIconBitmap() {
Bitmap bitmap;
Bitmap defaultIconBitmap;
PublicSettingManager a2 = PublicSettingManager.a();
if (!a2.getBoolean("key_search_engine_has_changed_v5_1", false)) {
String string = a2.getString("searchenginename" + "网页".hashCode(), "");
String string2 = a2.getString("searchengineicon", "1");
Bitmap a3 = a(string2, string);
if (a3 != null && !a3.isRecycled()) {
return a3;
}
if (TextUtils.equals(string2, "1")) {
a3 = getDefaultIconBitmap();
this.h = new SearchEngineInfo("1", string, a3);
if (a3 != null) {
return a3;
}
}
if (TextUtils.isEmpty(string) || TextUtils.equals(string2, "0")) {
try {
defaultIconBitmap = getDefaultIconBitmap();
try {
this.h = new SearchEngineInfo("0", string, defaultIconBitmap);
} catch (OutOfMemoryError unused) {
bitmap = defaultIconBitmap;
}
} catch (OutOfMemoryError unused2) {
bitmap = a3;
}
} else {
defaultIconBitmap = getInstance().getSearchIcon(string);
this.h = new SearchEngineInfo("0", string, defaultIconBitmap);
}
if (defaultIconBitmap == null) {
return defaultIconBitmap;
}
try {
return getDefaultIconBitmap();
} catch (OutOfMemoryError unused3) {
return defaultIconBitmap;
}
}
String searchEngineRecogName = getInstance().getSearchEngineRecogName();
Bitmap a4 = a("0", searchEngineRecogName);
if (a4 != null && !a4.isRecycled()) {
return a4;
}
bitmap = getInstance().getSearchIcon(searchEngineRecogName);
this.h = new SearchEngineInfo("0", searchEngineRecogName, bitmap);
defaultIconBitmap = bitmap;
if (defaultIconBitmap == null) {
}
}
@Override
public Bitmap getDefaultIconBitmap() {
if (this.i == null) {
this.i = UIUtil.a(MttResources.p(SearchInputConfig.b()), MttResources.c(R.color.theme_color_adrbar_btn_normal));
}
return this.i;
}
@Override
public String getDefaultSearchEngineName() {
return !PublicSettingManager.a().getBoolean("key_search_engine_has_changed_v5_1", false) ? "" : getInstance().getSearchEngineRecogName();
}
@Override
public ArrayList<SearchEngineItemInfo> getDisplaySearchItems() {
ArrayList<SearchEngineItemInfo> searchItems = getSearchItems();
ArrayList<SearchEngineItemInfo> arrayList = new ArrayList<>();
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next.e == 0) {
arrayList.add(next);
}
}
return arrayList;
}
@Override
public String getEngineType(String str) {
ArrayList<SearchEngineItemInfo> searchItems;
String a2 = a(str);
if (!TextUtils.isEmpty(a2) && (searchItems = getSearchItems()) != null && searchItems.size() > 0) {
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && !TextUtils.isEmpty(next.f70408b) && !TextUtils.isEmpty(next.f70409c) && a2.equals(next.f70408b)) {
return next.m;
}
}
}
return "";
}
@Override
public String getEngineTypeWithDefault(String str, String str2) {
String engineType = getEngineType(str);
return TextUtils.isEmpty(engineType) ? str2 : engineType;
}
@Override
public synchronized String getEngineUrl() {
String searchEngineRecogName = getSearchEngineRecogName();
ArrayList<SearchEngineItemInfo> searchItems = getSearchItems();
if (searchItems != null && searchItems.size() > 0) {
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && next.f70408b.equalsIgnoreCase(searchEngineRecogName)) {
return next.f70409c;
}
}
return "";
}
return "";
}
@Override
public synchronized String getEngineUrlByName(String str) {
if (TextUtils.isEmpty(str)) {
return "";
}
ArrayList<SearchEngineItemInfo> searchItems = getSearchItems();
if (searchItems != null && searchItems.size() > 0) {
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && next.f70408b.equalsIgnoreCase(str)) {
return next.f70409c;
}
}
return "";
}
return "";
}
@Override
public Bitmap getHomeCurrentSearchIconBitmap() {
Bitmap searchIcon;
SearchEngineInfo searchEngineInfo;
PublicSettingManager a2 = PublicSettingManager.a();
if (a2.getBoolean("key_search_engine_has_changed_v5_1", false)) {
String searchEngineRecogName = getInstance().getSearchEngineRecogName();
Bitmap n = n(searchEngineRecogName);
this.h = new SearchEngineInfo("0", searchEngineRecogName, n);
searchIcon = n;
} else {
String string = a2.getString("searchenginename" + "网页".hashCode(), "");
String string2 = a2.getString("searchengineicon", "1");
Bitmap a3 = a(string2, string);
if (a3 != null && !a3.isRecycled()) {
return a3;
}
if (TextUtils.equals(string2, "1")) {
Bitmap defaultIconBitmap = getDefaultIconBitmap();
this.h = new SearchEngineInfo("1", string, defaultIconBitmap);
if (defaultIconBitmap != null) {
return defaultIconBitmap;
}
}
if (TextUtils.isEmpty(string)) {
searchIcon = n(string);
searchEngineInfo = new SearchEngineInfo("0", string, searchIcon);
} else {
searchIcon = getInstance().getSearchIcon(string);
searchEngineInfo = new SearchEngineInfo("0", string, searchIcon);
}
this.h = searchEngineInfo;
}
if (searchIcon != null) {
return searchIcon;
}
try {
return getDefaultIconBitmap();
} catch (OutOfMemoryError unused) {
return searchIcon;
}
}
@Override
public String getSearchEngineByUrl(String str, String str2) {
if (TextUtils.isEmpty(str)) {
str = "";
}
ArrayList<SearchConfRule> searchRules = getSearchRules();
if (searchRules == null || searchRules.size() <= 0) {
return null;
}
Iterator<SearchConfRule> it = searchRules.iterator();
while (it.hasNext()) {
SearchConfRule next = it.next();
if (!a(Pattern.matches(next.sHomePageRule, str), Pattern.matches(next.sDefaultPageRule, str), TextUtils.isEmpty(next.sTitleRule) || Pattern.matches(next.sTitleRule, str2)) && !Pattern.matches(next.sResultPageRule, str)) {
}
return next.sFullName;
}
return null;
}
@Override
public String getSearchEngineRecogName() {
String i = i();
ArrayList<SearchEngineItemInfo> searchItems = getSearchItems();
if (searchItems == null || searchItems.size() <= 0) {
return "";
}
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && !TextUtils.isEmpty(next.f70408b) && next.f70408b.equalsIgnoreCase(i)) {
return i;
}
}
return d(getDisplaySearchItems());
}
@Override
public String getSearchEngineTitle() {
String searchEngineRecogName = getSearchEngineRecogName();
ArrayList<SearchEngineItemInfo> searchItems = getSearchItems();
if (searchItems != null && searchItems.size() > 0) {
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && next.f70408b.equalsIgnoreCase(searchEngineRecogName)) {
return next.f70407a;
}
}
}
return "";
}
@Override
public Bitmap getSearchIcon(AddressBarViewState addressBarViewState) {
String str;
try {
Bitmap a2 = a(addressBarViewState);
if (a2 != null) {
return a2;
}
} catch (Exception unused) {
}
if (addressBarViewState.f35858b == 8) {
str = ISearchEngineService.BAIDU_ENGINE_NAME;
} else {
if (addressBarViewState.f35858b != 9) {
return null;
}
str = ISearchEngineService.SOGOU_ENGINE_NAME;
}
return getSearchIcon(str);
}
@Override
public Bitmap getSearchIcon(SearchEngineItemInfo searchEngineItemInfo) {
if (searchEngineItemInfo == null) {
return getDefaultIconBitmap();
}
Bitmap b2 = b(searchEngineItemInfo.f70410d);
if (b2 == null) {
b2 = p(searchEngineItemInfo.f70408b);
final File c2 = c(searchEngineItemInfo.f70410d);
if (c2 != null && !c2.exists()) {
String str = searchEngineItemInfo.f70410d;
if (!TextUtils.isEmpty(str)) {
TaskManager.a().a((Task) new PictureTask(str, new TaskObserverBase() {
@Override
public void onTaskCompleted(Task task) {
FileUtils.a(c2, ((PictureTask) task).a());
}
}, false, null, (byte) 0, "search_icon"));
}
}
}
return b2;
}
@Override
public synchronized Bitmap getSearchIcon(String str) {
if (TextUtils.isEmpty(str)) {
return getDefaultIconBitmap();
}
ArrayList<SearchEngineItemInfo> searchItems = getSearchItems();
if (searchItems != null && searchItems.size() > 0) {
Iterator<SearchEngineItemInfo> it = searchItems.iterator();
while (it.hasNext()) {
SearchEngineItemInfo next = it.next();
if (next != null && next.f70408b.equalsIgnoreCase(str)) {
Bitmap searchIcon = getSearchIcon(next);
if (searchIcon != null) {
return searchIcon;
}
return getDefaultIconBitmap();
}
}
return getDefaultIconBitmap();
}
return getDefaultIconBitmap();
}
@Override
public Bitmap getSearchIconByType() {
if (!TextUtils.isEmpty("")) {
return getSearchIcon("");
}
Bitmap currentSearchIconBitmap = getCurrentSearchIconBitmap();
return currentSearchIconBitmap == null ? getDefaultIconBitmap() : currentSearchIconBitmap;
}
@Override
public ArrayList<SearchEngineItemInfo> getSearchItems() {
ArrayList<SearchEngineItemInfo> arrayList = this.f70413b;
if (arrayList == null || arrayList.size() == 0) {
f();
}
return this.f70413b;
}
@Override
public String getSearchRecogNameByUrl(String str) {
if (TextUtils.isEmpty(str)) {
return "";
}
String host = UrlUtils.getHost(str);
return TextUtils.isEmpty(host) ? "" : m(host) ? ISearchEngineService.BAIDU_ENGINE_NAME : l(host) ? ISearchEngineService.SOGOU_ENGINE_NAME : k(host) ? "soso-page" : j(host) ? ISearchEngineService.GOOGLE_ENGINE_NAME : i(host) ? "yisou-page" : "";
}
@Override
public ArrayList<SearchConfRule> getSearchRules() {
ArrayList<SearchConfRule> arrayList = this.f70414c;
if (arrayList == null || arrayList.size() == 0) {
f();
}
return this.f70414c;
}
@Override
public int getSearchStaticIndex() {
String searchEngineRecogName = getSearchEngineRecogName();
if (TextUtils.isEmpty(searchEngineRecogName) || searchEngineRecogName.toLowerCase().contains("sogou")) {
return 0;
}
if (searchEngineRecogName.toLowerCase().contains("baidu")) {
return 1;
}
if (searchEngineRecogName.toLowerCase().contains("google")) {
return 2;
}
if (searchEngineRecogName.toLowerCase().contains("soso")) {
return 3;
}
return searchEngineRecogName.toLowerCase().contains("yisou") ? 4 : 0;
}
@Override
public String getSearchWord(String str) {
if (TextUtils.isEmpty(str)) {
return "";
}
String host = UrlUtils.getHost(str);
if (!f70411d) {
f();
}
ArrayList<String> c2 = c(str, host);
if (c2 == null || c2.size() <= 0) {
c2 = g(host);
}
if (c2.size() > 0) {
Iterator<String> it = c2.iterator();
while (it.hasNext()) {
String urlParamValue = UrlUtils.getUrlParamValue(str, it.next());
if (!TextUtils.isEmpty(urlParamValue)) {
return UrlUtils.decode(urlParamValue);
}
}
}
return "";
}
@Override
public String getUrl(String str) {
String validSearchKey = getValidSearchKey(str);
return getEngineUrl() + validSearchKey;
}
@Override
public String getValidSearchKey(String str) {
if (str == null) {
str = "";
}
String replace = str.replace('\r', ' ').replace('\n', ' ');
try {
return URLEncoder.encode(replace, "UTF-8").replace("%C2%A0", "%20");
} catch (Exception unused) {
return replace;
}
}
@Override
public boolean hasChangeEngine() {
return k;
}
@Override
public void notifySearchEngineSelectListener() {
CopyOnWriteArrayList<IOnSearchEngineSelectChanged> copyOnWriteArrayList = this.e;
if (copyOnWriteArrayList == null || copyOnWriteArrayList.size() <= 0) {
return;
}
QBTask.b((Callable) new Callable<Void>() {
@Override
public Void call() throws Exception {
Iterator it = SearchEngineManager.this.e.iterator();
while (it.hasNext()) {
IOnSearchEngineSelectChanged iOnSearchEngineSelectChanged = (IOnSearchEngineSelectChanged) it.next();
if (iOnSearchEngineSelectChanged != null) {
iOnSearchEngineSelectChanged.q();
}
}
return null;
}
});
}
@Override
public void onColdStart() {
a(false);
PlatformStatUtils.a("Search_EngineCtrl_ColdStartRequest");
if (TextUtils.isEmpty(PublicSettingManager.a().getString("key_search_engine_info", ""))) {
PublicSettingManager.a().setString("key_search_engine_info", getSearchEngineRecogName());
}
if (FeatureToggle.a(BuildConfig.FEATURE_TOGGLE_868756421) && PublicSettingManager.a().getBoolean("PSK_SEARCH_ENGINE_HAS_CLEAR_DIRTY_DATA", false)) {
h();
PublicSettingManager.a().setBoolean("PSK_SEARCH_ENGINE_HAS_CLEAR_DIRTY_DATA", true);
}
}
@Override
public void onLoadBaiduOrSogouHomePage(String str) {
a(false);
}
@Override
public void onShutdown() {
this.g = false;
}
@Override
public void onWUPTaskFail(WUPRequestBase wUPRequestBase) {
Object bindObject;
SearchLog.a("CMD下发", "WUP云控-请求失败", "", -1);
this.f = false;
if (wUPRequestBase == null || (bindObject = wUPRequestBase.getBindObject()) == null) {
return;
}
((IBrowserCmdService) QBContext.getInstance().getService(IBrowserCmdService.class)).onBrowerCmdFailed(bindObject);
}
@Override
public void onWUPTaskSuccess(WUPRequestBase wUPRequestBase, WUPResponseBase wUPResponseBase) {
Object bindObject;
this.f = false;
if (wUPResponseBase != null && (wUPResponseBase.get(HiAnalyticsConstant.Direction.RESPONSE) instanceof SearchItemRsp)) {
a(wUPRequestBase, wUPResponseBase);
return;
}
if (wUPResponseBase != null && (wUPResponseBase.get(HiAnalyticsConstant.Direction.RESPONSE) instanceof SmartBox_SearchControlRsp)) {
SearchLog.a("CMD下发", "WUP云控-请求成功,收到后台回包", "", 1);
a((SmartBox_SearchControlRsp) wUPResponseBase.get(HiAnalyticsConstant.Direction.RESPONSE));
d();
} else {
if (wUPRequestBase == null || (bindObject = wUPRequestBase.getBindObject()) == null) {
return;
}
((IBrowserCmdService) QBContext.getInstance().getService(IBrowserCmdService.class)).onBrowerCmdFailed(bindObject);
}
}
@Override
public void removeSearchEngineSelectListener(IOnSearchEngineSelectChanged iOnSearchEngineSelectChanged) {
CopyOnWriteArrayList<IOnSearchEngineSelectChanged> copyOnWriteArrayList = this.e;
if (copyOnWriteArrayList != null) {
copyOnWriteArrayList.remove(iOnSearchEngineSelectChanged);
}
}
@Override
public void requestSearchItem(Object obj, boolean z) {
if (this.f) {
if (obj != null) {
((IBrowserCmdService) QBContext.getInstance().getService(IBrowserCmdService.class)).onBrowserCmdSuccess(obj, "");
return;
}
return;
}
if (!z) {
if (Math.abs(System.currentTimeMillis() - UserSettingManager.b().getLong("key_last_request_search_engine_time", 0L)) < 14400000) {
SearchCtrlRequester.a(this);
return;
}
}
this.g = true;
this.f = true;
WUPRequest wUPRequest = new WUPRequest("hotword", "getSearchConfig");
wUPRequest.setClassLoader(getClass().getClassLoader());
SearchItemReq searchItemReq = new SearchItemReq();
searchItemReq.sMD5 = UserSettingManager.b().getString("key_search_engine_item_md5", "fb516d26eef218a9fd8f8af123570610");
searchItemReq.sHipyyVersion = m();
if (FeatureToggle.a(BuildConfig.FEATURE_TOGGLE_868756421)) {
searchItemReq.sEngineName = getSearchEngineRecogName();
}
wUPRequest.put(HiAnalyticsConstant.Direction.REQUEST, searchItemReq);
wUPRequest.setRequestCallBack(this);
wUPRequest.setType((byte) 72);
wUPRequest.setBindObject(obj);
WUPTaskProxy.send(wUPRequest);
}
@Override
public void saveSearchData(SearchItemRsp searchItemRsp) {
b(searchItemRsp);
if (searchItemRsp == null || searchItemRsp.vSearchItemInfo == null || searchItemRsp.vSearchItemInfo.size() == 0) {
return;
}
SearchEngineData.c(searchItemRsp);
UserSettingManager.b().setString("key_search_engine_item_md5", searchItemRsp.sMD5);
if (this.f70413b != null) {
f();
}
}
@Override
public void setNewSearchEngine(String str) {
a(str, 0);
}
@Override
public void showSearchEngineDialog(QBLinearDialogClickListener qBLinearDialogClickListener) {
ArrayList<SearchEngineItemInfo> displaySearchItems = getDisplaySearchItems();
if (displaySearchItems == null || displaySearchItems.size() <= 0) {
return;
}
String[] strArr = new String[displaySearchItems.size()];
Bitmap[] bitmapArr = new Bitmap[displaySearchItems.size()];
String searchEngineRecogName = getSearchEngineRecogName();
int i = -1;
for (int i2 = 0; i2 < displaySearchItems.size(); i2++) {
SearchEngineItemInfo searchEngineItemInfo = displaySearchItems.get(i2);
if (searchEngineItemInfo != null) {
strArr[i2] = searchEngineItemInfo.f70407a;
bitmapArr[i2] = getSearchIcon(searchEngineItemInfo);
if (searchEngineItemInfo.f70408b.equalsIgnoreCase(searchEngineRecogName)) {
i = i2;
}
}
}
String l = MttResources.l(R.string.b_3);
SearchEngineDialog searchEngineDialog = this.f70412a;
if (searchEngineDialog == null || !searchEngineDialog.isShowing()) {
SkinManager.s().l();
this.f70412a = new SearchEngineDialog(l, strArr, bitmapArr, i);
this.f70412a.b(l);
this.f70412a.a(qBLinearDialogClickListener);
this.f70412a.show();
}
}
}