Index: content/browser/bluetooth/first_device_bluetooth_chooser.cc |
diff --git a/content/browser/bluetooth/first_device_bluetooth_chooser.cc b/content/browser/bluetooth/first_device_bluetooth_chooser.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e265435b4a42b17c1892351e3d203de680bc7786 |
--- /dev/null |
+++ b/content/browser/bluetooth/first_device_bluetooth_chooser.cc |
@@ -0,0 +1,46 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "content/browser/bluetooth/first_device_bluetooth_chooser.h" |
+ |
+namespace content { |
+ |
+FirstDeviceBluetoothChooser::FirstDeviceBluetoothChooser( |
+ const EventHandler& event_handler) |
+ : event_handler_(event_handler) {} |
+ |
+FirstDeviceBluetoothChooser::~FirstDeviceBluetoothChooser() {} |
+ |
+void FirstDeviceBluetoothChooser::SetAdapterPresence(AdapterPresence presence) { |
+ switch (presence) { |
+ case AdapterPresence::ABSENT: |
+ case AdapterPresence::POWERED_OFF: |
+ // Without a user-visible dialog, if the adapter is off, there's no way to |
+ // ask the user to turn it on again, so we should cancel. |
+ event_handler_.Run(Event::CANCELLED, ""); |
+ break; |
+ case AdapterPresence::POWERED_ON: |
+ break; |
+ } |
+} |
+ |
+void FirstDeviceBluetoothChooser::ShowDiscoveryState(DiscoveryState state) { |
+ switch (state) { |
+ case DiscoveryState::FAILED_TO_START: |
+ case DiscoveryState::IDLE: |
+ // Without a user-visible dialog, if discovery finishes without finding a |
+ // device, we'll never find one, so we should cancel. |
+ event_handler_.Run(Event::CANCELLED, ""); |
+ break; |
+ case DiscoveryState::DISCOVERING: |
+ break; |
+ } |
+} |
+ |
+void FirstDeviceBluetoothChooser::AddDevice(const std::string& deviceId, |
+ const base::string16& deviceName) { |
+ event_handler_.Run(Event::SELECTED, deviceId); |
+} |
+ |
+} // namespace content |