Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4977)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/UsageAndCrashReportsPreferenceFragment.java

Issue 1058433007: New UMA settings fragment using Android prefs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove pref init Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/UsageAndCrashReportsPreferenceFragment.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/UsageAndCrashReportsPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/UsageAndCrashReportsPreferenceFragment.java
new file mode 100644
index 0000000000000000000000000000000000000000..e414c5b03acf794a6809cbf5fee8a03a2394b77f
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/UsageAndCrashReportsPreferenceFragment.java
@@ -0,0 +1,65 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.preferences.privacy;
+
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceChangeListener;
+import android.preference.PreferenceFragment;
+
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.preferences.ChromeSwitchPreference;
+import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate;
+import org.chromium.chrome.browser.preferences.PrefServiceBridge;
+
+/**
+ * Fragment to manage the Usage and crash reports preference and to explain to
+ * the user what it does.
+ */
+public class UsageAndCrashReportsPreferenceFragment extends PreferenceFragment {
+ private static final String PREF_USAGE_AND_CRASH_REPORTS_SWITCH =
+ "usage_and_crash_reports_switch";
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.usage_and_crash_reports_preferences);
+ getActivity().setTitle(R.string.usage_and_crash_reports_title);
+ initUsageAndCrashReportsSwitch();
+ }
+
+ private void initUsageAndCrashReportsSwitch() {
+ ChromeSwitchPreference usageAndCrashReportsSwitch =
+ (ChromeSwitchPreference) findPreference(PREF_USAGE_AND_CRASH_REPORTS_SWITCH);
+ boolean enabled = PrivacyPreferencesManager.getInstance(getActivity())
+ .isUsageAndCrashReportingEnabled();
+ usageAndCrashReportsSwitch.setChecked(enabled);
+
+ usageAndCrashReportsSwitch.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ boolean enabled = (boolean) newValue;
+ PrivacyPreferencesManager privacyManager =
+ PrivacyPreferencesManager.getInstance(getActivity());
+
+ // Update new two-choice android and chromium preferences.
+ PrefServiceBridge.getInstance().setMetricsReportingEnabled(enabled);
+ privacyManager.setUsageAndCrashReporting(enabled);
+
+ // Update old three-choice android and chromium preference.
+ PrefServiceBridge.getInstance().setCrashReporting(enabled);
+ privacyManager.initCrashUploadPreference(enabled);
+ return true;
+ }
+ });
+
+ usageAndCrashReportsSwitch.setManagedPreferenceDelegate(new ManagedPreferenceDelegate() {
+ @Override
+ public boolean isPreferenceControlledByPolicy(Preference preference) {
+ return PrefServiceBridge.getInstance().isCrashReportManaged();
+ }
+ });
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698