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_terms_of_service_oobe_negotiator
.h" | 5 #include "chrome/browser/chromeos/arc/optin/arc_terms_of_service_oobe_negotiator
.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_acto
r.h" | 8 #include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_view
.h" |
9 #include "chrome/browser/chromeos/login/ui/login_display_host.h" | 9 #include "chrome/browser/chromeos/login/ui/login_display_host.h" |
10 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" | 10 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" |
11 | 11 |
12 namespace arc { | 12 namespace arc { |
13 | 13 |
14 namespace { | 14 namespace { |
15 | 15 |
16 chromeos::ArcTermsOfServiceScreenActor* g_actor_for_testing = nullptr; | 16 chromeos::ArcTermsOfServiceScreenView* g_view_for_testing = nullptr; |
17 | 17 |
18 chromeos::ArcTermsOfServiceScreenActor* GetScreenActor() { | 18 chromeos::ArcTermsOfServiceScreenView* GetScreenView() { |
19 // Inject testing instance. | 19 // Inject testing instance. |
20 if (g_actor_for_testing) | 20 if (g_view_for_testing) |
21 return g_actor_for_testing; | 21 return g_view_for_testing; |
22 | 22 |
23 chromeos::LoginDisplayHost* host = chromeos::LoginDisplayHost::default_host(); | 23 chromeos::LoginDisplayHost* host = chromeos::LoginDisplayHost::default_host(); |
24 DCHECK(host); | 24 DCHECK(host); |
25 DCHECK(host->GetOobeUI()); | 25 DCHECK(host->GetOobeUI()); |
26 return host->GetOobeUI()->GetArcTermsOfServiceScreenActor(); | 26 return host->GetOobeUI()->GetArcTermsOfServiceScreenView(); |
27 } | 27 } |
28 | 28 |
29 } // namespace | 29 } // namespace |
30 | 30 |
31 // static | 31 // static |
32 void ArcTermsOfServiceOobeNegotiator::SetArcTermsOfServiceScreenActorForTesting( | 32 void ArcTermsOfServiceOobeNegotiator::SetArcTermsOfServiceScreenViewForTesting( |
33 chromeos::ArcTermsOfServiceScreenActor* actor) { | 33 chromeos::ArcTermsOfServiceScreenView* view) { |
34 g_actor_for_testing = actor; | 34 g_view_for_testing = view; |
35 } | 35 } |
36 | 36 |
37 ArcTermsOfServiceOobeNegotiator::ArcTermsOfServiceOobeNegotiator() = default; | 37 ArcTermsOfServiceOobeNegotiator::ArcTermsOfServiceOobeNegotiator() = default; |
38 | 38 |
39 ArcTermsOfServiceOobeNegotiator::~ArcTermsOfServiceOobeNegotiator() { | 39 ArcTermsOfServiceOobeNegotiator::~ArcTermsOfServiceOobeNegotiator() { |
40 DCHECK(!screen_actor_); | 40 DCHECK(!screen_view_); |
41 } | 41 } |
42 | 42 |
43 void ArcTermsOfServiceOobeNegotiator::StartNegotiationImpl() { | 43 void ArcTermsOfServiceOobeNegotiator::StartNegotiationImpl() { |
44 DCHECK(!screen_actor_); | 44 DCHECK(!screen_view_); |
45 screen_actor_ = GetScreenActor(); | 45 screen_view_ = GetScreenView(); |
46 DCHECK(screen_actor_); | 46 DCHECK(screen_view_); |
47 screen_actor_->AddObserver(this); | 47 screen_view_->AddObserver(this); |
48 } | 48 } |
49 | 49 |
50 void ArcTermsOfServiceOobeNegotiator::HandleTermsAccepted(bool accepted) { | 50 void ArcTermsOfServiceOobeNegotiator::HandleTermsAccepted(bool accepted) { |
51 DCHECK(screen_actor_); | 51 DCHECK(screen_view_); |
52 screen_actor_->RemoveObserver(this); | 52 screen_view_->RemoveObserver(this); |
53 screen_actor_ = nullptr; | 53 screen_view_ = nullptr; |
54 ReportResult(accepted); | 54 ReportResult(accepted); |
55 } | 55 } |
56 | 56 |
57 void ArcTermsOfServiceOobeNegotiator::OnSkip() { | 57 void ArcTermsOfServiceOobeNegotiator::OnSkip() { |
58 HandleTermsAccepted(false); | 58 HandleTermsAccepted(false); |
59 } | 59 } |
60 | 60 |
61 void ArcTermsOfServiceOobeNegotiator::OnAccept() { | 61 void ArcTermsOfServiceOobeNegotiator::OnAccept() { |
62 HandleTermsAccepted(true); | 62 HandleTermsAccepted(true); |
63 } | 63 } |
64 | 64 |
65 void ArcTermsOfServiceOobeNegotiator::OnActorDestroyed( | 65 void ArcTermsOfServiceOobeNegotiator::OnViewDestroyed( |
66 chromeos::ArcTermsOfServiceScreenActor* actor) { | 66 chromeos::ArcTermsOfServiceScreenView* view) { |
67 DCHECK_EQ(actor, screen_actor_); | 67 DCHECK_EQ(view, screen_view_); |
68 HandleTermsAccepted(false); | 68 HandleTermsAccepted(false); |
69 } | 69 } |
70 | 70 |
71 } // namespace arc | 71 } // namespace arc |
OLD | NEW |