| 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 #ifndef CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATOR_H
_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATOR_H
_ |
| 6 #define CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATOR_H
_ | 6 #define CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATOR_H
_ |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "chrome/browser/chromeos/arc/optin/arc_terms_of_service_negotiator.h" | 9 #include "chrome/browser/chromeos/arc/optin/arc_terms_of_service_negotiator.h" |
| 10 #include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_acto
r_observer.h" | 10 #include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_view
_observer.h" |
| 11 | 11 |
| 12 namespace chromeos { | 12 namespace chromeos { |
| 13 class ArcTermsOfServiceScreenActor; | 13 class ArcTermsOfServiceScreenView; |
| 14 } | 14 } |
| 15 | 15 |
| 16 namespace arc { | 16 namespace arc { |
| 17 | 17 |
| 18 // Handles the Terms-of-service agreement user action via OOBE OptIn UI. | 18 // Handles the Terms-of-service agreement user action via OOBE OptIn UI. |
| 19 class ArcTermsOfServiceOobeNegotiator | 19 class ArcTermsOfServiceOobeNegotiator |
| 20 : public ArcTermsOfServiceNegotiator, | 20 : public ArcTermsOfServiceNegotiator, |
| 21 public chromeos::ArcTermsOfServiceScreenActorObserver { | 21 public chromeos::ArcTermsOfServiceScreenViewObserver { |
| 22 public: | 22 public: |
| 23 ArcTermsOfServiceOobeNegotiator(); | 23 ArcTermsOfServiceOobeNegotiator(); |
| 24 ~ArcTermsOfServiceOobeNegotiator() override; | 24 ~ArcTermsOfServiceOobeNegotiator() override; |
| 25 | 25 |
| 26 // Injects ARC OOBE screen handler in unit tests, where OOBE UI is not | 26 // Injects ARC OOBE screen handler in unit tests, where OOBE UI is not |
| 27 // available. | 27 // available. |
| 28 static void SetArcTermsOfServiceScreenActorForTesting( | 28 static void SetArcTermsOfServiceScreenViewForTesting( |
| 29 chromeos::ArcTermsOfServiceScreenActor* actor); | 29 chromeos::ArcTermsOfServiceScreenView* view); |
| 30 | 30 |
| 31 private: | 31 private: |
| 32 // Helper to handle callbacks from | 32 // Helper to handle callbacks from |
| 33 // chromeos::ArcTermsOfServiceScreenActorObserver. It removes observer from | 33 // chromeos::ArcTermsOfServiceScreenViewObserver. It removes observer from |
| 34 // |screen_actor_|, resets it, and then dispatches |accepted|. It is expected | 34 // |screen_view_|, resets it, and then dispatches |accepted|. It is expected |
| 35 // that this method is called exactly once for each instance of | 35 // that this method is called exactly once for each instance of |
| 36 // ArcTermsOfServiceOobeNegotiator. | 36 // ArcTermsOfServiceOobeNegotiator. |
| 37 void HandleTermsAccepted(bool accepted); | 37 void HandleTermsAccepted(bool accepted); |
| 38 | 38 |
| 39 // chromeos::ArcTermsOfServiceScreenActorObserver: | 39 // chromeos::ArcTermsOfServiceScreenViewObserver: |
| 40 void OnSkip() override; | 40 void OnSkip() override; |
| 41 void OnAccept() override; | 41 void OnAccept() override; |
| 42 void OnActorDestroyed(chromeos::ArcTermsOfServiceScreenActor* actor) override; | 42 void OnViewDestroyed(chromeos::ArcTermsOfServiceScreenView* view) override; |
| 43 | 43 |
| 44 // ArcTermsOfServiceNegotiator: | 44 // ArcTermsOfServiceNegotiator: |
| 45 void StartNegotiationImpl() override; | 45 void StartNegotiationImpl() override; |
| 46 | 46 |
| 47 // Unowned pointer. If a user signs out while ARC OOBE opt-in is active, | 47 // Unowned pointer. If a user signs out while ARC OOBE opt-in is active, |
| 48 // LoginDisplayHost is detached first then OnActorDestroyed is called. | 48 // LoginDisplayHost is detached first then OnViewDestroyed is called. |
| 49 // It means, in OnSkip() and OnAccept(), the Actor needs to be obtained via | 49 // It means, in OnSkip() and OnAccept(), the View needs to be obtained via |
| 50 // LoginDisplayHost, but in OnActorDestroyed(), the argument needs to be used. | 50 // LoginDisplayHost, but in OnViewDestroyed(), the argument needs to be used. |
| 51 // In order to use the same way to access the Actor, remember the pointer in | 51 // In order to use the same way to access the View, remember the pointer in |
| 52 // StartNegotiationImpl(), and reset in HandleTermsAccepted(). | 52 // StartNegotiationImpl(), and reset in HandleTermsAccepted(). |
| 53 chromeos::ArcTermsOfServiceScreenActor* screen_actor_ = nullptr; | 53 chromeos::ArcTermsOfServiceScreenView* screen_view_ = nullptr; |
| 54 | 54 |
| 55 DISALLOW_COPY_AND_ASSIGN(ArcTermsOfServiceOobeNegotiator); | 55 DISALLOW_COPY_AND_ASSIGN(ArcTermsOfServiceOobeNegotiator); |
| 56 }; | 56 }; |
| 57 | 57 |
| 58 } // namespace arc | 58 } // namespace arc |
| 59 | 59 |
| 60 #endif // CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATO
R_H_ | 60 #endif // CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATO
R_H_ |
| OLD | NEW |