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. 16class 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