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