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

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

Issue 2684883002: cros: Fold UserImageModel into UserImageScreen (Closed)
Patch Set: Address comments Created 3 years, 10 months 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/user_image_screen.cc
diff --git a/chrome/browser/chromeos/login/screens/user_image_screen.cc b/chrome/browser/chromeos/login/screens/user_image_screen.cc
index 73e22029e5f41b17836e0ce28f60344d4d0f0a5f..d69278dea482f826d73ed4ac001312f6936fd6b2 100644
--- a/chrome/browser/chromeos/login/screens/user_image_screen.cc
+++ b/chrome/browser/chromeos/login/screens/user_image_screen.cc
@@ -48,6 +48,12 @@ namespace chromeos {
namespace {
+constexpr const char kContextKeyIsCameraPresent[] = "isCameraPresent";
+constexpr const char kContextKeyProfilePictureDataURL[] =
+ "profilePictureDataURL";
+constexpr const char kContextKeySelectedImageURL[] = "selectedImageURL";
+constexpr const char kContextKeyHasGaiaAccount[] = "hasGaiaAccount";
+
// Time histogram suffix for profile image download.
const char kProfileDownloadReason[] = "OOBE";
@@ -65,14 +71,10 @@ UserImageScreen* UserImageScreen::Get(ScreenManager* manager) {
UserImageScreen::UserImageScreen(BaseScreenDelegate* base_screen_delegate,
UserImageView* view)
- : UserImageModel(base_screen_delegate),
- view_(view),
- accept_photo_after_decoding_(false),
- selected_image_(user_manager::User::USER_IMAGE_INVALID),
- is_screen_ready_(false),
- user_has_selected_image_(false) {
+ : BaseScreen(base_screen_delegate, OobeScreen::SCREEN_USER_IMAGE_PICKER),
+ view_(view) {
if (view_)
- view_->Bind(*this);
+ view_->Bind(this);
user_manager::UserManager::Get()->AddObserver(this);
GetContextEditor().SetString(kContextKeyProfilePictureDataURL, std::string());
}
@@ -97,64 +99,6 @@ void UserImageScreen::OnPhotoTaken(const std::string& raw_data) {
ImageDecoder::Start(this, raw_data);
}
-void UserImageScreen::OnCameraPresenceCheckDone(bool is_camera_present) {
- GetContextEditor().SetBoolean(kContextKeyIsCameraPresent, is_camera_present);
-}
-
-void UserImageScreen::HideCurtain() {
- // Skip user image selection for ephemeral users.
- if (user_manager::UserManager::Get()->IsUserNonCryptohomeDataEphemeral(
- GetUser()->GetAccountId())) {
- ExitScreen();
- }
- if (view_)
- view_->HideCurtain();
-}
-
-void UserImageScreen::OnImageDecoded(const SkBitmap& decoded_image) {
- user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image);
- if (accept_photo_after_decoding_)
- OnImageAccepted();
-}
-
-void UserImageScreen::OnDecodeImageFailed() {
- NOTREACHED() << "Failed to decode PNG image from WebUI";
-}
-
-void UserImageScreen::OnInitialSync(bool local_image_updated) {
- DCHECK(sync_timer_);
- ReportSyncResult(SyncResult::SUCCEEDED);
- if (!local_image_updated) {
- sync_timer_.reset();
- GetSyncObserver()->RemoveObserver(this);
- if (is_screen_ready_)
- HideCurtain();
- return;
- }
- ExitScreen();
-}
-
-void UserImageScreen::OnSyncTimeout() {
- ReportSyncResult(SyncResult::TIMED_OUT);
- sync_timer_.reset();
- GetSyncObserver()->RemoveObserver(this);
- if (is_screen_ready_)
- HideCurtain();
-}
-
-bool UserImageScreen::IsWaitingForSync() const {
- return sync_timer_.get() && sync_timer_->IsRunning();
-}
-
-void UserImageScreen::OnUserImagePolicyChanged(const base::Value* previous,
- const base::Value* current) {
- if (current) {
- base::ThreadTaskRunnerHandle::Get()->DeleteSoon(
- FROM_HERE, policy_registrar_.release());
- ExitScreen();
- }
-}
-
void UserImageScreen::OnImageSelected(const std::string& image_type,
const std::string& image_url,
bool is_user_selection) {
@@ -209,17 +153,9 @@ void UserImageScreen::OnImageAccepted() {
ExitScreen();
}
-const user_manager::User* UserImageScreen::GetUser() {
- return user_manager::UserManager::Get()->GetActiveUser();
-}
-
-UserImageManager* UserImageScreen::GetUserImageManager() {
- return ChromeUserManager::Get()->GetUserImageManager(
- GetUser()->GetAccountId());
-}
-
-UserImageSyncObserver* UserImageScreen::GetSyncObserver() {
- return GetUserImageManager()->GetSyncObserver();
+void UserImageScreen::OnViewDestroyed(UserImageView* view) {
+ if (view_ == view)
+ view_ = nullptr;
}
void UserImageScreen::Show() {
@@ -301,9 +237,18 @@ void UserImageScreen::Hide() {
view_->Hide();
}
-void UserImageScreen::OnViewDestroyed(UserImageView* view) {
- if (view_ == view)
- view_ = nullptr;
+void UserImageScreen::OnCameraPresenceCheckDone(bool is_camera_present) {
+ GetContextEditor().SetBoolean(kContextKeyIsCameraPresent, is_camera_present);
+}
+
+void UserImageScreen::OnImageDecoded(const SkBitmap& decoded_image) {
+ user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image);
+ if (accept_photo_after_decoding_)
+ OnImageAccepted();
+}
+
+void UserImageScreen::OnDecodeImageFailed() {
+ NOTREACHED() << "Failed to decode PNG image from WebUI";
}
void UserImageScreen::OnUserImageChanged(const user_manager::User& user) {
@@ -327,6 +272,63 @@ void UserImageScreen::OnUserProfileImageUpdated(
webui::GetBitmapDataUrl(*profile_image.bitmap()));
}
+void UserImageScreen::OnInitialSync(bool local_image_updated) {
+ DCHECK(sync_timer_);
+ ReportSyncResult(SyncResult::SUCCEEDED);
+ if (!local_image_updated) {
+ sync_timer_.reset();
+ GetSyncObserver()->RemoveObserver(this);
+ if (is_screen_ready_)
+ HideCurtain();
+ return;
+ }
+ ExitScreen();
+}
+
+void UserImageScreen::OnSyncTimeout() {
+ ReportSyncResult(SyncResult::TIMED_OUT);
+ sync_timer_.reset();
+ GetSyncObserver()->RemoveObserver(this);
+ if (is_screen_ready_)
+ HideCurtain();
+}
+
+bool UserImageScreen::IsWaitingForSync() const {
+ return sync_timer_.get() && sync_timer_->IsRunning();
+}
+
+void UserImageScreen::OnUserImagePolicyChanged(const base::Value* previous,
+ const base::Value* current) {
+ if (current) {
+ base::ThreadTaskRunnerHandle::Get()->DeleteSoon(
+ FROM_HERE, policy_registrar_.release());
+ ExitScreen();
+ }
+}
+
+const user_manager::User* UserImageScreen::GetUser() {
+ return user_manager::UserManager::Get()->GetActiveUser();
+}
+
+UserImageManager* UserImageScreen::GetUserImageManager() {
+ return ChromeUserManager::Get()->GetUserImageManager(
+ GetUser()->GetAccountId());
+}
+
+UserImageSyncObserver* UserImageScreen::GetSyncObserver() {
+ return GetUserImageManager()->GetSyncObserver();
+}
+
+void UserImageScreen::HideCurtain() {
+ // Skip user image selection for ephemeral users.
+ if (user_manager::UserManager::Get()->IsUserNonCryptohomeDataEphemeral(
+ GetUser()->GetAccountId())) {
+ ExitScreen();
+ }
+ if (view_)
+ view_->HideCurtain();
+}
+
void UserImageScreen::ExitScreen() {
policy_registrar_.reset();
sync_timer_.reset();
« no previous file with comments | « chrome/browser/chromeos/login/screens/user_image_screen.h ('k') | chrome/browser/chromeos/login/screens/user_image_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698