[cr146][Android] SearchEngineAdapter.ctor change
New arg siteSearchClickHandler Chromium change: https://source.chromium.org/chromium/chromium/src/+/ce9bd0417d1e559e2d3ae5f8b19ee1530b62c369 Site Search: Add site search setting entry This CL adds a "Manage search engine and site search entry" in existing Search Engine Settings page. This advanced setting option will be displayed based on omnibox site search feature flag. Bug: 459588730 Change-Id: I5c1c806f8d0fcec40b87cb94b31573317696d28c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7494099
This commit is contained in:
@@ -102,6 +102,7 @@
|
||||
*** mProfile;
|
||||
*** mSearchEngineAdapter;
|
||||
*** createAdapterIfNecessary(...);
|
||||
*** openSiteSearchSettings(...);
|
||||
}
|
||||
|
||||
-keep class org.chromium.components.browser_ui.site_settings.SiteSettingsCategory {
|
||||
|
||||
@@ -24,6 +24,10 @@ android_library("java") {
|
||||
"//chrome/browser/preferences:java",
|
||||
"//chrome/browser/profiles/android:java",
|
||||
"//chrome/browser/search_engines/android:java",
|
||||
"//chrome/browser/settings:factory_java",
|
||||
"//components/browser_ui/settings/android:java",
|
||||
"//components/cached_flags:java",
|
||||
"//components/omnibox/common:features_java",
|
||||
"//components/search_engines/android:java",
|
||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||
"//third_party/androidx:androidx_fragment_fragment_java",
|
||||
|
||||
+13
-3
@@ -14,6 +14,7 @@ import android.widget.TextView;
|
||||
import org.chromium.base.BravePreferenceKeys;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.build.annotations.Nullable;
|
||||
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
@@ -33,8 +34,9 @@ public class BraveSearchEngineAdapter extends SearchEngineAdapter {
|
||||
private Profile mProfile;
|
||||
private boolean mNeedUpdateActiveDSE;
|
||||
|
||||
public BraveSearchEngineAdapter(Context context, Profile profile) {
|
||||
super(context, profile);
|
||||
public BraveSearchEngineAdapter(
|
||||
Context context, Profile profile, @Nullable Runnable siteSearchClickHandler) {
|
||||
super(context, profile, siteSearchClickHandler);
|
||||
}
|
||||
|
||||
public static void setDSEPrefs(TemplateUrl templateUrl, Profile profile) {
|
||||
@@ -158,7 +160,15 @@ public class BraveSearchEngineAdapter extends SearchEngineAdapter {
|
||||
return;
|
||||
}
|
||||
|
||||
TemplateUrl templateUrl = (TemplateUrl) getItem((int) view.getTag());
|
||||
int position = (int) view.getTag();
|
||||
|
||||
if (getItemViewType(position) == ViewType.SITE_SEARCH_SETTINGS) {
|
||||
// Super class already processed it, see
|
||||
// SearchEngineAdapter.onClick.
|
||||
return;
|
||||
}
|
||||
|
||||
TemplateUrl templateUrl = (TemplateUrl) getItem(position);
|
||||
setDSEPrefs(templateUrl, mProfile);
|
||||
ChromeSharedPreferences.getInstance()
|
||||
.writeBoolean(BravePreferenceKeys.DEFAULT_SEARCH_ENGINE_CHANGED, true);
|
||||
|
||||
+13
-1
@@ -9,6 +9,7 @@ import android.os.Bundle;
|
||||
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.search_engines.R;
|
||||
import org.chromium.components.omnibox.OmniboxFeatures;
|
||||
|
||||
public class BraveSearchEnginePreference extends SearchEngineSettings {
|
||||
// These members will be deleted in bytecode, member from parent class will be used instead.
|
||||
@@ -31,7 +32,14 @@ public class BraveSearchEnginePreference extends SearchEngineSettings {
|
||||
|
||||
public void createAdapterIfNecessary() {
|
||||
if (mSearchEngineAdapter != null) return;
|
||||
mSearchEngineAdapter = new BraveSearchEngineAdapter(getActivity(), getProfile(mPrivate));
|
||||
|
||||
Runnable siteSearchClickHandler =
|
||||
OmniboxFeatures.sOmniboxSiteSearch.isEnabled()
|
||||
? this::openSiteSearchSettings
|
||||
: null;
|
||||
mSearchEngineAdapter =
|
||||
new BraveSearchEngineAdapter(
|
||||
getActivity(), getProfile(mPrivate), siteSearchClickHandler);
|
||||
}
|
||||
|
||||
private Profile getProfile(boolean isPrivate) {
|
||||
@@ -41,4 +49,8 @@ public class BraveSearchEnginePreference extends SearchEngineSettings {
|
||||
return mProfile.getPrimaryOtrProfile(/* createIfNeeded= */ true);
|
||||
}
|
||||
}
|
||||
|
||||
private void openSiteSearchSettings() {
|
||||
assert false : "This dummy method should be removed in bytecode!";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -611,6 +611,12 @@ public class BytecodeTest {
|
||||
"createAdapterIfNecessary",
|
||||
MethodModifier.REGULAR,
|
||||
void.class));
|
||||
Assert.assertTrue(
|
||||
methodExists(
|
||||
"org/chromium/chrome/browser/search_engines/settings/SearchEngineSettings",
|
||||
"openSiteSearchSettings",
|
||||
MethodModifier.REGULAR,
|
||||
void.class));
|
||||
Assert.assertTrue(
|
||||
methodExists(
|
||||
"org/chromium/chrome/browser/theme/ThemeUtils",
|
||||
|
||||
+6
-1
@@ -24,7 +24,12 @@ public class BraveSearchEnginePreferenceClassAdapter extends BraveClassVisitor {
|
||||
makeProtectedField(sSearchEngineSettingsClassName, "mProfile");
|
||||
|
||||
makePublicMethod(sSearchEngineSettingsClassName, "createAdapterIfNecessary");
|
||||
addMethodAnnotation(sBraveSearchEnginePreferenceClassName, "createAdapterIfNecessary",
|
||||
addMethodAnnotation(
|
||||
sBraveSearchEnginePreferenceClassName,
|
||||
"createAdapterIfNecessary",
|
||||
"Ljava/lang/Override;");
|
||||
|
||||
deleteMethod(sBraveSearchEnginePreferenceClassName, "openSiteSearchSettings");
|
||||
makePublicMethod(sSearchEngineSettingsClassName, "openSiteSearchSettings");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user