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

Side by Side Diff: ash/system/chromeos/bluetooth/bluetooth_notification_controller.cc

Issue 2095193002: clang-format all of //ash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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 "ash/system/chromeos/bluetooth/bluetooth_notification_controller.h" 5 #include "ash/system/chromeos/bluetooth/bluetooth_notification_controller.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "ash/common/system/system_notifier.h" 10 #include "ash/common/system/system_notifier.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 58
59 protected: 59 protected:
60 ~BluetoothPairingNotificationDelegate() override; 60 ~BluetoothPairingNotificationDelegate() override;
61 61
62 // message_center::NotificationDelegate overrides. 62 // message_center::NotificationDelegate overrides.
63 void Close(bool by_user) override; 63 void Close(bool by_user) override;
64 void ButtonClick(int button_index) override; 64 void ButtonClick(int button_index) override;
65 65
66 private: 66 private:
67 // Buttons that appear in notifications. 67 // Buttons that appear in notifications.
68 enum Button { 68 enum Button { BUTTON_ACCEPT, BUTTON_REJECT };
69 BUTTON_ACCEPT,
70 BUTTON_REJECT
71 };
72 69
73 // Reference to the underlying Bluetooth Adapter, holding onto this 70 // Reference to the underlying Bluetooth Adapter, holding onto this
74 // reference ensures the adapter object doesn't go out of scope while we have 71 // reference ensures the adapter object doesn't go out of scope while we have
75 // a pending request and user interaction. 72 // a pending request and user interaction.
76 scoped_refptr<BluetoothAdapter> adapter_; 73 scoped_refptr<BluetoothAdapter> adapter_;
77 74
78 // Address of the device being paired. 75 // Address of the device being paired.
79 const std::string address_; 76 const std::string address_;
80 77
81 DISALLOW_COPY_AND_ASSIGN(BluetoothPairingNotificationDelegate); 78 DISALLOW_COPY_AND_ASSIGN(BluetoothPairingNotificationDelegate);
82 }; 79 };
83 80
84 BluetoothPairingNotificationDelegate::BluetoothPairingNotificationDelegate( 81 BluetoothPairingNotificationDelegate::BluetoothPairingNotificationDelegate(
85 scoped_refptr<BluetoothAdapter> adapter, 82 scoped_refptr<BluetoothAdapter> adapter,
86 const std::string& address) 83 const std::string& address)
87 : adapter_(adapter), 84 : adapter_(adapter), address_(address) {}
88 address_(address) {
89 }
90 85
91 BluetoothPairingNotificationDelegate::~BluetoothPairingNotificationDelegate() { 86 BluetoothPairingNotificationDelegate::~BluetoothPairingNotificationDelegate() {}
92 }
93 87
94 void BluetoothPairingNotificationDelegate::Close(bool by_user) { 88 void BluetoothPairingNotificationDelegate::Close(bool by_user) {
95 VLOG(1) << "Pairing notification closed. by_user = " << by_user; 89 VLOG(1) << "Pairing notification closed. by_user = " << by_user;
96 // Ignore notification closes generated as a result of pairing completion. 90 // Ignore notification closes generated as a result of pairing completion.
97 if (!by_user) 91 if (!by_user)
98 return; 92 return;
99 93
100 // Cancel the pairing of the device, if the object still exists. 94 // Cancel the pairing of the device, if the object still exists.
101 BluetoothDevice* device = adapter_->GetDevice(address_); 95 BluetoothDevice* device = adapter_->GetDevice(address_);
102 if (device) 96 if (device)
(...skipping 16 matching lines...) Expand all
119 } 113 }
120 } 114 }
121 115
122 // In any case, remove this pairing notification. 116 // In any case, remove this pairing notification.
123 message_center::MessageCenter::Get()->RemoveNotification( 117 message_center::MessageCenter::Get()->RemoveNotification(
124 kBluetoothDevicePairingNotificationId, false /* by_user */); 118 kBluetoothDevicePairingNotificationId, false /* by_user */);
125 } 119 }
126 120
127 } // namespace 121 } // namespace
128 122
129
130 namespace ash { 123 namespace ash {
131 124
132 BluetoothNotificationController::BluetoothNotificationController() 125 BluetoothNotificationController::BluetoothNotificationController()
133 : weak_ptr_factory_(this) { 126 : weak_ptr_factory_(this) {
134 BluetoothAdapterFactory::GetAdapter( 127 BluetoothAdapterFactory::GetAdapter(
135 base::Bind(&BluetoothNotificationController::OnGetAdapter, 128 base::Bind(&BluetoothNotificationController::OnGetAdapter,
136 weak_ptr_factory_.GetWeakPtr())); 129 weak_ptr_factory_.GetWeakPtr()));
137 } 130 }
138 131
139 BluetoothNotificationController::~BluetoothNotificationController() { 132 BluetoothNotificationController::~BluetoothNotificationController() {
140 if (adapter_.get()) { 133 if (adapter_.get()) {
141 adapter_->RemoveObserver(this); 134 adapter_->RemoveObserver(this);
142 adapter_->RemovePairingDelegate(this); 135 adapter_->RemovePairingDelegate(this);
143 adapter_ = NULL; 136 adapter_ = NULL;
144 } 137 }
145 } 138 }
146 139
147
148 void BluetoothNotificationController::AdapterDiscoverableChanged( 140 void BluetoothNotificationController::AdapterDiscoverableChanged(
149 BluetoothAdapter* adapter, 141 BluetoothAdapter* adapter,
150 bool discoverable) { 142 bool discoverable) {
151 if (discoverable) { 143 if (discoverable) {
152 NotifyAdapterDiscoverable(); 144 NotifyAdapterDiscoverable();
153 } else { 145 } else {
154 // Clear any previous discoverable notification. 146 // Clear any previous discoverable notification.
155 message_center::MessageCenter::Get()->RemoveNotification( 147 message_center::MessageCenter::Get()->RemoveNotification(
156 kBluetoothDeviceDiscoverableNotificationId, false /* by_user */); 148 kBluetoothDeviceDiscoverableNotificationId, false /* by_user */);
157 } 149 }
(...skipping 20 matching lines...) Expand all
178 paired_devices_.insert(device->GetAddress()); 170 paired_devices_.insert(device->GetAddress());
179 NotifyPairedDevice(device); 171 NotifyPairedDevice(device);
180 } 172 }
181 } 173 }
182 174
183 void BluetoothNotificationController::DeviceRemoved(BluetoothAdapter* adapter, 175 void BluetoothNotificationController::DeviceRemoved(BluetoothAdapter* adapter,
184 BluetoothDevice* device) { 176 BluetoothDevice* device) {
185 paired_devices_.erase(device->GetAddress()); 177 paired_devices_.erase(device->GetAddress());
186 } 178 }
187 179
188
189 void BluetoothNotificationController::RequestPinCode(BluetoothDevice* device) { 180 void BluetoothNotificationController::RequestPinCode(BluetoothDevice* device) {
190 // Cannot provide keyboard entry in a notification; these devices (old car 181 // Cannot provide keyboard entry in a notification; these devices (old car
191 // audio systems for the most part) will need pairing to be initiated from 182 // audio systems for the most part) will need pairing to be initiated from
192 // the Chromebook. 183 // the Chromebook.
193 device->CancelPairing(); 184 device->CancelPairing();
194 } 185 }
195 186
196 void BluetoothNotificationController::RequestPasskey(BluetoothDevice* device) { 187 void BluetoothNotificationController::RequestPasskey(BluetoothDevice* device) {
197 // Cannot provide keyboard entry in a notification; fortunately the spec 188 // Cannot provide keyboard entry in a notification; fortunately the spec
198 // doesn't allow for this to be an option when we're receiving the pairing 189 // doesn't allow for this to be an option when we're receiving the pairing
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 228
238 void BluetoothNotificationController::AuthorizePairing( 229 void BluetoothNotificationController::AuthorizePairing(
239 BluetoothDevice* device) { 230 BluetoothDevice* device) {
240 base::string16 message = l10n_util::GetStringFUTF16( 231 base::string16 message = l10n_util::GetStringFUTF16(
241 IDS_ASH_STATUS_TRAY_BLUETOOTH_AUTHORIZE_PAIRING, 232 IDS_ASH_STATUS_TRAY_BLUETOOTH_AUTHORIZE_PAIRING,
242 device->GetNameForDisplay()); 233 device->GetNameForDisplay());
243 234
244 NotifyPairing(device, message, true); 235 NotifyPairing(device, message, true);
245 } 236 }
246 237
247
248 void BluetoothNotificationController::OnGetAdapter( 238 void BluetoothNotificationController::OnGetAdapter(
249 scoped_refptr<BluetoothAdapter> adapter) { 239 scoped_refptr<BluetoothAdapter> adapter) {
250 DCHECK(!adapter_.get()); 240 DCHECK(!adapter_.get());
251 adapter_ = adapter; 241 adapter_ = adapter;
252 adapter_->AddObserver(this); 242 adapter_->AddObserver(this);
253 adapter_->AddPairingDelegate(this, 243 adapter_->AddPairingDelegate(this,
254 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_LOW); 244 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_LOW);
255 245
256 // Notify a user if the adapter is already in the discoverable state. 246 // Notify a user if the adapter is already in the discoverable state.
257 if (adapter_->IsDiscoverable()) 247 if (adapter_->IsDiscoverable())
258 NotifyAdapterDiscoverable(); 248 NotifyAdapterDiscoverable();
259 249
260 // Build a list of the currently paired devices; these don't receive 250 // Build a list of the currently paired devices; these don't receive
261 // notifications since it's assumed they were previously notified. 251 // notifications since it's assumed they were previously notified.
262 BluetoothAdapter::DeviceList devices = adapter_->GetDevices(); 252 BluetoothAdapter::DeviceList devices = adapter_->GetDevices();
263 for (BluetoothAdapter::DeviceList::const_iterator iter = devices.begin(); 253 for (BluetoothAdapter::DeviceList::const_iterator iter = devices.begin();
264 iter != devices.end(); ++iter) { 254 iter != devices.end(); ++iter) {
265 const BluetoothDevice* device = *iter; 255 const BluetoothDevice* device = *iter;
266 if (device->IsPaired()) 256 if (device->IsPaired())
267 paired_devices_.insert(device->GetAddress()); 257 paired_devices_.insert(device->GetAddress());
268 } 258 }
269 } 259 }
270 260
271
272 void BluetoothNotificationController::NotifyAdapterDiscoverable() { 261 void BluetoothNotificationController::NotifyAdapterDiscoverable() {
273 message_center::RichNotificationData optional; 262 message_center::RichNotificationData optional;
274 263
275 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); 264 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
276 265
277 std::unique_ptr<Notification> notification(new Notification( 266 std::unique_ptr<Notification> notification(new Notification(
278 message_center::NOTIFICATION_TYPE_SIMPLE, 267 message_center::NOTIFICATION_TYPE_SIMPLE,
279 kBluetoothDeviceDiscoverableNotificationId, base::string16() /* title */, 268 kBluetoothDeviceDiscoverableNotificationId, base::string16() /* title */,
280 l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_BLUETOOTH_DISCOVERABLE, 269 l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_BLUETOOTH_DISCOVERABLE,
281 base::UTF8ToUTF16(adapter_->GetName()), 270 base::UTF8ToUTF16(adapter_->GetName()),
282 base::UTF8ToUTF16(adapter_->GetAddress())), 271 base::UTF8ToUTF16(adapter_->GetAddress())),
283 bundle.GetImageNamed(IDR_AURA_NOTIFICATION_BLUETOOTH), 272 bundle.GetImageNamed(IDR_AURA_NOTIFICATION_BLUETOOTH),
284 base::string16() /* display source */, GURL(), 273 base::string16() /* display source */, GURL(),
285 message_center::NotifierId(message_center::NotifierId::SYSTEM_COMPONENT, 274 message_center::NotifierId(message_center::NotifierId::SYSTEM_COMPONENT,
286 system_notifier::kNotifierBluetooth), 275 system_notifier::kNotifierBluetooth),
287 optional, NULL)); 276 optional, NULL));
288 message_center::MessageCenter::Get()->AddNotification( 277 message_center::MessageCenter::Get()->AddNotification(
289 std::move(notification)); 278 std::move(notification));
290 } 279 }
291 280
292 void BluetoothNotificationController::NotifyPairing( 281 void BluetoothNotificationController::NotifyPairing(
293 BluetoothDevice* device, 282 BluetoothDevice* device,
294 const base::string16& message, 283 const base::string16& message,
295 bool with_buttons) { 284 bool with_buttons) {
296 message_center::RichNotificationData optional; 285 message_center::RichNotificationData optional;
297 if (with_buttons) { 286 if (with_buttons) {
298 optional.buttons.push_back(message_center::ButtonInfo( 287 optional.buttons.push_back(message_center::ButtonInfo(
299 l10n_util::GetStringUTF16( 288 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_BLUETOOTH_ACCEPT)));
300 IDS_ASH_STATUS_TRAY_BLUETOOTH_ACCEPT)));
301 optional.buttons.push_back(message_center::ButtonInfo( 289 optional.buttons.push_back(message_center::ButtonInfo(
302 l10n_util::GetStringUTF16( 290 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_BLUETOOTH_REJECT)));
303 IDS_ASH_STATUS_TRAY_BLUETOOTH_REJECT)));
304 } 291 }
305 292
306 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); 293 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
307 294
308 std::unique_ptr<Notification> notification(new Notification( 295 std::unique_ptr<Notification> notification(new Notification(
309 message_center::NOTIFICATION_TYPE_SIMPLE, 296 message_center::NOTIFICATION_TYPE_SIMPLE,
310 kBluetoothDevicePairingNotificationId, base::string16() /* title */, 297 kBluetoothDevicePairingNotificationId, base::string16() /* title */,
311 message, bundle.GetImageNamed(IDR_AURA_NOTIFICATION_BLUETOOTH), 298 message, bundle.GetImageNamed(IDR_AURA_NOTIFICATION_BLUETOOTH),
312 base::string16() /* display source */, GURL(), 299 base::string16() /* display source */, GURL(),
313 message_center::NotifierId(message_center::NotifierId::SYSTEM_COMPONENT, 300 message_center::NotifierId(message_center::NotifierId::SYSTEM_COMPONENT,
(...skipping 24 matching lines...) Expand all
338 bundle.GetImageNamed(IDR_AURA_NOTIFICATION_BLUETOOTH), 325 bundle.GetImageNamed(IDR_AURA_NOTIFICATION_BLUETOOTH),
339 base::string16() /* display source */, GURL(), 326 base::string16() /* display source */, GURL(),
340 message_center::NotifierId(message_center::NotifierId::SYSTEM_COMPONENT, 327 message_center::NotifierId(message_center::NotifierId::SYSTEM_COMPONENT,
341 system_notifier::kNotifierBluetooth), 328 system_notifier::kNotifierBluetooth),
342 optional, NULL)); 329 optional, NULL));
343 message_center::MessageCenter::Get()->AddNotification( 330 message_center::MessageCenter::Get()->AddNotification(
344 std::move(notification)); 331 std::move(notification));
345 } 332 }
346 333
347 } // namespace ash 334 } // namespace ash
OLDNEW
« no previous file with comments | « ash/system/chromeos/audio/tray_audio_delegate_chromeos.cc ('k') | ash/system/chromeos/bluetooth/tray_bluetooth.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698