| Index: chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
|
| diff --git a/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
|
| index a0916534bfeef859cc9cd542a1cefc330c2add8c..f64b01d3e8f2b573ff6b0fb235879a1ca41de42a 100644
|
| --- a/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
|
| +++ b/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/i18n/timezone.h"
|
| #include "chrome/browser/chromeos/arc/optin/arc_optin_preference_handler.h"
|
| +#include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_actor_observer.h"
|
| #include "chrome/browser/chromeos/profiles/profile_helper.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| @@ -30,8 +31,8 @@ ArcTermsOfServiceScreenHandler::ArcTermsOfServiceScreenHandler()
|
| ArcTermsOfServiceScreenHandler::~ArcTermsOfServiceScreenHandler() {
|
| system::TimezoneSettings::GetInstance()->RemoveObserver(this);
|
|
|
| - if (screen_)
|
| - screen_->OnActorDestroyed(this);
|
| + for (auto& observer : observer_list_)
|
| + observer.OnActorDestroyed(this);
|
| }
|
|
|
| void ArcTermsOfServiceScreenHandler::RegisterMessages() {
|
| @@ -113,8 +114,14 @@ void ArcTermsOfServiceScreenHandler::OnLocationServicesModeChanged(
|
| CallJS("setLocationServicesMode", enabled, managed);
|
| }
|
|
|
| -void ArcTermsOfServiceScreenHandler::SetDelegate(Delegate* screen) {
|
| - screen_ = screen;
|
| +void ArcTermsOfServiceScreenHandler::AddObserver(
|
| + ArcTermsOfServiceScreenActorObserver* observer) {
|
| + observer_list_.AddObserver(observer);
|
| +}
|
| +
|
| +void ArcTermsOfServiceScreenHandler::RemoveObserver(
|
| + ArcTermsOfServiceScreenActorObserver* observer) {
|
| + observer_list_.RemoveObserver(observer);
|
| }
|
|
|
| void ArcTermsOfServiceScreenHandler::Show() {
|
| @@ -153,18 +160,17 @@ void ArcTermsOfServiceScreenHandler::DoShow() {
|
| }
|
|
|
| void ArcTermsOfServiceScreenHandler::HandleSkip() {
|
| - if (screen_)
|
| - screen_->OnSkip();
|
| + for (auto& observer : observer_list_)
|
| + observer.OnSkip();
|
| }
|
|
|
| void ArcTermsOfServiceScreenHandler::HandleAccept(
|
| bool enable_backup_restore,
|
| bool enable_location_services) {
|
| - if (screen_) {
|
| - pref_handler_->EnableBackupRestore(enable_backup_restore);
|
| - pref_handler_->EnableLocationService(enable_location_services);
|
| - screen_->OnAccept();
|
| - }
|
| + pref_handler_->EnableBackupRestore(enable_backup_restore);
|
| + pref_handler_->EnableLocationService(enable_location_services);
|
| + for (auto& observer : observer_list_)
|
| + observer.OnAccept();
|
| }
|
|
|
| } // namespace chromeos
|
|
|