OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "chrome/browser/ui/cocoa/notifications/alert_notification_service.h" | 5 #import "chrome/browser/ui/cocoa/notifications/alert_notification_service.h" |
6 | 6 |
7 #import "base/mac/scoped_nsobject.h" | 7 #import "base/mac/scoped_nsobject.h" |
8 #import "chrome/browser/ui/cocoa/notifications/notification_builder_mac.h" | 8 #import "chrome/browser/ui/cocoa/notifications/notification_builder_mac.h" |
| 9 #include "chrome/browser/ui/cocoa/notifications/notification_constants_mac.h" |
9 | 10 |
10 @class NSUserNotificationCenter; | 11 @class NSUserNotificationCenter; |
11 | 12 |
12 @implementation AlertNotificationService | 13 @implementation AlertNotificationService |
13 | 14 |
14 - (void)deliverNotification:(NSDictionary*)notificationData { | 15 - (void)deliverNotification:(NSDictionary*)notificationData { |
15 base::scoped_nsobject<NotificationBuilder> builder( | 16 base::scoped_nsobject<NotificationBuilder> builder( |
16 [[NotificationBuilder alloc] initWithDictionary:notificationData]); | 17 [[NotificationBuilder alloc] initWithDictionary:notificationData]); |
17 | 18 |
18 NSUserNotification* toast = [builder buildUserNotification]; | 19 NSUserNotification* toast = [builder buildUserNotification]; |
19 | 20 |
20 [[NSUserNotificationCenter defaultUserNotificationCenter] | 21 [[NSUserNotificationCenter defaultUserNotificationCenter] |
21 deliverNotification:toast]; | 22 deliverNotification:toast]; |
22 } | 23 } |
23 | 24 |
| 25 - (void)closeNotification:(NSString*)notificationId |
| 26 withProfile:(NSString*)profileId { |
| 27 NSUserNotificationCenter* notificationCenter = |
| 28 [NSUserNotificationCenter defaultUserNotificationCenter]; |
| 29 for (NSUserNotification* candidate in |
| 30 [notificationCenter deliveredNotifications]) { |
| 31 NSString* candidateId = [candidate.userInfo |
| 32 objectForKey:notification_constants::kNotificationId]; |
| 33 |
| 34 NSString* candidateProfileId = [candidate.userInfo |
| 35 objectForKey:notification_constants::kNotificationProfileId]; |
| 36 |
| 37 if ([candidateId isEqualToString:notificationId] && |
| 38 [profileId isEqualToString:candidateProfileId]) { |
| 39 [notificationCenter removeDeliveredNotification:candidate]; |
| 40 } |
| 41 } |
| 42 } |
| 43 |
| 44 - (void)closeAllNotifications { |
| 45 [[NSUserNotificationCenter defaultUserNotificationCenter] |
| 46 removeAllDeliveredNotifications]; |
| 47 } |
| 48 |
24 @end | 49 @end |
OLD | NEW |