| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/bluetooth/tray_bluetooth.h" | 5 #include "ash/system/bluetooth/tray_bluetooth.h" |
| 6 | 6 |
| 7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
| 8 #include "ash/system/tray/system_tray.h" | 8 #include "ash/system/tray/system_tray.h" |
| 9 #include "ash/system/tray/system_tray_delegate.h" | 9 #include "ash/system/tray/system_tray_delegate.h" |
| 10 #include "ash/system/tray/system_tray_notifier.h" | 10 #include "ash/system/tray/system_tray_notifier.h" |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 void CreateItems() { | 96 void CreateItems() { |
| 97 CreateScrollableList(); | 97 CreateScrollableList(); |
| 98 AppendSettingsEntries(); | 98 AppendSettingsEntries(); |
| 99 AppendHeaderEntry(); | 99 AppendHeaderEntry(); |
| 100 } | 100 } |
| 101 | 101 |
| 102 void BluetoothStartDiscovering() { | 102 void BluetoothStartDiscovering() { |
| 103 ash::SystemTrayDelegate* delegate = | 103 ash::SystemTrayDelegate* delegate = |
| 104 ash::Shell::GetInstance()->system_tray_delegate(); | 104 ash::Shell::GetInstance()->system_tray_delegate(); |
| 105 bool bluetooth_enabled = delegate->GetBluetoothEnabled(); | 105 bool bluetooth_enabled = delegate->GetBluetoothEnabled(); |
| 106 if (!bluetooth_discovering_ && bluetooth_enabled) | 106 if (!bluetooth_discovering_ && bluetooth_enabled) { |
| 107 delegate->BluetoothStartDiscovering(); | 107 delegate->BluetoothStartDiscovering(); |
| 108 throbber_->Start(); |
| 109 } else if(!bluetooth_enabled) { |
| 110 throbber_->Stop(); |
| 111 } |
| 108 bluetooth_discovering_ = bluetooth_enabled; | 112 bluetooth_discovering_ = bluetooth_enabled; |
| 109 } | 113 } |
| 110 | 114 |
| 111 void BluetoothStopDiscovering() { | 115 void BluetoothStopDiscovering() { |
| 112 ash::SystemTrayDelegate* delegate = | 116 ash::SystemTrayDelegate* delegate = |
| 113 ash::Shell::GetInstance()->system_tray_delegate(); | 117 ash::Shell::GetInstance()->system_tray_delegate(); |
| 114 if (bluetooth_discovering_) { | 118 if (bluetooth_discovering_) { |
| 115 bluetooth_discovering_ = false; | 119 bluetooth_discovering_ = false; |
| 116 delegate->BluetoothStopDiscovering(); | 120 delegate->BluetoothStopDiscovering(); |
| 121 throbber_->Stop(); |
| 117 } | 122 } |
| 118 } | 123 } |
| 119 | 124 |
| 120 void UpdateBlueToothDeviceList() { | 125 void UpdateBlueToothDeviceList() { |
| 121 connected_devices_.clear(); | 126 connected_devices_.clear(); |
| 122 paired_not_connected_devices_.clear(); | 127 paired_not_connected_devices_.clear(); |
| 123 discovered_not_paired_devices_.clear(); | 128 discovered_not_paired_devices_.clear(); |
| 124 BluetoothDeviceList list; | 129 BluetoothDeviceList list; |
| 125 Shell::GetInstance()->system_tray_delegate()-> | 130 Shell::GetInstance()->system_tray_delegate()-> |
| 126 GetAvailableBluetoothDevices(&list); | 131 GetAvailableBluetoothDevices(&list); |
| 127 for (size_t i = 0; i < list.size(); ++i) { | 132 for (size_t i = 0; i < list.size(); ++i) { |
| 128 if (list[i].connected) | 133 if (list[i].connected) |
| 129 connected_devices_.push_back(list[i]); | 134 connected_devices_.push_back(list[i]); |
| 130 else if (list[i].paired) | 135 else if (list[i].paired) |
| 131 paired_not_connected_devices_.push_back(list[i]); | 136 paired_not_connected_devices_.push_back(list[i]); |
| 132 else if (list[i].visible) | 137 else if (list[i].visible) |
| 133 discovered_not_paired_devices_.push_back(list[i]); | 138 discovered_not_paired_devices_.push_back(list[i]); |
| 134 } | 139 } |
| 135 } | 140 } |
| 136 | 141 |
| 137 void AppendHeaderEntry() { | 142 void AppendHeaderEntry() { |
| 138 CreateSpecialRow(IDS_ASH_STATUS_TRAY_BLUETOOTH, this); | 143 CreateSpecialRow(IDS_ASH_STATUS_TRAY_BLUETOOTH, this); |
| 139 | 144 |
| 140 if (login_ == user::LOGGED_IN_LOCKED) | 145 if (login_ == user::LOGGED_IN_LOCKED) |
| 141 return; | 146 return; |
| 142 | 147 |
| 148 throbber_ = new ThrobberView; |
| 149 throbber_->SetTooltipText( |
| 150 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_BLUETOOTH_DISCOVERING)); |
| 151 footer()->AddThrobber(throbber_); |
| 152 |
| 143 // Do not allow toggling bluetooth in the lock screen. | 153 // Do not allow toggling bluetooth in the lock screen. |
| 144 ash::SystemTrayDelegate* delegate = | 154 ash::SystemTrayDelegate* delegate = |
| 145 ash::Shell::GetInstance()->system_tray_delegate(); | 155 ash::Shell::GetInstance()->system_tray_delegate(); |
| 146 toggle_bluetooth_ = new TrayPopupHeaderButton(this, | 156 toggle_bluetooth_ = new TrayPopupHeaderButton(this, |
| 147 IDR_AURA_UBER_TRAY_BLUETOOTH_ENABLED, | 157 IDR_AURA_UBER_TRAY_BLUETOOTH_ENABLED, |
| 148 IDR_AURA_UBER_TRAY_BLUETOOTH_DISABLED, | 158 IDR_AURA_UBER_TRAY_BLUETOOTH_DISABLED, |
| 149 IDR_AURA_UBER_TRAY_BLUETOOTH_ENABLED_HOVER, | 159 IDR_AURA_UBER_TRAY_BLUETOOTH_ENABLED_HOVER, |
| 150 IDR_AURA_UBER_TRAY_BLUETOOTH_DISABLED_HOVER, | 160 IDR_AURA_UBER_TRAY_BLUETOOTH_DISABLED_HOVER, |
| 151 IDS_ASH_STATUS_TRAY_BLUETOOTH); | 161 IDS_ASH_STATUS_TRAY_BLUETOOTH); |
| 152 toggle_bluetooth_->SetToggled(!delegate->GetBluetoothEnabled()); | 162 toggle_bluetooth_->SetToggled(!delegate->GetBluetoothEnabled()); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 if (sender == toggle_bluetooth_) | 325 if (sender == toggle_bluetooth_) |
| 316 delegate->ToggleBluetooth(); | 326 delegate->ToggleBluetooth(); |
| 317 else | 327 else |
| 318 NOTREACHED(); | 328 NOTREACHED(); |
| 319 } | 329 } |
| 320 | 330 |
| 321 user::LoginStatus login_; | 331 user::LoginStatus login_; |
| 322 | 332 |
| 323 std::map<views::View*, std::string> device_map_; | 333 std::map<views::View*, std::string> device_map_; |
| 324 views::View* add_device_; | 334 views::View* add_device_; |
| 335 ThrobberView* throbber_; |
| 325 TrayPopupHeaderButton* toggle_bluetooth_; | 336 TrayPopupHeaderButton* toggle_bluetooth_; |
| 326 HoverHighlightView* enable_bluetooth_; | 337 HoverHighlightView* enable_bluetooth_; |
| 327 BluetoothDeviceList connected_devices_; | 338 BluetoothDeviceList connected_devices_; |
| 328 BluetoothDeviceList paired_not_connected_devices_; | 339 BluetoothDeviceList paired_not_connected_devices_; |
| 329 BluetoothDeviceList discovered_not_paired_devices_; | 340 BluetoothDeviceList discovered_not_paired_devices_; |
| 330 bool bluetooth_discovering_; | 341 bool bluetooth_discovering_; |
| 331 | 342 |
| 332 DISALLOW_COPY_AND_ASSIGN(BluetoothDetailedView); | 343 DISALLOW_COPY_AND_ASSIGN(BluetoothDetailedView); |
| 333 }; | 344 }; |
| 334 | 345 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 } | 396 } |
| 386 | 397 |
| 387 void TrayBluetooth::OnBluetoothDiscoveringChanged() { | 398 void TrayBluetooth::OnBluetoothDiscoveringChanged() { |
| 388 if (!detailed_) | 399 if (!detailed_) |
| 389 return; | 400 return; |
| 390 detailed_->Update(); | 401 detailed_->Update(); |
| 391 } | 402 } |
| 392 | 403 |
| 393 } // namespace internal | 404 } // namespace internal |
| 394 } // namespace ash | 405 } // namespace ash |
| OLD | NEW |