Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/arc/optin/arc_optin_preference_handler.h" | 5 #include "chrome/browser/chromeos/arc/optin/arc_optin_preference_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/chromeos/arc/optin/arc_optin_preference_handler_observe r.h" | 9 #include "chrome/browser/chromeos/arc/optin/arc_optin_preference_handler_observe r.h" |
| 10 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" | 10 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" |
| 11 #include "chrome/browser/metrics/metrics_reporting_state.h" | 11 #include "chrome/browser/metrics/metrics_reporting_state.h" |
| 12 #include "chrome/common/pref_names.h" | 12 #include "chrome/common/pref_names.h" |
| 13 #include "components/metrics/metrics_pref_names.h" | 13 #include "components/metrics/metrics_pref_names.h" |
| 14 #include "components/prefs/pref_service.h" | 14 #include "components/prefs/pref_service.h" |
| 15 | 15 |
| 16 namespace arc { | 16 namespace arc { |
| 17 | 17 |
| 18 ArcOptInPreferenceHandler::ArcOptInPreferenceHandler( | 18 ArcOptInPreferenceHandler::ArcOptInPreferenceHandler( |
| 19 ArcOptInPreferenceHandlerObserver* observer, | 19 ArcOptInPreferenceHandlerObserver* observer, |
| 20 PrefService* pref_service) | 20 PrefService* pref_service) |
| 21 : observer_(observer), pref_service_(pref_service) { | 21 : observer_(observer), pref_service_(pref_service) { |
| 22 DCHECK(observer_); | 22 DCHECK(observer_); |
| 23 DCHECK(pref_service_); | 23 DCHECK(pref_service_); |
| 24 } | 24 } |
| 25 | 25 |
| 26 void ArcOptInPreferenceHandler::Start() { | 26 void ArcOptInPreferenceHandler::Start() { |
| 27 DCHECK(g_browser_process->local_state()); | 27 if (g_browser_process->local_state()) { |
|
hidehiko
2016/11/28 12:42:54
Unfortunately, injecting ScopedTestingLocalState d
Luis Héctor Chávez
2016/11/29 00:15:28
nit:
if (!g_browser_process->local_state()) {
/
hidehiko
2016/11/29 17:43:28
We still want to initialize pref_change_registrar_
| |
| 28 pref_local_change_registrar_.Init(g_browser_process->local_state()); | 28 pref_local_change_registrar_.Init(g_browser_process->local_state()); |
| 29 pref_local_change_registrar_.Add( | 29 pref_local_change_registrar_.Add( |
| 30 metrics::prefs::kMetricsReportingEnabled, | 30 metrics::prefs::kMetricsReportingEnabled, |
| 31 base::Bind(&ArcOptInPreferenceHandler::OnMetricsPreferenceChanged, | 31 base::Bind(&ArcOptInPreferenceHandler::OnMetricsPreferenceChanged, |
| 32 base::Unretained(this))); | 32 base::Unretained(this))); |
| 33 } | |
| 33 | 34 |
| 34 pref_change_registrar_.Init(pref_service_); | 35 pref_change_registrar_.Init(pref_service_); |
| 35 pref_change_registrar_.Add( | 36 pref_change_registrar_.Add( |
| 36 prefs::kArcBackupRestoreEnabled, | 37 prefs::kArcBackupRestoreEnabled, |
| 37 base::Bind( | 38 base::Bind( |
| 38 &ArcOptInPreferenceHandler::OnBackupAndRestorePreferenceChanged, | 39 &ArcOptInPreferenceHandler::OnBackupAndRestorePreferenceChanged, |
| 39 base::Unretained(this))); | 40 base::Unretained(this))); |
| 40 pref_change_registrar_.Add( | 41 pref_change_registrar_.Add( |
| 41 prefs::kArcLocationServiceEnabled, | 42 prefs::kArcLocationServiceEnabled, |
| 42 base::Bind(&ArcOptInPreferenceHandler::OnLocationServicePreferenceChanged, | 43 base::Bind(&ArcOptInPreferenceHandler::OnLocationServicePreferenceChanged, |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 56 | 57 |
| 57 void ArcOptInPreferenceHandler::OnBackupAndRestorePreferenceChanged() { | 58 void ArcOptInPreferenceHandler::OnBackupAndRestorePreferenceChanged() { |
| 58 SendBackupAndRestoreMode(); | 59 SendBackupAndRestoreMode(); |
| 59 } | 60 } |
| 60 | 61 |
| 61 void ArcOptInPreferenceHandler::OnLocationServicePreferenceChanged() { | 62 void ArcOptInPreferenceHandler::OnLocationServicePreferenceChanged() { |
| 62 SendLocationServicesMode(); | 63 SendLocationServicesMode(); |
| 63 } | 64 } |
| 64 | 65 |
| 65 void ArcOptInPreferenceHandler::SendMetricsMode() { | 66 void ArcOptInPreferenceHandler::SendMetricsMode() { |
| 66 observer_->OnMetricsModeChanged( | 67 if (g_browser_process->local_state()) { |
| 67 ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled(), | 68 observer_->OnMetricsModeChanged( |
| 68 IsMetricsReportingPolicyManaged()); | 69 ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled(), |
| 70 IsMetricsReportingPolicyManaged()); | |
| 71 } | |
| 69 } | 72 } |
| 70 | 73 |
| 71 void ArcOptInPreferenceHandler::SendBackupAndRestoreMode() { | 74 void ArcOptInPreferenceHandler::SendBackupAndRestoreMode() { |
| 72 observer_->OnBackupAndRestoreModeChanged( | 75 observer_->OnBackupAndRestoreModeChanged( |
| 73 pref_service_->GetBoolean(prefs::kArcBackupRestoreEnabled), | 76 pref_service_->GetBoolean(prefs::kArcBackupRestoreEnabled), |
| 74 pref_service_->IsManagedPreference(prefs::kArcBackupRestoreEnabled)); | 77 pref_service_->IsManagedPreference(prefs::kArcBackupRestoreEnabled)); |
| 75 } | 78 } |
| 76 | 79 |
| 77 void ArcOptInPreferenceHandler::SendLocationServicesMode() { | 80 void ArcOptInPreferenceHandler::SendLocationServicesMode() { |
| 78 observer_->OnLocationServicesModeChanged( | 81 observer_->OnLocationServicesModeChanged( |
| 79 pref_service_->GetBoolean(prefs::kArcLocationServiceEnabled), | 82 pref_service_->GetBoolean(prefs::kArcLocationServiceEnabled), |
| 80 pref_service_->IsManagedPreference(prefs::kArcLocationServiceEnabled)); | 83 pref_service_->IsManagedPreference(prefs::kArcLocationServiceEnabled)); |
| 81 } | 84 } |
| 82 | 85 |
| 83 void ArcOptInPreferenceHandler::EnableMetrics(bool is_enabled) { | 86 void ArcOptInPreferenceHandler::EnableMetrics(bool is_enabled) { |
| 84 ChangeMetricsReportingState(is_enabled); | 87 if (g_browser_process->local_state()) |
| 88 ChangeMetricsReportingState(is_enabled); | |
| 85 } | 89 } |
| 86 | 90 |
| 87 void ArcOptInPreferenceHandler::EnableBackupRestore(bool is_enabled) { | 91 void ArcOptInPreferenceHandler::EnableBackupRestore(bool is_enabled) { |
| 88 pref_service_->SetBoolean(prefs::kArcBackupRestoreEnabled, is_enabled); | 92 pref_service_->SetBoolean(prefs::kArcBackupRestoreEnabled, is_enabled); |
| 89 } | 93 } |
| 90 | 94 |
| 91 void ArcOptInPreferenceHandler::EnableLocationService(bool is_enabled) { | 95 void ArcOptInPreferenceHandler::EnableLocationService(bool is_enabled) { |
| 92 pref_service_->SetBoolean(prefs::kArcLocationServiceEnabled, is_enabled); | 96 pref_service_->SetBoolean(prefs::kArcLocationServiceEnabled, is_enabled); |
| 93 } | 97 } |
| 94 | 98 |
| 95 } // namespace arc | 99 } // namespace arc |
| OLD | NEW |