| Index: chrome/browser/chromeos/login/screens/arc_terms_of_service_screen.cc
|
| diff --git a/chrome/browser/chromeos/login/screens/arc_terms_of_service_screen.cc b/chrome/browser/chromeos/login/screens/arc_terms_of_service_screen.cc
|
| index 1da3072521b8c3086275456054483620c1aaf631..2c8b448ef2454ac6057379d307cfa3b5e7f6b301 100644
|
| --- a/chrome/browser/chromeos/login/screens/arc_terms_of_service_screen.cc
|
| +++ b/chrome/browser/chromeos/login/screens/arc_terms_of_service_screen.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen.h"
|
|
|
| +#include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_actor.h"
|
| #include "chrome/browser/chromeos/login/screens/base_screen_delegate.h"
|
| #include "chrome/browser/chromeos/login/wizard_controller.h"
|
| #include "chrome/browser/metrics/metrics_reporting_state.h"
|
| @@ -20,12 +21,12 @@ ArcTermsOfServiceScreen::ArcTermsOfServiceScreen(
|
| : BaseScreen(base_screen_delegate), actor_(actor) {
|
| DCHECK(actor_);
|
| if (actor_)
|
| - actor_->SetDelegate(this);
|
| + actor_->AddObserver(this);
|
| }
|
|
|
| ArcTermsOfServiceScreen::~ArcTermsOfServiceScreen() {
|
| if (actor_)
|
| - actor_->SetDelegate(nullptr);
|
| + actor_->RemoveObserver(this);
|
| }
|
|
|
| void ArcTermsOfServiceScreen::Show() {
|
| @@ -56,7 +57,8 @@ void ArcTermsOfServiceScreen::OnAccept() {
|
| void ArcTermsOfServiceScreen::ApplyTerms(bool accepted) {
|
| Profile* profile = ProfileManager::GetActiveUserProfile();
|
| profile->GetPrefs()->SetBoolean(prefs::kArcTermsAccepted, accepted);
|
| - profile->GetPrefs()->SetBoolean(prefs::kArcEnabled, accepted);
|
| + if (!profile->GetPrefs()->IsManagedPreference(prefs::kArcEnabled))
|
| + profile->GetPrefs()->SetBoolean(prefs::kArcEnabled, accepted);
|
|
|
| Finish(BaseScreenDelegate::ARC_TERMS_OF_SERVICE_FINISHED);
|
| }
|
|
|