Index: chrome/browser/ui/bluetooth/bluetooth_chooser_controller.cc |
diff --git a/chrome/browser/ui/bluetooth/bluetooth_chooser_controller.cc b/chrome/browser/ui/bluetooth/bluetooth_chooser_controller.cc |
index 173fc18848dd1fe1d4f904dd4b9abd51616ab0e2..5c0f2e410d7a1a390de43fb6129f3fe0596885d3 100644 |
--- a/chrome/browser/ui/bluetooth/bluetooth_chooser_controller.cc |
+++ b/chrome/browser/ui/bluetooth/bluetooth_chooser_controller.cc |
@@ -32,10 +32,16 @@ BluetoothChooserController::BluetoothChooserController( |
: ChooserController(owner, |
IDS_BLUETOOTH_DEVICE_CHOOSER_PROMPT_ORIGIN, |
IDS_BLUETOOTH_DEVICE_CHOOSER_PROMPT_EXTENSION_NAME), |
- event_handler_(event_handler) {} |
+ event_handler_(event_handler), |
+ no_devices_text_(l10n_util::GetStringUTF16( |
+ IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT)) {} |
BluetoothChooserController::~BluetoothChooserController() {} |
+base::string16 BluetoothChooserController::GetNoOptionsText() const { |
+ return no_devices_text_; |
+} |
+ |
base::string16 BluetoothChooserController::GetOkButtonLabel() const { |
return l10n_util::GetStringUTF16( |
IDS_BLUETOOTH_DEVICE_CHOOSER_PAIR_BUTTON_TEXT); |
@@ -57,6 +63,15 @@ base::string16 BluetoothChooserController::GetOption(size_t index) const { |
base::UTF8ToUTF16(device_names_and_ids_[index].second)); |
} |
+void BluetoothChooserController::RefreshOptions() { |
+ ClearAllDevices(); |
+ event_handler_.Run(content::BluetoothChooser::Event::RESCAN, std::string()); |
+} |
+ |
+base::string16 BluetoothChooserController::GetStatus() const { |
+ return status_text_; |
+} |
+ |
void BluetoothChooserController::Select(size_t index) { |
DCHECK_LT(index, device_names_and_ids_.size()); |
event_handler_.Run(content::BluetoothChooser::Event::SELECTED, |
@@ -80,6 +95,49 @@ void BluetoothChooserController::OpenHelpCenterUrl() const { |
false /* is_renderer_initialized */)); |
} |
+void BluetoothChooserController::UpdateAdapterPresence( |
+ content::BluetoothChooser::AdapterPresence presence) { |
+ ClearAllDevices(); |
+ switch (presence) { |
+ case content::BluetoothChooser::AdapterPresence::ABSENT: |
msw
2016/07/18 23:01:30
Should this case send observer()->AdapterEnabled(f
juncai
2016/07/19 20:42:46
When there is no Bluetooth adapter, the Bluetooth
msw
2016/07/19 22:08:10
Acknowledged.
|
+ break; |
+ case content::BluetoothChooser::AdapterPresence::POWERED_OFF: |
+ no_devices_text_ = l10n_util::GetStringUTF16( |
+ IDS_BLUETOOTH_DEVICE_CHOOSER_NO_DEVICES_FOUND_ADAPTER_OFF_PROMPT); |
+ status_text_ = base::string16(); |
+ if (observer()) |
+ observer()->AdapterEnabled(false /* Bluetooth adapter is truned off */); |
msw
2016/07/18 23:01:30
nit: 'turned'
juncai
2016/07/19 20:42:46
Done.
|
+ break; |
+ case content::BluetoothChooser::AdapterPresence::POWERED_ON: |
+ no_devices_text_ = |
+ l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT); |
+ status_text_ = |
+ l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN); |
+ if (observer()) |
+ observer()->AdapterEnabled(true /* Bluetooth adapter is turned on */); |
+ break; |
+ } |
+} |
+ |
+void BluetoothChooserController::UpdateDiscoveryState( |
+ content::BluetoothChooser::DiscoveryState state) { |
+ switch (state) { |
+ case content::BluetoothChooser::DiscoveryState::DISCOVERING: |
+ status_text_ = |
+ l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING); |
+ if (observer()) |
+ observer()->SetRefreshing(true /* Refreshing options is in progress */); |
+ break; |
+ case content::BluetoothChooser::DiscoveryState::IDLE: |
+ case content::BluetoothChooser::DiscoveryState::FAILED_TO_START: |
+ status_text_ = |
+ l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN); |
+ if (observer()) |
+ observer()->SetRefreshing(false /* Refreshing options is complete*/); |
+ break; |
+ } |
+} |
+ |
void BluetoothChooserController::AddDevice(const std::string& device_id, |
const base::string16& device_name) { |
device_names_and_ids_.push_back(std::make_pair(device_name, device_id)); |
@@ -103,3 +161,8 @@ void BluetoothChooserController::RemoveDevice(const std::string& device_id) { |
} |
} |
} |
+ |
+void BluetoothChooserController::ClearAllDevices() { |
+ device_names_and_ids_.clear(); |
+ device_name_map_.clear(); |
+} |