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
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index fef0b44..fce0c10 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -24,6 +24,7 @@
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 @@
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 @@
// 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 @@
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();