| 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);
|
|
|