Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(618)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java

Issue 2347973002: Enable Chrome to tweak search engines for some locales (Closed)
Patch Set: fix compile Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java b/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java
index 3e98eb30a819ca82d9af6914f94fc37b0853fd75..6e9f71699fb8e7076b43a9bb45db6df6d7513b31 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java
@@ -10,6 +10,10 @@ import org.chromium.chrome.browser.ChromeFeatureList;
* Manager for some locale specific logics.
*/
public class LocaleManager {
+ public static final String SPECIAL_LOCALE_ID = "US";
+
+ private SpecialLocaleHandler mLocaleHandler;
+
/**
* Starts recording metrics in deferred startup.
*/
@@ -28,6 +32,42 @@ public class LocaleManager {
}
/**
+ * @return The country id of the special locale.
+ */
+ public String getSpecialLocaleId() {
+ return SPECIAL_LOCALE_ID;
+ }
+
+ /**
+ * Adds local search engines for special locale.
+ */
+ public void addSpecialSearchEngines() {
+ // TODO(ianwen): Let this method be called in ChromeActivity#finishNativeInitialization().
+ if (!isSpecialLocaleEnabled()) return;
+ getSpecialLocaleHandler().loadTemplateUrls();
+ }
+
+ /**
+ * Overrides the default search engine to a different search engine we designate. This is a
+ * no-op if the user has changed DSP settings before.
+ */
+ public void overrideDefaultSearchEngine() {
+ // TODO(ianwen): Let this method be called in promotion.
+ // TODO(ianwen): Implement search engine auto switching.
+ if (!isSpecialLocaleEnabled()) return;
+ getSpecialLocaleHandler().overrideDefaultSearchProvider();
+ }
+
+ /**
+ * Removes local search engines for special locale.
+ */
+ public void removeSpecialSearchEngines() {
+ // TODO(ianwen): Let this method be called when device configuration changes.
+ if (isSpecialLocaleEnabled()) return;
+ getSpecialLocaleHandler().removeTemplateUrls();
+ }
+
+ /**
* Does some extra checking about whether the user is in special locale.
* @param inSpecialLocale Whether the variation service thinks the client is in special locale.
* @return The result after extra confirmation.
@@ -35,4 +75,9 @@ public class LocaleManager {
protected boolean isReallyInSpecialLocale(boolean inSpecialLocale) {
return inSpecialLocale;
}
+
+ private SpecialLocaleHandler getSpecialLocaleHandler() {
+ if (mLocaleHandler == null) mLocaleHandler = new SpecialLocaleHandler(getSpecialLocaleId());
+ return mLocaleHandler;
+ }
}

Powered by Google App Engine
This is Rietveld 408576698