Internal fix

PiperOrigin-RevId: 622865759
This commit is contained in:
Hai Shang
2024-04-08 09:18:16 -07:00
committed by Copybara-Service
parent b9184d39ec
commit d2c8fc3cd5
3 changed files with 30 additions and 0 deletions
@@ -231,6 +231,12 @@ bool BleV2::IsAdvertising(const std::string& service_id) const {
return IsAdvertisingLocked(service_id);
}
bool BleV2::IsAdvertisingForLegacyDevice(const std::string& service_id) const {
MutexLock lock(&mutex_);
return IsAdvertisingForLegacyDeviceLocked(service_id);
}
bool BleV2::StartLegacyAdvertising(
const std::string& input_service_id, const std::string& local_endpoint_id,
const std::string& fast_advertisement_service_uuid) {
@@ -621,6 +627,11 @@ bool BleV2::IsAdvertisingLocked(const std::string& service_id) const {
return advertising_infos_.contains(service_id);
}
bool BleV2::IsAdvertisingForLegacyDeviceLocked(
const std::string& service_id) const {
return service_ids_to_advertising_sessions_.contains(service_id + "-Legacy");
}
bool BleV2::IsScanningLocked(const std::string& service_id) const {
if (FeatureFlags::GetInstance()
.GetFlags()
@@ -78,6 +78,9 @@ class BleV2 final {
bool IsAdvertising(const std::string& service_id) const
ABSL_LOCKS_EXCLUDED(mutex_);
bool IsAdvertisingForLegacyDevice(const std::string& service_id) const
ABSL_LOCKS_EXCLUDED(mutex_);
// Use dummy bytes to do ble advertising, only for legacy devices.
// Returns true, if data is successfully set, and false otherwise.
bool StartLegacyAdvertising(
@@ -150,6 +153,11 @@ class BleV2 final {
bool IsAdvertisingLocked(const std::string& service_id) const
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mutex_);
// Same as IsAdvertisingForLegacyDevice(), but must be called with `mutex_`
// held.
bool IsAdvertisingForLegacyDeviceLocked(const std::string& service_id) const
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mutex_);
// Same as IsScanning(), but must be called with `mutex_` held.
bool IsScanningLocked(const std::string& service_id) const
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mutex_);
@@ -592,7 +592,9 @@ TEST_F(BleV2Test, CanStartAndStopLegacyAdvertising) {
ble_a.StartLegacyAdvertising(service_id, std::string(kLocalEndpointId),
std::string(kFastAdvertisementServiceUuid)));
EXPECT_FALSE(ble_a.IsAdvertising(service_id));
EXPECT_TRUE(ble_a.IsAdvertisingForLegacyDevice(service_id));
EXPECT_TRUE(ble_a.StopLegacyAdvertising(service_id));
EXPECT_FALSE(ble_a.IsAdvertisingForLegacyDevice(service_id));
env_.Stop();
}
@@ -607,6 +609,7 @@ TEST_F(BleV2Test, CanNotStartLegacyAdvertisingWhenRadioNotEnabled) {
EXPECT_FALSE(
ble_a.StartLegacyAdvertising(service_id, std::string(kLocalEndpointId),
std::string(kFastAdvertisementServiceUuid)));
EXPECT_FALSE(ble_a.IsAdvertisingForLegacyDevice(service_id));
env_.Stop();
}
@@ -618,11 +621,14 @@ TEST_F(BleV2Test, CanNotStopLegacyAdvertisingForNonExistingServiceId) {
BleV2 ble_a{radio_a};
radio_a.Enable();
std::string service_id(kServiceIDA);
EXPECT_FALSE(ble_a.IsAdvertisingForLegacyDevice(service_id));
EXPECT_FALSE(ble_a.StopLegacyAdvertising(service_id));
EXPECT_TRUE(
ble_a.StartLegacyAdvertising(service_id, std::string(kLocalEndpointId),
std::string(kFastAdvertisementServiceUuid)));
EXPECT_TRUE(ble_a.IsAdvertisingForLegacyDevice(service_id));
EXPECT_TRUE(ble_a.StopLegacyAdvertising(service_id));
EXPECT_FALSE(ble_a.IsAdvertisingForLegacyDevice(service_id));
env_.Stop();
}
@@ -641,6 +647,7 @@ TEST_F(BleV2Test, StartLegacyAdvertisingBlockedByRegularAdvertising) {
EXPECT_FALSE(
ble_a.StartLegacyAdvertising(service_id, std::string(kLocalEndpointId),
std::string(kFastAdvertisementServiceUuid)));
EXPECT_FALSE(ble_a.IsAdvertisingForLegacyDevice(service_id));
ble_a.StopAdvertising(std::string(kServiceIDA));
env_.Stop();
}
@@ -651,13 +658,16 @@ TEST_F(BleV2Test, DuplicateStartLegacyAdvertisingReturnsFalse) {
BleV2 ble_a{radio_a};
radio_a.Enable();
std::string service_id(kServiceIDA);
EXPECT_FALSE(ble_a.IsAdvertisingForLegacyDevice(service_id));
EXPECT_TRUE(
ble_a.StartLegacyAdvertising(service_id, std::string(kLocalEndpointId),
std::string(kFastAdvertisementServiceUuid)));
EXPECT_TRUE(ble_a.IsAdvertisingForLegacyDevice(service_id));
EXPECT_FALSE(
ble_a.StartLegacyAdvertising(service_id, std::string(kLocalEndpointId),
std::string(kFastAdvertisementServiceUuid)));
EXPECT_TRUE(ble_a.StopLegacyAdvertising(service_id));
EXPECT_FALSE(ble_a.IsAdvertisingForLegacyDevice(service_id));
env_.Stop();
}
@@ -678,6 +688,7 @@ TEST_F(BleV2Test, HandleLegacyAdvertising) {
ble_b.StartLegacyAdvertising(std::string(kServiceIDA),
std::string(kLocalEndpointId),
std::string(kFastAdvertisementServiceUuid));
EXPECT_FALSE(ble_a.IsAdvertisingForLegacyDevice(std::string(kServiceIDA)));
std::string legacy_service_id("NearbySharing");
EXPECT_TRUE(ble_a.StartScanning(
legacy_service_id, PowerLevel::kHighPower,