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

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

Issue 14063017: Move logic in UserImageScreen from UserImageScreenHandler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge Created 7 years, 8 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.h
diff --git a/chrome/browser/chromeos/login/screens/user_image_screen.h b/chrome/browser/chromeos/login/screens/user_image_screen.h
index 1d364953af48e89dbcb823a4bfdb131d46b7f22b..28c61df9bed7e305e66c4308bbb2028d4b6a1e1b 100644
--- a/chrome/browser/chromeos/login/screens/user_image_screen.h
+++ b/chrome/browser/chromeos/login/screens/user_image_screen.h
@@ -6,9 +6,11 @@
#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_USER_IMAGE_SCREEN_H_
#include "base/compiler_specific.h"
+#include "base/memory/weak_ptr.h"
#include "chrome/browser/chromeos/login/screens/user_image_screen_actor.h"
#include "chrome/browser/chromeos/login/screens/wizard_screen.h"
#include "chrome/browser/chromeos/login/user.h"
+#include "chrome/browser/image_decoder.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
@@ -16,6 +18,7 @@ namespace chromeos {
class UserImageScreen: public WizardScreen,
public UserImageScreenActor::Delegate,
+ public ImageDecoder::Delegate,
public content::NotificationObserver {
public:
UserImageScreen(ScreenObserver* screen_observer,
@@ -34,25 +37,62 @@ class UserImageScreen: public WizardScreen,
virtual std::string GetName() const OVERRIDE;
// UserImageScreenActor::Delegate implementation:
- virtual void OnPhotoTaken(const gfx::ImageSkia& image) OVERRIDE;
- virtual void OnProfileImageSelected() OVERRIDE;
- virtual void OnDefaultImageSelected(int index) OVERRIDE;
+ virtual void CheckCameraPresence() OVERRIDE;
+ virtual void OnPhotoTaken(const std::string& raw_data) OVERRIDE;
+ virtual void OnImageSelected(const std::string& image_url,
+ const std::string& image_type) OVERRIDE;
+ virtual void OnImageAccepted() OVERRIDE;
virtual void OnActorDestroyed(UserImageScreenActor* actor) OVERRIDE;
+ virtual bool profile_picture_absent() OVERRIDE;
+ virtual int selected_image() OVERRIDE;
+ virtual std::string profile_picture_data_url() OVERRIDE;
+
// content::NotificationObserver implementation:
virtual void Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
+ // Overriden from ImageDecoder::Delegate:
+ virtual void OnImageDecoded(const ImageDecoder* decoder,
+ const SkBitmap& decoded_image) OVERRIDE;
+ virtual void OnDecodeImageFailed(const ImageDecoder* decoder) OVERRIDE;
+
private:
const User* GetUser();
+ // Called when the camera presence check has been completed.
+ void OnCameraPresenceCheckDone();
+
content::NotificationRegistrar registrar_;
UserImageScreenActor* actor_;
+ base::WeakPtrFactory<UserImageScreen> weak_factory_;
+
+ // Last ImageDecoder instance used to decode an image blob received by
+ // HandlePhotoTaken.
+ scoped_refptr<ImageDecoder> image_decoder_;
+
+ // Last user photo, if taken.
+ gfx::ImageSkia user_photo_;
+
+ // If |true|, decoded photo should be immediately accepeted (i.e., both
+ // HandleTakePhoto and HandleImageAccepted have already been called but we're
+ // still waiting for photo image decoding to finish.
+ bool accept_photo_after_decoding_;
+
+ // Index of the selected user image.
+ int selected_image_;
+
bool profile_picture_enabled_;
+ // Encoded profile picture.
+ std::string profile_picture_data_url_;
+
+ // True if user has no custom profile picture.
+ bool profile_picture_absent_;
+
std::string user_id_;
DISALLOW_COPY_AND_ASSIGN(UserImageScreen);

Powered by Google App Engine
This is Rietveld 408576698