Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: ui/message_center/message_center_tray.cc

Issue 23636010: Notifications: Add cross-platform UMA: ShowMessageCenter, ShowSettings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added the hash to chromeactions.txt Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/message_center/message_center_tray.h ('k') | ui/message_center/message_center_types.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 #include "ui/message_center/message_center_tray.h" 5 #include "ui/message_center/message_center_tray.h"
6 6
7 #include "base/observer_list.h" 7 #include "base/observer_list.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "grit/ui_strings.h" 9 #include "grit/ui_strings.h"
10 #include "ui/base/l10n/l10n_util.h" 10 #include "ui/base/l10n/l10n_util.h"
11 #include "ui/message_center/message_center.h" 11 #include "ui/message_center/message_center.h"
12 #include "ui/message_center/message_center_tray_delegate.h" 12 #include "ui/message_center/message_center_tray_delegate.h"
13 #include "ui/message_center/message_center_types.h"
13 14
14 namespace message_center { 15 namespace message_center {
15 16
16 MessageCenterTray::MessageCenterTray( 17 MessageCenterTray::MessageCenterTray(
17 MessageCenterTrayDelegate* delegate, 18 MessageCenterTrayDelegate* delegate,
18 message_center::MessageCenter* message_center) 19 message_center::MessageCenter* message_center)
19 : message_center_(message_center), 20 : message_center_(message_center),
20 message_center_visible_(false), 21 message_center_visible_(false),
21 popups_visible_(false), 22 popups_visible_(false),
22 delegate_(delegate) { 23 delegate_(delegate) {
23 message_center_->AddObserver(this); 24 message_center_->AddObserver(this);
24 } 25 }
25 26
26 MessageCenterTray::~MessageCenterTray() { 27 MessageCenterTray::~MessageCenterTray() {
27 message_center_->RemoveObserver(this); 28 message_center_->RemoveObserver(this);
28 } 29 }
29 30
30 bool MessageCenterTray::ShowMessageCenterBubble() { 31 bool MessageCenterTray::ShowMessageCenterBubble() {
31 if (message_center_visible_) 32 if (message_center_visible_)
32 return true; 33 return true;
33 34
34 HidePopupBubble(); 35 HidePopupBubbleInternal();
35 36
36 message_center_visible_ = delegate_->ShowMessageCenter(); 37 message_center_visible_ = delegate_->ShowMessageCenter();
37 message_center_->SetMessageCenterVisible(message_center_visible_); 38 message_center_->SetVisibility(message_center::VISIBILITY_MESSAGE_CENTER);
39 NotifyMessageCenterTrayChanged();
38 return message_center_visible_; 40 return message_center_visible_;
39 } 41 }
40 42
41 bool MessageCenterTray::HideMessageCenterBubble() { 43 bool MessageCenterTray::HideMessageCenterBubble() {
42 if (!message_center_visible_) 44 if (!message_center_visible_)
43 return false; 45 return false;
44 delegate_->HideMessageCenter(); 46 delegate_->HideMessageCenter();
45 MarkMessageCenterHidden(); 47 MarkMessageCenterHidden();
46 return true; 48 return true;
47 } 49 }
48 50
49 void MessageCenterTray::MarkMessageCenterHidden() { 51 void MessageCenterTray::MarkMessageCenterHidden() {
50 if (!message_center_visible_) 52 if (!message_center_visible_)
51 return; 53 return;
52 message_center_visible_ = false; 54 message_center_visible_ = false;
53 message_center_->SetMessageCenterVisible(false); 55
54 // Some notifications (like system ones) should appear as popups again 56 // Some notifications (like system ones) should appear as popups again
55 // after the message center is closed. 57 // after the message center is closed.
56 if (message_center_->HasPopupNotifications()) 58 if (message_center_->HasPopupNotifications()) {
57 ShowPopupBubble(); 59 ShowPopupBubble();
60 return;
61 }
62
63 message_center_->SetVisibility(message_center::VISIBILITY_TRANSIENT);
64
58 NotifyMessageCenterTrayChanged(); 65 NotifyMessageCenterTrayChanged();
59 } 66 }
60 67
61 void MessageCenterTray::ToggleMessageCenterBubble() { 68 void MessageCenterTray::ToggleMessageCenterBubble() {
62 if (message_center_visible_) 69 if (message_center_visible_)
63 HideMessageCenterBubble(); 70 HideMessageCenterBubble();
64 else 71 else
65 ShowMessageCenterBubble(); 72 ShowMessageCenterBubble();
66 } 73 }
67 74
68 void MessageCenterTray::ShowPopupBubble() { 75 void MessageCenterTray::ShowPopupBubble() {
69 if (message_center_visible_) 76 if (message_center_visible_)
70 return; 77 return;
71 78
72 if (popups_visible_) { 79 if (popups_visible_) {
73 NotifyMessageCenterTrayChanged(); 80 NotifyMessageCenterTrayChanged();
74 return; 81 return;
75 } 82 }
76 83
77 if (!message_center_->HasPopupNotifications()) 84 if (!message_center_->HasPopupNotifications())
78 return; 85 return;
79 86
80 popups_visible_ = delegate_->ShowPopups(); 87 popups_visible_ = delegate_->ShowPopups();
88
81 NotifyMessageCenterTrayChanged(); 89 NotifyMessageCenterTrayChanged();
82 } 90 }
83 91
84 bool MessageCenterTray::HidePopupBubble() { 92 bool MessageCenterTray::HidePopupBubble() {
85 if (!popups_visible_) 93 if (!popups_visible_)
86 return false; 94 return false;
87 95 HidePopupBubbleInternal();
88 delegate_->HidePopups();
89 popups_visible_ = false;
90 NotifyMessageCenterTrayChanged(); 96 NotifyMessageCenterTrayChanged();
91 97
92 return true; 98 return true;
93 } 99 }
94 100
101 void MessageCenterTray::HidePopupBubbleInternal() {
102 if (!popups_visible_)
103 return;
104
105 delegate_->HidePopups();
106 popups_visible_ = false;
107 }
108
95 void MessageCenterTray::ShowNotifierSettingsBubble() { 109 void MessageCenterTray::ShowNotifierSettingsBubble() {
96 if (popups_visible_) 110 if (popups_visible_)
97 HidePopupBubble(); 111 HidePopupBubbleInternal();
98 112
99 message_center_visible_ = delegate_->ShowNotifierSettings(); 113 message_center_visible_ = delegate_->ShowNotifierSettings();
114 message_center_->SetVisibility(message_center::VISIBILITY_SETTINGS);
115
116 NotifyMessageCenterTrayChanged();
100 } 117 }
101 118
102 void MessageCenterTray::OnNotificationAdded( 119 void MessageCenterTray::OnNotificationAdded(
103 const std::string& notification_id) { 120 const std::string& notification_id) {
104 OnMessageCenterChanged(); 121 OnMessageCenterChanged();
105 } 122 }
106 123
107 void MessageCenterTray::OnNotificationRemoved( 124 void MessageCenterTray::OnNotificationRemoved(
108 const std::string& notification_id, 125 const std::string& notification_id,
109 bool by_user) { 126 bool by_user) {
(...skipping 21 matching lines...) Expand all
131 void MessageCenterTray::OnNotificationDisplayed( 148 void MessageCenterTray::OnNotificationDisplayed(
132 const std::string& notification_id) { 149 const std::string& notification_id) {
133 NotifyMessageCenterTrayChanged(); 150 NotifyMessageCenterTrayChanged();
134 } 151 }
135 152
136 void MessageCenterTray::OnQuietModeChanged(bool in_quiet_mode) { 153 void MessageCenterTray::OnQuietModeChanged(bool in_quiet_mode) {
137 NotifyMessageCenterTrayChanged(); 154 NotifyMessageCenterTrayChanged();
138 } 155 }
139 156
140 void MessageCenterTray::OnMessageCenterChanged() { 157 void MessageCenterTray::OnMessageCenterChanged() {
141 if (message_center_visible_) { 158 if (message_center_visible_ && message_center_->NotificationCount() == 0)
142 if (message_center_->NotificationCount() == 0) 159 HideMessageCenterBubble();
143 HideMessageCenterBubble();
144 }
145 160
146 if (popups_visible_ && !message_center_->HasPopupNotifications()) 161 if (popups_visible_ && !message_center_->HasPopupNotifications())
147 HidePopupBubble(); 162 HidePopupBubbleInternal();
148 else if (message_center_->HasPopupNotifications()) 163 else if (!popups_visible_ && message_center_->HasPopupNotifications())
149 ShowPopupBubble(); 164 ShowPopupBubble();
150 165
151 NotifyMessageCenterTrayChanged(); 166 NotifyMessageCenterTrayChanged();
152 } 167 }
153 168
154 void MessageCenterTray::NotifyMessageCenterTrayChanged() { 169 void MessageCenterTray::NotifyMessageCenterTrayChanged() {
155 delegate_->OnMessageCenterTrayChanged(); 170 delegate_->OnMessageCenterTrayChanged();
156 } 171 }
157 172
158 } // namespace message_center 173 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/message_center_tray.h ('k') | ui/message_center/message_center_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698