OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_CONTROLLER_H_ | 5 #ifndef CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_CONTROLLER_H_ |
6 #define CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_CONTROLLER_H_ | 6 #define CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_CONTROLLER_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <string> | 10 #include <string> |
(...skipping 10 matching lines...) Expand all Loading... |
21 // It can be used by WebBluetooth API to get the user's permission to | 21 // It can be used by WebBluetooth API to get the user's permission to |
22 // access a Bluetooth device. It is owned by ChooserBubbleDelegate. | 22 // access a Bluetooth device. It is owned by ChooserBubbleDelegate. |
23 class BluetoothChooserController : public ChooserController { | 23 class BluetoothChooserController : public ChooserController { |
24 public: | 24 public: |
25 explicit BluetoothChooserController( | 25 explicit BluetoothChooserController( |
26 content::RenderFrameHost* owner, | 26 content::RenderFrameHost* owner, |
27 const content::BluetoothChooser::EventHandler& event_handler); | 27 const content::BluetoothChooser::EventHandler& event_handler); |
28 ~BluetoothChooserController() override; | 28 ~BluetoothChooserController() override; |
29 | 29 |
30 // ChooserController: | 30 // ChooserController: |
| 31 bool ShouldShowIconBeforeText() const override; |
31 base::string16 GetNoOptionsText() const override; | 32 base::string16 GetNoOptionsText() const override; |
32 base::string16 GetOkButtonLabel() const override; | 33 base::string16 GetOkButtonLabel() const override; |
33 size_t NumOptions() const override; | 34 size_t NumOptions() const override; |
| 35 int GetSignalStrengthLevel(size_t index) const override; |
34 base::string16 GetOption(size_t index) const override; | 36 base::string16 GetOption(size_t index) const override; |
35 void RefreshOptions() override; | 37 void RefreshOptions() override; |
36 base::string16 GetStatus() const override; | 38 base::string16 GetStatus() const override; |
37 void Select(size_t index) override; | 39 void Select(size_t index) override; |
38 void Cancel() override; | 40 void Cancel() override; |
39 void Close() override; | 41 void Close() override; |
40 void OpenHelpCenterUrl() const override; | 42 void OpenHelpCenterUrl() const override; |
41 | 43 |
42 // Update the state of the Bluetooth adapter. | 44 // Update the state of the Bluetooth adapter. |
43 void OnAdapterPresenceChanged( | 45 void OnAdapterPresenceChanged( |
44 content::BluetoothChooser::AdapterPresence presence); | 46 content::BluetoothChooser::AdapterPresence presence); |
45 | 47 |
46 // Update the Bluetooth discovery state and let the user know whether | 48 // Update the Bluetooth discovery state and let the user know whether |
47 // discovery is happening. | 49 // discovery is happening. |
48 void OnDiscoveryStateChanged(content::BluetoothChooser::DiscoveryState state); | 50 void OnDiscoveryStateChanged(content::BluetoothChooser::DiscoveryState state); |
49 | 51 |
50 // Shows a new device in the chooser or updates its information. | 52 // Shows a new device in the chooser or updates its information. |
| 53 // The range of |signal_strength_level| is -1 to 4 inclusively. |
51 void AddOrUpdateDevice(const std::string& device_id, | 54 void AddOrUpdateDevice(const std::string& device_id, |
52 bool should_update_name, | 55 bool should_update_name, |
53 const base::string16& device_name, | 56 const base::string16& device_name, |
54 bool is_gatt_connected, | 57 bool is_gatt_connected, |
55 bool is_paired, | 58 bool is_paired, |
56 const int8_t* rssi); | 59 int signal_strength_level); |
57 | 60 |
58 // Tells the chooser that a device is no longer available. | 61 // Tells the chooser that a device is no longer available. |
59 void RemoveDevice(const std::string& device_id); | 62 void RemoveDevice(const std::string& device_id); |
60 | 63 |
61 // Called when |event_handler_| is no longer valid and should not be used | 64 // Called when |event_handler_| is no longer valid and should not be used |
62 // any more. | 65 // any more. |
63 void ResetEventHandler(); | 66 void ResetEventHandler(); |
64 | 67 |
65 private: | 68 private: |
| 69 struct BluetoothDeviceInfo { |
| 70 std::string id; |
| 71 int signal_strength_level; |
| 72 }; |
| 73 |
66 // Clears |device_names_and_ids_| and |device_name_counts_|. Called when | 74 // Clears |device_names_and_ids_| and |device_name_counts_|. Called when |
67 // Bluetooth adapter is turned on or off, or when re-scan happens. | 75 // Bluetooth adapter is turned on or off, or when re-scan happens. |
68 void ClearAllDevices(); | 76 void ClearAllDevices(); |
69 | 77 |
70 std::vector<std::string> device_ids_; | 78 std::vector<BluetoothDeviceInfo> devices_; |
71 std::unordered_map<std::string, base::string16> device_id_to_name_map_; | 79 std::unordered_map<std::string, base::string16> device_id_to_name_map_; |
72 // Maps from device name to number of devices with that name. | 80 // Maps from device name to number of devices with that name. |
73 std::unordered_map<base::string16, int> device_name_counts_; | 81 std::unordered_map<base::string16, int> device_name_counts_; |
74 | 82 |
75 content::BluetoothChooser::EventHandler event_handler_; | 83 content::BluetoothChooser::EventHandler event_handler_; |
76 base::string16 no_devices_text_; | 84 base::string16 no_devices_text_; |
77 base::string16 status_text_; | 85 base::string16 status_text_; |
78 | 86 |
79 DISALLOW_COPY_AND_ASSIGN(BluetoothChooserController); | 87 DISALLOW_COPY_AND_ASSIGN(BluetoothChooserController); |
80 }; | 88 }; |
81 | 89 |
82 #endif // CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_CONTROLLER_H_ | 90 #endif // CHROME_BROWSER_UI_BLUETOOTH_BLUETOOTH_CHOOSER_CONTROLLER_H_ |
OLD | NEW |