OLD | NEW |
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 "chrome/browser/chromeos/power/peripheral_battery_observer.h" | 5 #include "chrome/browser/chromeos/power/peripheral_battery_observer.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
10 #include "ash/strings/grit/ash_strings.h" | 10 #include "ash/strings/grit/ash_strings.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 | 33 |
34 // When a peripheral device's battery level is <= kLowBatteryLevel, consider | 34 // When a peripheral device's battery level is <= kLowBatteryLevel, consider |
35 // it to be in low battery condition. | 35 // it to be in low battery condition. |
36 const int kLowBatteryLevel = 15; | 36 const int kLowBatteryLevel = 15; |
37 | 37 |
38 // Don't show 2 low battery notification within |kNotificationIntervalSec| | 38 // Don't show 2 low battery notification within |kNotificationIntervalSec| |
39 // seconds. | 39 // seconds. |
40 const int kNotificationIntervalSec = 60; | 40 const int kNotificationIntervalSec = 60; |
41 | 41 |
42 const char kNotificationOriginUrl[] = "chrome://peripheral-battery"; | 42 const char kNotificationOriginUrl[] = "chrome://peripheral-battery"; |
| 43 const char kNotifierId[] = "power.peripheral-battery"; |
43 | 44 |
44 // HID Bluetooth device's battery sysfs entry path looks like | 45 // HID Bluetooth device's battery sysfs entry path looks like |
45 // "/sys/class/power_supply/hid-AA:BB:CC:DD:EE:FF-battery". | 46 // "/sys/class/power_supply/hid-AA:BB:CC:DD:EE:FF-battery". |
46 // Here the bluetooth address is showed in reverse order and its true | 47 // Here the bluetooth address is showed in reverse order and its true |
47 // address "FF:EE:DD:CC:BB:AA". | 48 // address "FF:EE:DD:CC:BB:AA". |
48 const char kHIDBatteryPathPrefix[] = "/sys/class/power_supply/hid-"; | 49 const char kHIDBatteryPathPrefix[] = "/sys/class/power_supply/hid-"; |
49 const char kHIDBatteryPathSuffix[] = "-battery"; | 50 const char kHIDBatteryPathSuffix[] = "-battery"; |
50 | 51 |
51 bool IsBluetoothHIDBattery(const std::string& path) { | 52 bool IsBluetoothHIDBattery(const std::string& path) { |
52 return base::StartsWith(path, kHIDBatteryPathPrefix, | 53 return base::StartsWith(path, kHIDBatteryPathPrefix, |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 g_browser_process->notification_ui_manager(); | 206 g_browser_process->notification_ui_manager(); |
206 | 207 |
207 base::string16 string_text = l10n_util::GetStringFUTF16Int( | 208 base::string16 string_text = l10n_util::GetStringFUTF16Int( |
208 IDS_ASH_LOW_PERIPHERAL_BATTERY_NOTIFICATION_TEXT, | 209 IDS_ASH_LOW_PERIPHERAL_BATTERY_NOTIFICATION_TEXT, |
209 battery.level); | 210 battery.level); |
210 | 211 |
211 Notification notification( | 212 Notification notification( |
212 message_center::NOTIFICATION_TYPE_SIMPLE, base::UTF8ToUTF16(battery.name), | 213 message_center::NOTIFICATION_TYPE_SIMPLE, base::UTF8ToUTF16(battery.name), |
213 string_text, ui::ResourceBundle::GetSharedInstance().GetImageNamed( | 214 string_text, ui::ResourceBundle::GetSharedInstance().GetImageNamed( |
214 IDR_NOTIFICATION_PERIPHERAL_BATTERY_LOW), | 215 IDR_NOTIFICATION_PERIPHERAL_BATTERY_LOW), |
215 message_center::NotifierId(GURL(kNotificationOriginUrl)), | 216 message_center::NotifierId(message_center::NotifierId::SYSTEM_COMPONENT, |
| 217 kNotifierId), |
216 base::string16(), GURL(kNotificationOriginUrl), address, | 218 base::string16(), GURL(kNotificationOriginUrl), address, |
217 message_center::RichNotificationData(), | 219 message_center::RichNotificationData(), |
218 new PeripheralBatteryNotificationDelegate(address)); | 220 new PeripheralBatteryNotificationDelegate(address)); |
219 | 221 |
220 notification.set_priority(message_center::SYSTEM_PRIORITY); | 222 notification.set_priority(message_center::SYSTEM_PRIORITY); |
221 | 223 |
222 notification_profile_ = ProfileManager::GetPrimaryUserProfile(); | 224 notification_profile_ = ProfileManager::GetPrimaryUserProfile(); |
223 notification_manager->Add(notification, notification_profile_); | 225 notification_manager->Add(notification, notification_profile_); |
224 | 226 |
225 return true; | 227 return true; |
226 } | 228 } |
227 | 229 |
228 void PeripheralBatteryObserver::CancelNotification(const std::string& address) { | 230 void PeripheralBatteryObserver::CancelNotification(const std::string& address) { |
229 // If last_used_profile_ is NULL then no notification has been posted yet. | 231 // If last_used_profile_ is NULL then no notification has been posted yet. |
230 if (notification_profile_) { | 232 if (notification_profile_) { |
231 g_browser_process->notification_ui_manager()->CancelById( | 233 g_browser_process->notification_ui_manager()->CancelById( |
232 address, NotificationUIManager::GetProfileID(notification_profile_)); | 234 address, NotificationUIManager::GetProfileID(notification_profile_)); |
233 } | 235 } |
234 } | 236 } |
235 | 237 |
236 } // namespace chromeos | 238 } // namespace chromeos |
OLD | NEW |