Index: chrome/browser/chromeos/login/screens/voice_interaction_value_prop_screen.cc |
diff --git a/chrome/browser/chromeos/login/screens/voice_interaction_value_prop_screen.cc b/chrome/browser/chromeos/login/screens/voice_interaction_value_prop_screen.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c9a7fc397d2bd568bd74a63f86ef6d01932d082d |
--- /dev/null |
+++ b/chrome/browser/chromeos/login/screens/voice_interaction_value_prop_screen.cc |
@@ -0,0 +1,76 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/chromeos/login/screens/voice_interaction_value_prop_screen.h" |
+ |
+#include "chrome/browser/chromeos/login/screens/base_screen_delegate.h" |
+#include "chrome/browser/chromeos/login/screens/voice_interaction_value_prop_screen_view.h" |
+#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/profiles/profile_manager.h" |
+#include "chrome/common/pref_names.h" |
+#include "components/prefs/pref_service.h" |
+ |
+namespace chromeos { |
+namespace { |
+ |
+constexpr const char kUserActionNoThanksPressed[] = "no-thanks-pressed"; |
+constexpr const char kUserActionContinuePressed[] = "continue-pressed"; |
+ |
+} // namespace |
+ |
+VoiceInteractionValuePropScreen::VoiceInteractionValuePropScreen( |
+ BaseScreenDelegate* base_screen_delegate, |
+ VoiceInteractionValuePropScreenView* view) |
+ : BaseScreen(base_screen_delegate, |
+ OobeScreen::SCREEN_VOICE_INTERACTION_VALUE_PROP), |
+ view_(view) { |
+ DCHECK(view_); |
+ if (view_) |
+ view_->Bind(this); |
+} |
+ |
+VoiceInteractionValuePropScreen::~VoiceInteractionValuePropScreen() { |
+ if (view_) |
+ view_->Unbind(); |
+} |
+ |
+void VoiceInteractionValuePropScreen::Show() { |
+ if (!view_) |
+ return; |
+ |
+ view_->Show(); |
+} |
+ |
+void VoiceInteractionValuePropScreen::Hide() { |
+ if (view_) |
+ view_->Hide(); |
+} |
+ |
+void VoiceInteractionValuePropScreen::OnViewDestroyed( |
+ VoiceInteractionValuePropScreenView* view) { |
+ if (view_ == view) |
+ view_ = nullptr; |
+} |
+ |
+void VoiceInteractionValuePropScreen::OnUserAction( |
+ const std::string& action_id) { |
+ if (action_id == kUserActionNoThanksPressed) |
+ OnNoThanksPressed(); |
+ else if (action_id == kUserActionContinuePressed) |
+ OnContinuePressed(); |
+ else |
+ BaseScreen::OnUserAction(action_id); |
+} |
+ |
+void VoiceInteractionValuePropScreen::OnNoThanksPressed() { |
+ Finish(ScreenExitCode::VOICE_INTERACTION_VALUE_PROP_SKIPPED); |
+} |
+ |
+void VoiceInteractionValuePropScreen::OnContinuePressed() { |
+ ProfileManager::GetActiveUserProfile()->GetPrefs()->SetBoolean( |
+ prefs::kArcVoiceInteractionValuePropAccepted, true); |
+ Finish(ScreenExitCode::VOICE_INTERACTION_VALUE_PROP_ACCEPTED); |
+} |
+ |
+} // namespace chromeos |