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