// 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.metrics.UmaSessionStats; 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().isUsageAndCrashReportingEnabled(); usageAndCrashReportsSwitch.setChecked(enabled); usageAndCrashReportsSwitch.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { UmaSessionStats.changeMetricsReportingConsent((boolean) newValue); return true; } }); usageAndCrashReportsSwitch.setManagedPreferenceDelegate(new ManagedPreferenceDelegate() { @Override public boolean isPreferenceControlledByPolicy(Preference preference) { return PrefServiceBridge.getInstance().isMetricsReportingManaged(); } }); } }