| Index: chrome/browser/notifications/sync_notifier/synced_notification.h
|
| diff --git a/chrome/browser/notifications/sync_notifier/synced_notification.h b/chrome/browser/notifications/sync_notifier/synced_notification.h
|
| index 429ecc66e850647f8752e0ee80d46ca183de8b78..293d4f6d27bc99637ebefa8b30e30ceaa0971147 100644
|
| --- a/chrome/browser/notifications/sync_notifier/synced_notification.h
|
| +++ b/chrome/browser/notifications/sync_notifier/synced_notification.h
|
| @@ -33,7 +33,9 @@ class ChromeNotifierService;
|
|
|
| class SyncedNotification : public chrome::BitmapFetcherDelegate {
|
| public:
|
| - explicit SyncedNotification(const syncer::SyncData& sync_data);
|
| + SyncedNotification(const syncer::SyncData& sync_data,
|
| + ChromeNotifierService* notifier,
|
| + NotificationUIManager* notification_manager);
|
|
|
| virtual ~SyncedNotification();
|
|
|
| @@ -47,6 +49,38 @@ class SyncedNotification : public chrome::BitmapFetcherDelegate {
|
|
|
| void Update(const syncer::SyncData& sync_data);
|
|
|
| + // Display the notification in the notification center
|
| + void Show(Profile* profile);
|
| +
|
| + // This gets a pointer to the SyncedNotificationSpecifics part
|
| + // of the sync data.
|
| + sync_pb::EntitySpecifics GetEntitySpecifics() const;
|
| +
|
| + // Display the notification if it has the specified app_id_name.
|
| + void ShowAllForAppId(Profile* profile,
|
| + std::string app_id_name);
|
| +
|
| + // Remove the notification if it has the specified app_id_name.
|
| + void HideAllForAppId(std::string app_id_name);
|
| +
|
| + // Fill up the queue of bitmaps to fetch.
|
| + void QueueBitmapFetchJobs(ChromeNotifierService* notifier_service,
|
| + Profile* profile);
|
| +
|
| + // Start the bitmap fetching. When it is complete, the callback
|
| + // will call Show().
|
| + void StartBitmapFetch();
|
| +
|
| + // Check against an incoming notification, see if only the read state is
|
| + // different.
|
| + bool EqualsIgnoringReadState(const SyncedNotification& other) const;
|
| +
|
| + // Mark the notification as Read.
|
| + void NotificationHasBeenRead();
|
| +
|
| + // Mark a notification as Dismissed (deleted).
|
| + void NotificationHasBeenDismissed();
|
| +
|
| // Here are some helper functions to get individual data parts out of a
|
| // SyncedNotification.
|
| std::string GetTitle() const;
|
| @@ -74,51 +108,31 @@ class SyncedNotification : public chrome::BitmapFetcherDelegate {
|
| size_t GetButtonCount() const;
|
| std::string GetContainedNotificationTitle(int index) const;
|
| std::string GetContainedNotificationMessage(int index) const;
|
| - std::string GetSendingServiceId() const;
|
| const gfx::Image& GetAppIcon() const;
|
|
|
| // Use this to prevent toasting a notification.
|
| - void SetToastState(bool toast_state);
|
| -
|
| - bool EqualsIgnoringReadState(const SyncedNotification& other) const;
|
| -
|
| - void NotificationHasBeenRead();
|
| - void NotificationHasBeenDismissed();
|
| -
|
| - // Fill up the queue of bitmaps to fetch.
|
| - void QueueBitmapFetchJobs(NotificationUIManager* notification_manager,
|
| - ChromeNotifierService* notifier_service,
|
| - Profile* profile);
|
| -
|
| - // Start the bitmap fetching. When it is complete, the callback
|
| - // will call Show().
|
| - void StartBitmapFetch();
|
| -
|
| - // Display the notification in the notification center
|
| - void Show(NotificationUIManager* notification_manager,
|
| - ChromeNotifierService* notifier_service,
|
| - Profile* profile);
|
| -
|
| - // This gets a pointer to the SyncedNotificationSpecifics part
|
| - // of the sync data.
|
| - sync_pb::EntitySpecifics GetEntitySpecifics() const;
|
| + void set_toast_state(bool toast_state);
|
|
|
| // Write a notification to the console log.
|
| void LogNotification();
|
|
|
| private:
|
| - // Helper function to mark a notification as read or dismissed.
|
| - void SetReadState(const ReadState& read_state);
|
| -
|
| // Method inherited from BitmapFetcher delegate.
|
| virtual void OnFetchComplete(const GURL url, const SkBitmap* bitmap) OVERRIDE;
|
|
|
| // If this bitmap has a valid GURL, create a fetcher for it.
|
| - void AddBitmapToFetchQueue(const GURL& gurl);
|
| + void CreateBitmapFetcher(const GURL& gurl);
|
|
|
| // Check to see if we have responses for all the bitmaps we need.
|
| bool AreAllBitmapsFetched();
|
|
|
| + // Helper function to mark a notification as read or dismissed.
|
| + void SetReadState(const ReadState& read_state);
|
| +
|
| + void SetNotifierServiceForTest(ChromeNotifierService* notifier) {
|
| + notifier_service_ = notifier;
|
| + }
|
| +
|
| sync_pb::SyncedNotificationSpecifics specifics_;
|
| NotificationUIManager* notification_manager_;
|
| ChromeNotifierService* notifier_service_;
|
| @@ -134,13 +148,15 @@ class SyncedNotification : public chrome::BitmapFetcherDelegate {
|
| bool image_bitmap_fetch_pending_;
|
| std::vector<bool> button_bitmaps_fetch_pending_;
|
|
|
| -
|
| friend class SyncedNotificationTest;
|
|
|
| - FRIEND_TEST_ALL_PREFIXES(SyncedNotificationTest, AddBitmapToFetchQueueTest);
|
| + FRIEND_TEST_ALL_PREFIXES(SyncedNotificationTest, CreateBitmapFetcherTest);
|
| FRIEND_TEST_ALL_PREFIXES(SyncedNotificationTest, OnFetchCompleteTest);
|
| FRIEND_TEST_ALL_PREFIXES(SyncedNotificationTest, QueueBitmapFetchJobsTest);
|
| FRIEND_TEST_ALL_PREFIXES(SyncedNotificationTest, EmptyBitmapTest);
|
| + FRIEND_TEST_ALL_PREFIXES(SyncedNotificationTest, ShowIfNewlyEnabledTest);
|
| + FRIEND_TEST_ALL_PREFIXES(SyncedNotificationTest, HideIfNewlyRemovedTest);
|
| + FRIEND_TEST_ALL_PREFIXES(ChromeNotifierServiceTest, SetAddedAppIdsTest);
|
|
|
| DISALLOW_COPY_AND_ASSIGN(SyncedNotification);
|
| };
|
|
|