Chromium Code Reviews| Index: chrome/browser/google_apis/drive_notification_manager.h | 
| diff --git a/chrome/browser/google_apis/drive_notification_manager.h b/chrome/browser/google_apis/drive_notification_manager.h | 
| index 16905db5b7c885977779a80d3e3d922ef1459972..1f2ee58f324656584910d6515a0bebe9b8500e0f 100644 | 
| --- a/chrome/browser/google_apis/drive_notification_manager.h | 
| +++ b/chrome/browser/google_apis/drive_notification_manager.h | 
| @@ -5,24 +5,26 @@ | 
| #ifndef CHROME_BROWSER_GOOGLE_APIS_DRIVE_NOTIFICATION_MANAGER_H_ | 
| #define CHROME_BROWSER_GOOGLE_APIS_DRIVE_NOTIFICATION_MANAGER_H_ | 
| +#include "base/memory/weak_ptr.h" | 
| #include "base/observer_list.h" | 
| +#include "base/timer.h" | 
| #include "chrome/browser/google_apis/drive_notification_observer.h" | 
| #include "chrome/browser/profiles/profile_keyed_service.h" | 
| #include "sync/notifier/invalidation_handler.h" | 
| class Profile; | 
| +class ProfileSyncService; | 
| namespace google_apis { | 
| // Informs observers when they should check Google Drive for updates. | 
| // Conditions under which updates should be searched: | 
| // 1. XMPP invalidation is received from Google Drive. | 
| -// TODO(calvinlo): Implement public syncer::InvalidationHandler interface. | 
| // 2. Polling timer counts down. | 
| -// TODO(calvinlo): Also add in backup timer. | 
| class DriveNotificationManager | 
| : public ProfileKeyedService, | 
| - public syncer::InvalidationHandler { | 
| + public syncer::InvalidationHandler, | 
| + public base::SupportsWeakPtr<DriveNotificationManager> { | 
| 
 
satorux1
2013/04/19 04:12:13
Please use WeakPtrFactory instead in favor of less
 
calvinlo
2013/04/19 06:15:09
Removed. 
Thanks for the tip. Actually, after my
 
 | 
| public: | 
| explicit DriveNotificationManager(Profile* profile); | 
| virtual ~DriveNotificationManager(); | 
| @@ -38,16 +40,19 @@ class DriveNotificationManager | 
| void AddObserver(DriveNotificationObserver* observer); | 
| void RemoveObserver(DriveNotificationObserver* observer); | 
| + bool IsPushNotificationEnabled(); | 
| 
 
satorux1
2013/04/19 04:12:13
Function comment is missing.
 
calvinlo
2013/04/19 06:15:09
Done.
 
 | 
| private: | 
| void NotifyObserversToUpdate(); | 
| // XMPP notification related methods. | 
| void RegisterDriveNotifications(); | 
| - bool IsDriveNotificationSupported(); | 
| - void SetPushNotificationEnabled(syncer::InvalidatorState state); | 
| + | 
| + // Polling related methods. | 
| + void SchedulePolling(int64 new_delay_sec); | 
| Profile* profile_; | 
| + ProfileSyncService* profile_sync_service_; | 
| ObserverList<DriveNotificationObserver> observers_; | 
| // XMPP notification related variables. | 
| @@ -56,7 +61,8 @@ class DriveNotificationManager | 
| // True once the first drive notification is received with OK state. | 
| bool push_notification_enabled_; | 
| - // TODO(calvinlo): Polling variables to go here. | 
| + // Timer to trigger fetching changes for incremental sync. | 
| + base::RepeatingTimer<DriveNotificationManager> polling_timer_; | 
| 
 
satorux1
2013/04/19 04:12:13
I thought you wanted to remove the polling code??
 
calvinlo
2013/04/19 06:15:09
Removed. Sorry, I originally based this patch on h
 
 | 
| DISALLOW_COPY_AND_ASSIGN(DriveNotificationManager); | 
| }; |