Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java |
index 7bd0c96ac1dd03976f85308a3a993e22b96017c2..3a4ccb5280d49910a1251d821d490061cd944ea1 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java |
@@ -7,8 +7,11 @@ package org.chromium.chrome.browser.preferences; |
import android.content.Context; |
import android.content.SharedPreferences; |
import android.preference.PreferenceManager; |
+import android.text.TextUtils; |
+import org.chromium.base.CommandLine; |
import org.chromium.base.annotations.SuppressFBWarnings; |
+import org.chromium.chrome.browser.ChromeSwitches; |
import org.chromium.chrome.browser.crash.MinidumpUploadService.ProcessType; |
import org.chromium.chrome.browser.signin.SigninPromoUma; |
@@ -40,6 +43,7 @@ public class ChromePreferenceManager { |
private static final String CONTEXTUAL_SEARCH_LAST_ANIMATION_TIME = |
"contextual_search_last_animation_time"; |
private static final String ENABLE_CUSTOM_TABS = "enable_custom_tabs"; |
+ private static final String HERB_FLAVOR_KEY = "herb_flavor"; |
private static final String SUCCESS_UPLOAD_SUFFIX = "_crash_success_upload"; |
private static final String FAILURE_UPLOAD_SUFFIX = "_crash_failure_upload"; |
@@ -320,6 +324,28 @@ public class ChromePreferenceManager { |
} |
/** |
+ * @return What flavor of Herb is enabled. |
+ */ |
+ public String getHerbFlavor() { |
+ return mSharedPreferences.getString(HERB_FLAVOR_KEY, null); |
+ } |
+ |
+ /** |
+ * Caches which flavor of Herb the user prefers from native. |
+ */ |
+ public boolean cacheHerbFlavor() { |
+ String oldFlavor = getHerbFlavor(); |
+ String newFlavor = |
+ CommandLine.getInstance().getSwitchValue(ChromeSwitches.HERB_FLAVOR, null); |
+ |
+ if (!TextUtils.equals(oldFlavor, newFlavor)) { |
+ writeString(HERB_FLAVOR_KEY, newFlavor); |
+ return true; |
+ } |
+ return false; |
+ } |
+ |
+ /** |
* Writes the given int value to the named shared preference. |
* |
* @param key The name of the preference to modify. |
@@ -330,4 +356,16 @@ public class ChromePreferenceManager { |
ed.putInt(key, value); |
ed.apply(); |
} |
+ |
+ /** |
+ * Writes the given String to the named shared preference. |
+ * |
+ * @param key The name of the preference to modify. |
+ * @param value The new value for the preference. |
+ */ |
+ private void writeString(String key, String value) { |
+ SharedPreferences.Editor ed = mSharedPreferences.edit(); |
+ ed.putString(key, value); |
+ ed.apply(); |
+ } |
} |