Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java |
index 289fdccc627e22848be50d771b09d86b636424ad..9e6e7e740406bd908122cd99595e38ad6dbe742a 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java |
@@ -10,6 +10,7 @@ import android.preference.Preference; |
import android.preference.Preference.OnPreferenceChangeListener; |
import android.preference.Preference.OnPreferenceClickListener; |
import android.preference.PreferenceFragment; |
+import android.preference.PreferenceScreen; |
import android.view.Menu; |
import android.view.MenuInflater; |
import android.view.MenuItem; |
@@ -46,6 +47,7 @@ public class PrivacyPreferences extends PreferenceFragment |
"crash_dump_upload_no_cellular"; |
private static final String PREF_DO_NOT_TRACK = "do_not_track"; |
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; |
+ private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports"; |
private ClearBrowsingDataDialogFragment mClearBrowsingDataDialogFragment; |
private ManagedPreferenceDelegate mManagedPreferenceDelegate; |
@@ -53,7 +55,9 @@ public class PrivacyPreferences extends PreferenceFragment |
@Override |
public void onCreate(Bundle savedInstanceState) { |
super.onCreate(savedInstanceState); |
- PrivacyPreferencesManager.getInstance(getActivity()).migrateNetworkPredictionPreferences(); |
+ PrivacyPreferencesManager privacyPrefManager = |
+ PrivacyPreferencesManager.getInstance(getActivity()); |
+ privacyPrefManager.migrateNetworkPredictionPreferences(); |
addPreferencesFromResource(R.xml.privacy_preferences); |
getActivity().setTitle(R.string.prefs_privacy); |
setHasOptionsMenu(true); |
@@ -67,15 +71,15 @@ public class PrivacyPreferences extends PreferenceFragment |
NetworkPredictionOptions networkPredictionOptions = PrefServiceBridge.getInstance() |
.getNetworkPredictionOptions(); |
- boolean isMobileNetworkCapable = |
- PrivacyPreferencesManager.getInstance(getActivity()).isMobileNetworkCapable(); |
+ PreferenceScreen preferenceScreen = getPreferenceScreen(); |
+ boolean isMobileNetworkCapable = privacyPrefManager.isMobileNetworkCapable(); |
if (isMobileNetworkCapable) { |
- getPreferenceScreen().removePreference(networkPredictionNoCellularPref); |
+ preferenceScreen.removePreference(networkPredictionNoCellularPref); |
networkPredictionPref.setValue(networkPredictionOptions.enumToString()); |
networkPredictionPref.setOnPreferenceChangeListener(this); |
networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
} else { |
- getPreferenceScreen().removePreference(networkPredictionPref); |
+ preferenceScreen.removePreference(networkPredictionPref); |
networkPredictionNoCellularPref.setChecked( |
networkPredictionOptions != NetworkPredictionOptions.NETWORK_PREDICTION_NEVER); |
networkPredictionNoCellularPref.setOnPreferenceChangeListener(this); |
@@ -83,19 +87,28 @@ public class PrivacyPreferences extends PreferenceFragment |
mManagedPreferenceDelegate); |
} |
+ // Display the correct settings fragment according to the user experiment group and to type |
+ // of the device, by removing not applicable preference fragments. |
CrashDumpUploadPreference uploadCrashDumpPref = |
(CrashDumpUploadPreference) findPreference(PREF_CRASH_DUMP_UPLOAD); |
ChromeBaseCheckBoxPreference uploadCrashDumpNoCellularPref = |
(ChromeBaseCheckBoxPreference) findPreference(PREF_CRASH_DUMP_UPLOAD_NO_CELLULAR); |
- if (isMobileNetworkCapable) { |
- getPreferenceScreen().removePreference(uploadCrashDumpNoCellularPref); |
- uploadCrashDumpPref.setOnPreferenceChangeListener(this); |
- uploadCrashDumpPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
+ if (privacyPrefManager.isCellularExperimentEnabled()) { |
+ preferenceScreen.removePreference(uploadCrashDumpNoCellularPref); |
+ preferenceScreen.removePreference(uploadCrashDumpPref); |
} else { |
- getPreferenceScreen().removePreference(uploadCrashDumpPref); |
- uploadCrashDumpNoCellularPref.setOnPreferenceChangeListener(this); |
- uploadCrashDumpNoCellularPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
+ preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING)); |
+ if (isMobileNetworkCapable) { |
+ preferenceScreen.removePreference(uploadCrashDumpNoCellularPref); |
+ uploadCrashDumpPref.setOnPreferenceChangeListener(this); |
+ uploadCrashDumpPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
+ } else { |
+ preferenceScreen.removePreference(uploadCrashDumpPref); |
+ uploadCrashDumpNoCellularPref.setOnPreferenceChangeListener(this); |
+ uploadCrashDumpNoCellularPref.setManagedPreferenceDelegate( |
+ mManagedPreferenceDelegate); |
+ } |
} |
ChromeBaseCheckBoxPreference navigationErrorPref = |
@@ -109,7 +122,7 @@ public class PrivacyPreferences extends PreferenceFragment |
searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
if (!((Preferences) getActivity()).isContextualSearchEnabled()) { |
- getPreferenceScreen().removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); |
+ preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); |
} |
ButtonPreference clearBrowsingData = |