1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_NOTIFICATIONS_GOOGLE_NOW_NOTIFICATION_STATS_COLLECTOR_H_ 6 #define CHROME_BROWSER_NOTIFICATIONS_GOOGLE_NOW_NOTIFICATION_STATS_COLLECTOR_H_ 7 8 #include <string> 9 10 #include "ui/message_center/message_center.h" 11 #include "ui/message_center/message_center_observer.h" 12 #include "ui/message_center/message_center_types.h" 13 14 // The Google Now Notification Stats Collector listens for message center 15 // events and records stats about Google Now specific notifications. 16 class GoogleNowNotificationStatsCollector 17 : public message_center::MessageCenterObserver { 18 public: 19 explicit GoogleNowNotificationStatsCollector( 20 message_center::MessageCenter* message_center); 21 virtual ~GoogleNowNotificationStatsCollector(); 22 23 private: 24 // MessageCenterObserver 25 virtual void OnNotificationDisplayed( 26 const std::string& notification_id, 27 const message_center::DisplaySource source) OVERRIDE; 28 virtual void OnCenterVisibilityChanged( 29 message_center::Visibility visibility) OVERRIDE; 30 31 // Counts the number of Google Now Notifications in the message center. 32 int CountVisibleGoogleNowNotifications(); 33 34 // Returns true if the notification ID is for Google Now. 35 bool IsNotificationIdForGoogleNow(const std::string& notification_id); 36 37 // Weak, global. 38 message_center::MessageCenter* message_center_; 39 40 DISALLOW_COPY_AND_ASSIGN(GoogleNowNotificationStatsCollector); 41 }; 42 43 #endif // CHROME_BROWSER_NOTIFICATIONS_GOOGLE_NOW_NOTIFICATION_STATS_COLLECTOR_H_ 44