Chromium Code Reviews| 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..046555746219927da2bbc6c41dab46f0aa45fbf6 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 some engines we designate. This is a no-op if the user |
|
Maria
2016/09/16 23:44:01
nit: Change to "Overrides the default search engin
Ian Wen
2016/09/19 17:37:55
Done.
|
| + * 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; |
| + } |
| } |