Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4365)

Unified Diff: chrome/browser/chromeos/login/screens/eula_screen.cc

Issue 755203002: Added usage of ScreenContext in EulaScreen. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed comments. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/screens/eula_screen.cc
diff --git a/chrome/browser/chromeos/login/screens/eula_screen.cc b/chrome/browser/chromeos/login/screens/eula_screen.cc
index d28d47b201ac43ff3e81f68d7edd878358e3cd9a..115d227f36c6f433a04604beb8fcb146315de1b9 100644
--- a/chrome/browser/chromeos/login/screens/eula_screen.cc
+++ b/chrome/browser/chromeos/login/screens/eula_screen.cc
@@ -8,6 +8,7 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/customization_document.h"
#include "chrome/browser/chromeos/login/screens/base_screen_delegate.h"
+#include "chrome/browser/chromeos/login/screens/eula_view.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chromeos/dbus/cryptohome_client.h"
#include "chromeos/dbus/dbus_method_call_status.h"
@@ -15,40 +16,51 @@
namespace chromeos {
+namespace {
+
+const char kContextKeyUsageStatsEnabled[] = "usageStatsEnabled";
+
+} // namespace
+
EulaScreen::EulaScreen(BaseScreenDelegate* base_screen_delegate,
Delegate* delegate,
- EulaScreenActor* actor)
- : BaseScreen(base_screen_delegate),
+ EulaView* view)
+ : EulaModel(base_screen_delegate),
delegate_(delegate),
- actor_(actor),
+ view_(view),
password_fetcher_(this) {
- DCHECK(actor_);
+ DCHECK(view_);
DCHECK(delegate_);
- if (actor_)
- actor_->SetDelegate(this);
+ if (view_)
+ view_->SetModel(this);
+
+ subscription_ = context_.AddKeyObserver(
+ kContextKeyUsageStatsEnabled,
+ base::Bind(&EulaScreen::OnUsageStatisticsReportingChanged,
+ base::Unretained(this)));
}
EulaScreen::~EulaScreen() {
- if (actor_)
- actor_->SetDelegate(NULL);
+ if (view_)
+ view_->SetModel(nullptr);
}
void EulaScreen::PrepareToShow() {
- if (actor_)
- actor_->PrepareToShow();
+ if (view_)
+ view_->PrepareToShow();
}
void EulaScreen::Show() {
// Command to own the TPM.
DBusThreadManager::Get()->GetCryptohomeClient()->TpmCanAttemptOwnership(
EmptyVoidDBusMethodCallback());
- if (actor_)
- actor_->Show();
+ if (view_)
+ view_->Show();
}
void EulaScreen::Hide() {
- if (actor_)
- actor_->Hide();
+ if (view_)
+ view_->Hide();
}
std::string EulaScreen::GetName() const {
@@ -73,35 +85,48 @@ GURL EulaScreen::GetOemEulaUrl() const {
return GURL();
}
-void EulaScreen::OnExit(bool accepted, bool usage_stats_enabled) {
- if (delegate_)
- delegate_->SetUsageStatisticsReporting(usage_stats_enabled);
- Finish(accepted ? BaseScreenDelegate::EULA_ACCEPTED
- : BaseScreenDelegate::EULA_BACK);
+void EulaScreen::OnAcceptButtonClicked() {
+ Finish(BaseScreenDelegate::EULA_ACCEPTED);
+}
+
+void EulaScreen::OnBackButtonClicked() {
+ Finish(BaseScreenDelegate::EULA_BACK);
}
void EulaScreen::InitiatePasswordFetch() {
if (tpm_password_.empty()) {
password_fetcher_.Fetch();
- // Will call actor after password has been fetched.
- } else if (actor_) {
- actor_->OnPasswordFetched(tpm_password_);
+ // Will call view after password has been fetched.
+ } else if (view_) {
+ view_->OnPasswordFetched(tpm_password_);
}
}
void EulaScreen::OnPasswordFetched(const std::string& tpm_password) {
tpm_password_ = tpm_password;
- if (actor_)
- actor_->OnPasswordFetched(tpm_password_);
+ if (view_)
+ view_->OnPasswordFetched(tpm_password_);
}
bool EulaScreen::IsUsageStatsEnabled() const {
return delegate_ && delegate_->GetUsageStatisticsReporting();
}
-void EulaScreen::OnActorDestroyed(EulaScreenActor* actor) {
- if (actor_ == actor)
- actor_ = NULL;
+void EulaScreen::OnViewDestroyed(EulaView* view) {
+ if (view_ == view)
+ view_ = NULL;
+}
+
+void EulaScreen::OnUsageStatisticsReportingChanged(
+ const ::login::ScreenContext::KeyType& key,
+ const base::Value& value) {
+ bool usage_stats_enabled = false;
+ if (!value.GetAsBoolean(&usage_stats_enabled)) {
+ LOG(ERROR) << "Wrong type for " << kContextKeyUsageStatsEnabled
+ << " context value";
+ } else if (delegate_) {
+ delegate_->SetUsageStatisticsReporting(usage_stats_enabled);
+ }
}
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698