diff options
author | Vivek Sekhar <vsekhar@codeaurora.org> | 2015-10-14 13:24:24 -0700 |
---|---|---|
committer | jrizzoli <joey@cyanogenmoditalia.it> | 2015-11-05 14:33:36 +0100 |
commit | ce94c2a072241bd42a1193fe9288e1015641dee0 (patch) | |
tree | d1ff5bd854c7df47963ef9eb8fad9e77fa619fe3 | |
parent | 35db4fa3881cf9bf7c5057a065a79a8451216ce0 (diff) | |
download | android_packages_apps_Gello-ce94c2a072241bd42a1193fe9288e1015641dee0.tar.gz android_packages_apps_Gello-ce94c2a072241bd42a1193fe9288e1015641dee0.tar.bz2 android_packages_apps_Gello-ce94c2a072241bd42a1193fe9288e1015641dee0.zip |
Select search engine based on locale
- Allow user specific overrides of search engine based on locale.
- If user does not have an override for search engine
use default locale specific search engine.
CR-Fixed:910238
Change-Id: I8775ce669c1625992954b53ec5ed39503f304596
4 files changed, 29 insertions, 3 deletions
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java index fef0b446..fce0c100 100644 --- a/src/com/android/browser/BrowserSettings.java +++ b/src/com/android/browser/BrowserSettings.java @@ -24,6 +24,7 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; +import android.preference.ListPreference; import android.preference.PreferenceManager; import android.provider.Settings; import android.util.DisplayMetrics; @@ -493,7 +494,7 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, return mAppCachePath; } - private void updateSearchEngine(boolean force) { + protected void updateSearchEngine(boolean force) { String searchEngineName = getSearchEngineName(); if (force || mSearchEngine == null || !mSearchEngine.getName().equals(searchEngineName)) { @@ -799,11 +800,11 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, // it creates the restriction and if enabled it sets the <default_search_engine_value>. SearchEngineRestriction.getInstance(); - String defaultSearchEngineValue = mContext.getString(R.string.default_search_engine_value); + String defaultSearchEngineValue = getUserSearchEngine(); if (defaultSearchEngineValue == null) { defaultSearchEngineValue = SearchEngine.GOOGLE; } - return mPrefs.getString(PREF_SEARCH_ENGINE, defaultSearchEngineValue); + return defaultSearchEngineValue; } public boolean allowAppTabs() { @@ -854,6 +855,23 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, mContext.getResources().getString(R.string.value_temporal_edge_swipe)).apply(); } + public void setUserSearchEngine(String engine) { + if (!engine.equals(mContext.getResources().getString(R.string.default_search_engine_value))) + mPrefs.edit().putString( + PREF_USER_SEARCH_ENGINE + mContext.getResources().getConfiguration().locale, + engine).apply(); + // ensure changing back to default clears the search engine + else + mPrefs.edit().remove(PREF_USER_SEARCH_ENGINE + + mContext.getResources().getConfiguration().locale).apply(); + } + + public String getUserSearchEngine() { + return mPrefs.getString( + PREF_USER_SEARCH_ENGINE + mContext.getResources().getConfiguration().locale + , mContext.getResources().getString(R.string.default_search_engine_value)); + } + public void setEdgeSwipeSpatial() { mPrefs.edit().putString(PREF_EDGE_SWIPE, mContext.getResources().getString(R.string.value_spatial_edge_swipe)).apply(); diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index e71bc271..4c059067 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -812,6 +812,8 @@ public class Controller } mActivityStopped = false; UpdateNotificationService.updateCheck(mActivity); + // reset the search engine based on locale + mSettings.updateSearchEngine(false); mSettings.setLastRunPaused(false); Tab current = mTabControl.getCurrentTab(); if (current != null) { diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java index 15ec6a07..ce6c4cb6 100644 --- a/src/com/android/browser/PreferenceKeys.java +++ b/src/com/android/browser/PreferenceKeys.java @@ -145,4 +145,8 @@ public interface PreferenceKeys { static final String PREF_LEGAL_PRIVACY_POLICY = "legal_privacy_policy"; static final String ACTION_RELOAD_PAGE = "reload"; + + // User preference + static final String PREF_USER_SEARCH_ENGINE = "user_search_engine-"; + } diff --git a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java index 65247674..1a87d64f 100644 --- a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java +++ b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java @@ -146,6 +146,8 @@ public class AdvancedPreferencesFragment } else if (pref.getKey().equals(PreferenceKeys.PREF_SEARCH_ENGINE)) { ListPreference lp = (ListPreference) pref; + // update the user preference + BrowserSettings.getInstance().setUserSearchEngine((String) objValue); lp.setValue((String) objValue); updateListPreferenceSummary(lp); return false; |