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

Unified Diff: content/browser/bluetooth/bluetooth_device_chooser_controller.cc

Issue 2245603003: Add signal strength indicator icon to WebBluetooth chooser on non-Mac desktops (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/bluetooth/bluetooth_device_chooser_controller.cc
diff --git a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
index dc4842b2dad2da78247315e3658014f4e3e3da7f..c891441f64fa9f852390276824acc70625c0bfd5 100644
--- a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
+++ b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
@@ -26,6 +26,17 @@
using device::BluetoothUUID;
+namespace {
+
+// Anything worse than or equal to this will show 0 bars.
+const int kMinRSSI = -100;
+// Anything better than or equal to this will show the maximum bars.
+const int kMaxRSSI = -55;
+// Number of RSSI levels used in the signal strength image.
+const int kNumSignalStrengthLevels = 5;
+
+} // namespace
+
namespace content {
bool BluetoothDeviceChooserController::use_test_scan_duration_ = false;
@@ -340,13 +351,13 @@ void BluetoothDeviceChooserController::GetDevice(
void BluetoothDeviceChooserController::AddFilteredDevice(
const device::BluetoothDevice& device) {
if (chooser_.get() && MatchesFilters(device, options_->filters)) {
+ base::Optional<int8_t> rssi = device.GetInquiryRSSI();
chooser_->AddOrUpdateDevice(
device.GetAddress(), !!device.GetName() /* should_update_name */,
device.GetNameForDisplay(),
// TODO(http://crbug.com/543466): Show connection and paired status.
false /* is_gatt_connected */, false /* is_paired */,
- // TODO(http://crbug.com/629689): Add signal strength indicator.
- nullptr /* rssi */);
+ rssi ? &rssi.value() : nullptr);
ortuno 2016/08/19 23:07:24 Would it make sense to pass the level here directl
juncai 2016/08/19 23:16:23 That needs to change the BluetoothChooser's interf
juncai 2016/08/19 23:58:42 Actually now I think that doing it in this patch s
Jeffrey Yasskin 2016/08/20 00:03:29 Thanks. That should remove some awkward dependenci
juncai 2016/08/20 01:17:02 Done.
}
}
@@ -370,6 +381,19 @@ void BluetoothDeviceChooserController::AdapterPoweredChanged(bool powered) {
}
}
+int BluetoothDeviceChooserController::CalculateSignalStrengthLevel(
+ int8_t rssi) {
+ if (rssi <= kMinRSSI)
+ return 0;
+
+ if (rssi >= kMaxRSSI)
+ return kNumSignalStrengthLevels - 1;
+
+ double input_range = kMaxRSSI - kMinRSSI;
+ double output_range = kNumSignalStrengthLevels - 1;
+ return static_cast<int>((rssi - kMinRSSI) * output_range / input_range);
+}
+
void BluetoothDeviceChooserController::SetTestScanDurationForTesting() {
BluetoothDeviceChooserController::use_test_scan_duration_ = true;
}

Powered by Google App Engine
This is Rietveld 408576698