#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
+#include "chrome/browser/chromeos/camera_presence_notifier.h"
+#include "chrome/browser/chromeos/login/screens/base_screen.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/chromeos/login/user_image_sync_observer.h"
+#include "chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.h"
#include "chrome/browser/image_decoder.h"
+#include "components/user_manager/user.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
namespace chromeos {
-class UserImageScreen: public WizardScreen,
- public UserImageScreenActor::Delegate,
- public ImageDecoder::Delegate,
- public content::NotificationObserver,
- public UserImageSyncObserver::Observer {
+class UserImageManager;
+class ScreenManager;
+
+class UserImageScreen : public BaseScreen,
+ public UserImageScreenActor::Delegate,
+ public ImageDecoder::Delegate,
+ public content::NotificationObserver,
+ public UserImageSyncObserver::Observer,
+ public CameraPresenceNotifier::Observer {
public:
- UserImageScreen(ScreenObserver* screen_observer,
+ UserImageScreen(BaseScreenDelegate* base_screen_delegate,
UserImageScreenActor* actor);
virtual ~UserImageScreen();
- // Indicates whether profile picture is enabled for given user.
- void SetProfilePictureEnabled(bool support_profile_picture);
- // Sets |user_id| of user that would have picture updated.
- void SetUserID(const std::string& user_id);
+ static UserImageScreen* Get(ScreenManager* manager);
- // WizardScreen implementation:
- virtual void PrepareToShow() OVERRIDE;
- virtual void Show() OVERRIDE;
- virtual void Hide() OVERRIDE;
- virtual std::string GetName() const OVERRIDE;
+ // BaseScreen implementation:
+ virtual void PrepareToShow() override;
+ virtual void Show() override;
+ virtual void Hide() override;
+ virtual std::string GetName() const override;
// UserImageScreenActor::Delegate implementation:
- virtual void OnScreenReady() OVERRIDE;
- virtual void OnPhotoTaken(const std::string& raw_data) OVERRIDE;
+ virtual void OnScreenReady() override;
+ virtual void OnPhotoTaken(const std::string& raw_data) override;
virtual void OnImageSelected(const std::string& image_url,
const std::string& image_type,
- bool is_user_selection) OVERRIDE;
- virtual void OnImageAccepted() OVERRIDE;
- virtual void OnActorDestroyed(UserImageScreenActor* actor) OVERRIDE;
+ bool is_user_selection) 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;
+ 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;
+ const content::NotificationDetails& details) override;
// ImageDecoder::Delegate implementation:
virtual void OnImageDecoded(const ImageDecoder* decoder,
- const SkBitmap& decoded_image) OVERRIDE;
- virtual void OnDecodeImageFailed(const ImageDecoder* decoder) OVERRIDE;
- virtual void OnCameraPresenceCheckDone(bool is_camera_present) OVERRIDE;
+ const SkBitmap& decoded_image) override;
+ virtual void OnDecodeImageFailed(const ImageDecoder* decoder) override;
+
+ // CameraPresenceNotifier::Observer implementation:
+ virtual void OnCameraPresenceCheckDone(bool is_camera_present) override;
// UserImageSyncObserver::Observer implementation:
- virtual void OnInitialSync(bool local_image_updated) OVERRIDE;
+ virtual void OnInitialSync(bool local_image_updated) override;
bool user_selected_image() const { return user_has_selected_image_; }
const base::Value* current);
// Returns current user.
- const User* GetUser();
+ const user_manager::User* GetUser();
// Returns UserImageManager for the current user.
UserImageManager* GetUserImageManager();
// 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_;
-
// Timer used for waiting for user image sync.
scoped_ptr<base::Timer> sync_timer_;