[Nearby Connections] Rename async scanning flag

Renames the enable_ble_v2_async_scanning_advertising flag to just
enable_ble_v2_async_scanning, reflecting that scanning/advertising
can be enabled independently. Work required to add async
advertising is tracked in b/333408829.

PiperOrigin-RevId: 624254277
This commit is contained in:
Daniel Classon
2024-04-12 12:15:21 -07:00
committed by Copybara-Service
parent 535538d5d1
commit 05dac6b184
4 changed files with 21 additions and 32 deletions
+6 -6
View File
@@ -68,7 +68,7 @@ BleV2::~BleV2() {
// Destructor is not taking locks, but methods it is calling are.
if (FeatureFlags::GetInstance()
.GetFlags()
.enable_ble_v2_async_scanning_advertising) {
.enable_ble_v2_async_scanning) {
// If using asynchronous scanning, check the corresponding map.
while (!service_ids_to_scanning_sessions_.empty()) {
StopScanning(service_ids_to_scanning_sessions_.begin()->first);
@@ -361,7 +361,7 @@ bool BleV2::StartScanning(const std::string& service_id, PowerLevel power_level,
if (FeatureFlags::GetInstance()
.GetFlags()
.enable_ble_v2_async_scanning_advertising) {
.enable_ble_v2_async_scanning) {
return StartAsyncScanningLocked(service_id, power_level);
}
@@ -438,7 +438,7 @@ bool BleV2::StopScanning(const std::string& service_id) {
MutexLock lock(&mutex_);
if (FeatureFlags::GetInstance()
.GetFlags()
.enable_ble_v2_async_scanning_advertising) {
.enable_ble_v2_async_scanning) {
return StopAsyncScanningLocked(service_id);
}
@@ -635,7 +635,7 @@ bool BleV2::IsAdvertisingForLegacyDeviceLocked(
bool BleV2::IsScanningLocked(const std::string& service_id) const {
if (FeatureFlags::GetInstance()
.GetFlags()
.enable_ble_v2_async_scanning_advertising) {
.enable_ble_v2_async_scanning) {
// If using asynchronous scanning, check the corresponding map.
auto it = service_ids_to_scanning_sessions_.find(service_id);
return it != service_ids_to_scanning_sessions_.end();
@@ -1039,7 +1039,7 @@ bool BleV2::StartAsyncScanningLocked(absl::string_view service_id,
PowerLevel power_level) {
CHECK(FeatureFlags::GetInstance()
.GetFlags()
.enable_ble_v2_async_scanning_advertising);
.enable_ble_v2_async_scanning);
// Use the asynchronous StartScanning method instead of the synchronous one.
// Note: using FeatureFlags instead of NearbyFlags as there is no Mendel
@@ -1129,7 +1129,7 @@ bool BleV2::StartAsyncScanningLocked(absl::string_view service_id,
bool BleV2::StopAsyncScanningLocked(absl::string_view service_id) {
CHECK(FeatureFlags::GetInstance()
.GetFlags()
.enable_ble_v2_async_scanning_advertising);
.enable_ble_v2_async_scanning);
// If using asynchronous scanning, check the corresponding map.
auto scanning_session = service_ids_to_scanning_sessions_.find(service_id);
if (scanning_session == service_ids_to_scanning_sessions_.end()) {
@@ -581,8 +581,6 @@ TEST_F(BleV2Test, StartScanningDiscoverButNoPeripheralLostAfterStopScanning) {
}
TEST_F(BleV2Test, CanStartAndStopLegacyAdvertising) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}});
env_.Start();
BluetoothRadio radio_a;
BleV2 ble_a{radio_a};
@@ -599,8 +597,6 @@ TEST_F(BleV2Test, CanStartAndStopLegacyAdvertising) {
}
TEST_F(BleV2Test, CanNotStartLegacyAdvertisingWhenRadioNotEnabled) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}});
env_.Start();
BluetoothRadio radio_a;
BleV2 ble_a{radio_a};
@@ -614,8 +610,6 @@ TEST_F(BleV2Test, CanNotStartLegacyAdvertisingWhenRadioNotEnabled) {
}
TEST_F(BleV2Test, CanNotStopLegacyAdvertisingForNonExistingServiceId) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}});
env_.Start();
BluetoothRadio radio_a;
BleV2 ble_a{radio_a};
@@ -673,8 +667,7 @@ TEST_F(BleV2Test, DuplicateStartLegacyAdvertisingReturnsFalse) {
TEST_F(BleV2Test, HandleLegacyAdvertising) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true,
.enable_invoking_legacy_device_discovered_cb = true}});
{FeatureFlags{.enable_invoking_legacy_device_discovered_cb = true}});
env_.Start();
BluetoothRadio radio_a;
BluetoothRadio radio_b;
@@ -712,8 +705,7 @@ TEST_F(BleV2Test, HandleLegacyAdvertising) {
}
TEST_F(BleV2Test, CanStartAsyncScanning) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}});
env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}});
env_.Start();
BluetoothRadio radio_a;
BluetoothRadio radio_b;
@@ -748,8 +740,7 @@ TEST_F(BleV2Test, CanStartAsyncScanning) {
}
TEST_F(BleV2Test, StartAsyncScanningWithPlatformErrors) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}});
env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}});
env_.Start();
BluetoothRadio radio_a;
BluetoothRadio radio_b;
@@ -804,8 +795,7 @@ TEST_F(BleV2Test, StartAsyncScanningWithPlatformErrors) {
}
TEST_F(BleV2Test, StartAsyncScanningDiscoverAndLostPeripheral) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}});
env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}});
env_.Start();
BluetoothRadio radio_a;
BluetoothRadio radio_b;
@@ -854,8 +844,7 @@ TEST_F(BleV2Test, StartAsyncScanningDiscoverAndLostPeripheral) {
TEST_F(BleV2Test,
StartAsyncScanningDiscoverButNoPeripheralLostAfterStopScanning) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}});
env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}});
env_.Start();
BluetoothRadio radio_a;
BluetoothRadio radio_b;
@@ -902,8 +891,7 @@ TEST_F(BleV2Test,
}
TEST_F(BleV2Test, CanStartStopMultipleAsyncScanningWithDifferentServiceIds) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}});
env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}});
env_.Start();
BluetoothRadio radio_scanner;
BluetoothRadio radio_advertiser_a;
@@ -962,8 +950,7 @@ TEST_F(BleV2Test, CanStartStopMultipleAsyncScanningWithDifferentServiceIds) {
}
TEST_F(BleV2Test, StartMultipleAsyncScanningDiscoverAndLostPeripheral) {
env_.SetFeatureFlags(
{FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}});
env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}});
env_.Start();
BluetoothRadio radio_scanner;
BluetoothRadio radio_advertiser_a;
@@ -98,10 +98,11 @@ ServiceControllerRouter::ServiceControllerRouter(bool enable_ble_v2)
NearbyFlags::GetInstance().OverrideBoolFlagValue(
config_package_nearby::nearby_connections_feature::kEnableBleV2,
enable_ble_v2);
// CrOS uses the async methods for Scanning and Advertising, and has
// no support for the sync version of those methods.
// CrOS uses the async signature for Scanning and has no support for the
// sync version.
// TODO(b/333408829): Enable async advertising flag once supported.
const_cast<FeatureFlags&>(FeatureFlags::GetInstance())
.SetFlags({.enable_ble_v2_async_scanning_advertising = true});
.SetFlags({.enable_ble_v2_async_scanning = true});
}
}
+4 -3
View File
@@ -62,9 +62,10 @@ class FeatureFlags {
// requested service id before attempting to connect over rfcomm. SDP fails
// on Windows when connecting to FP service id but the rfcomm is successful.
bool skip_service_discovery_before_connecting_to_rfcomm = false;
// Controls enable or disable the use of async methods for StartScanning,
// StopScanning, StartAdvertising, and StopAdvertising for BLE V2.
bool enable_ble_v2_async_scanning_advertising = false;
// Controls enable or disable the use of async methods for StartScanning
// and StopScanning for BLE V2.
// TODO(b/333408829): Add flag to control async advertising.
bool enable_ble_v2_async_scanning = false;
// Enable legacy device discovered callback being used inside ble v2
// DiscoverPeripheralTracker flow.
bool enable_invoking_legacy_device_discovered_cb = false;