summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser
diff options
context:
space:
mode:
authorVivek Sekhar <vsekhar@codeaurora.org>2015-10-14 13:24:24 -0700
committerjrizzoli <joey@cyanogenmoditalia.it>2015-11-05 14:33:36 +0100
commitce94c2a072241bd42a1193fe9288e1015641dee0 (patch)
treed1ff5bd854c7df47963ef9eb8fad9e77fa619fe3 /src/com/android/browser
parent35db4fa3881cf9bf7c5057a065a79a8451216ce0 (diff)
downloadandroid_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
Diffstat (limited to 'src/com/android/browser')
-rw-r--r--src/com/android/browser/BrowserSettings.java24
-rw-r--r--src/com/android/browser/Controller.java2
-rw-r--r--src/com/android/browser/PreferenceKeys.java4
-rw-r--r--src/com/android/browser/preferences/AdvancedPreferencesFragment.java2
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;