Loading android/app/jni/com_android_bluetooth_gatt.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -2151,6 +2151,7 @@ static PeriodicAdvertisingParameters parsePeriodicParams(JNIEnv* env, uint16_t interval = env->CallIntMethod(i, methodId); p.enable = true; p.include_adi = false; p.min_interval = interval; p.max_interval = interval + 16; /* 20ms difference betwen min and max */ uint16_t props = 0; Loading Loading @@ -2348,8 +2349,9 @@ static void setPeriodicAdvertisingEnableNative(JNIEnv* env, jobject object, jboolean enable) { if (!sGattIf) return; bool include_adi = false; sGattIf->advertiser->SetPeriodicAdvertisingEnable( advertiser_id, enable, advertiser_id, enable, include_adi, base::Bind(&enablePeriodicSetCb, advertiser_id, enable)); } Loading system/blueberry/facade/hci/le_advertising_manager_facade.proto +1 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ message SetPeriodicDataRequest { message EnablePeriodicAdvertisingRequest { int32 advertiser_id = 1; bool enable = 2; bool include_adi = 3; } message GetOwnAddressRequest { Loading system/blueberry/tests/gd/hci/le_advertising_manager_test.py +22 −21 Original line number Diff line number Diff line Loading @@ -146,8 +146,7 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): own_address_type=common.USE_RANDOM_DEVICE_ADDRESS, channel_map=7, filter_policy=le_advertising_facade.AdvertisingFilterPolicy.ALL_DEVICES) extended_config = le_advertising_facade.ExtendedAdvertisingConfig( advertising_config=config, extended_config = le_advertising_facade.ExtendedAdvertisingConfig(advertising_config=config, connectable=True, scannable=False, directed=False, Loading Loading @@ -210,8 +209,9 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): gap_name.data = list(bytes(b'Im_The_DUT2')) gap_data = le_advertising_facade.GapDataMsg(data=bytes(gap_name.Serialize())) set_data_request = le_advertising_facade.SetDataRequest( advertiser_id=create_response.advertiser_id, set_scan_rsp=False, data=[gap_data]) set_data_request = le_advertising_facade.SetDataRequest(advertiser_id=create_response.advertiser_id, set_scan_rsp=False, data=[gap_data]) self.dut.hci_le_advertising_manager.SetData(set_data_request) assertThat(self.dut.callback_event_stream).emits( Loading @@ -226,8 +226,9 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): gap_name.data = list(bytes(b'Im_The_DUT2')) gap_data = le_advertising_facade.GapDataMsg(data=bytes(gap_name.Serialize())) set_data_request = le_advertising_facade.SetDataRequest( advertiser_id=create_response.advertiser_id, set_scan_rsp=True, data=[gap_data]) set_data_request = le_advertising_facade.SetDataRequest(advertiser_id=create_response.advertiser_id, set_scan_rsp=True, data=[gap_data]) self.dut.hci_le_advertising_manager.SetData(set_data_request) assertThat(self.dut.callback_event_stream).emits( Loading @@ -251,8 +252,8 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): channel_map=7, filter_policy=le_advertising_facade.AdvertisingFilterPolicy.ALL_DEVICES) set_parameters_request = le_advertising_facade.SetParametersRequest( advertiser_id=create_response.advertiser_id, config=config) set_parameters_request = le_advertising_facade.SetParametersRequest(advertiser_id=create_response.advertiser_id, config=config) self.dut.hci_le_advertising_manager.SetParameters(set_parameters_request) assertThat(self.dut.callback_event_stream).emits( Loading Loading @@ -296,7 +297,7 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): self.set_address_policy_with_static_address() create_response = self.create_advertiser() enable_periodic_advertising_request = le_advertising_facade.EnablePeriodicAdvertisingRequest( advertiser_id=create_response.advertiser_id, enable=True) advertiser_id=create_response.advertiser_id, enable=True, include_adi=False) self.dut.hci_le_advertising_manager.EnablePeriodicAdvertising(enable_periodic_advertising_request) assertThat(self.dut.callback_event_stream).emits( Loading system/bta/le_audio/broadcaster/mock_ble_advertising_manager.h +2 −1 Original line number Diff line number Diff line Loading @@ -86,7 +86,8 @@ class MockBleAdvertisingManager : public BleAdvertisingManager { (uint8_t inst_id, std::vector<uint8_t> data, MultiAdvCb cb), (override)); MOCK_METHOD((void), SetPeriodicAdvertisingEnable, (uint8_t inst_id, uint8_t enable, MultiAdvCb cb), (override)); (uint8_t inst_id, bool enable, bool include_adi, MultiAdvCb cb), (override)); MOCK_METHOD((void), Unregister, (uint8_t inst_id), (override)); MOCK_METHOD((void), Suspend, (), (override)); MOCK_METHOD((void), Resume, (), (override)); Loading system/btif/src/btif_ble_advertiser.cc +3 −1 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ void parseParams(tBTM_BLE_ADV_PARAMS* p_params, void parsePeriodicParams(tBLE_PERIODIC_ADV_PARAMS* p_periodic_params, PeriodicAdvertisingParameters periodic_params) { p_periodic_params->enable = periodic_params.enable; p_periodic_params->include_adi = periodic_params.include_adi; p_periodic_params->min_interval = periodic_params.min_interval; p_periodic_params->max_interval = periodic_params.max_interval; p_periodic_params->periodic_advertising_properties = Loading Loading @@ -245,6 +246,7 @@ class BleAdvertiserInterfaceImpl : public BleAdvertiserInterface { } void SetPeriodicAdvertisingEnable(int advertiser_id, bool enable, bool include_adi, StatusCallback cb) override { VLOG(1) << __func__ << " advertiser_id: " << +advertiser_id << " ,enable: " << enable; Loading @@ -253,7 +255,7 @@ class BleAdvertiserInterfaceImpl : public BleAdvertiserInterface { do_in_main_thread(FROM_HERE, Bind(&BleAdvertisingManager::SetPeriodicAdvertisingEnable, BleAdvertisingManager::Get(), advertiser_id, enable, jni_thread_wrapper(FROM_HERE, cb))); include_adi, jni_thread_wrapper(FROM_HERE, cb))); } void RegisterCallbacks(AdvertisingCallbacks* callbacks) { Loading Loading
android/app/jni/com_android_bluetooth_gatt.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -2151,6 +2151,7 @@ static PeriodicAdvertisingParameters parsePeriodicParams(JNIEnv* env, uint16_t interval = env->CallIntMethod(i, methodId); p.enable = true; p.include_adi = false; p.min_interval = interval; p.max_interval = interval + 16; /* 20ms difference betwen min and max */ uint16_t props = 0; Loading Loading @@ -2348,8 +2349,9 @@ static void setPeriodicAdvertisingEnableNative(JNIEnv* env, jobject object, jboolean enable) { if (!sGattIf) return; bool include_adi = false; sGattIf->advertiser->SetPeriodicAdvertisingEnable( advertiser_id, enable, advertiser_id, enable, include_adi, base::Bind(&enablePeriodicSetCb, advertiser_id, enable)); } Loading
system/blueberry/facade/hci/le_advertising_manager_facade.proto +1 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ message SetPeriodicDataRequest { message EnablePeriodicAdvertisingRequest { int32 advertiser_id = 1; bool enable = 2; bool include_adi = 3; } message GetOwnAddressRequest { Loading
system/blueberry/tests/gd/hci/le_advertising_manager_test.py +22 −21 Original line number Diff line number Diff line Loading @@ -146,8 +146,7 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): own_address_type=common.USE_RANDOM_DEVICE_ADDRESS, channel_map=7, filter_policy=le_advertising_facade.AdvertisingFilterPolicy.ALL_DEVICES) extended_config = le_advertising_facade.ExtendedAdvertisingConfig( advertising_config=config, extended_config = le_advertising_facade.ExtendedAdvertisingConfig(advertising_config=config, connectable=True, scannable=False, directed=False, Loading Loading @@ -210,8 +209,9 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): gap_name.data = list(bytes(b'Im_The_DUT2')) gap_data = le_advertising_facade.GapDataMsg(data=bytes(gap_name.Serialize())) set_data_request = le_advertising_facade.SetDataRequest( advertiser_id=create_response.advertiser_id, set_scan_rsp=False, data=[gap_data]) set_data_request = le_advertising_facade.SetDataRequest(advertiser_id=create_response.advertiser_id, set_scan_rsp=False, data=[gap_data]) self.dut.hci_le_advertising_manager.SetData(set_data_request) assertThat(self.dut.callback_event_stream).emits( Loading @@ -226,8 +226,9 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): gap_name.data = list(bytes(b'Im_The_DUT2')) gap_data = le_advertising_facade.GapDataMsg(data=bytes(gap_name.Serialize())) set_data_request = le_advertising_facade.SetDataRequest( advertiser_id=create_response.advertiser_id, set_scan_rsp=True, data=[gap_data]) set_data_request = le_advertising_facade.SetDataRequest(advertiser_id=create_response.advertiser_id, set_scan_rsp=True, data=[gap_data]) self.dut.hci_le_advertising_manager.SetData(set_data_request) assertThat(self.dut.callback_event_stream).emits( Loading @@ -251,8 +252,8 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): channel_map=7, filter_policy=le_advertising_facade.AdvertisingFilterPolicy.ALL_DEVICES) set_parameters_request = le_advertising_facade.SetParametersRequest( advertiser_id=create_response.advertiser_id, config=config) set_parameters_request = le_advertising_facade.SetParametersRequest(advertiser_id=create_response.advertiser_id, config=config) self.dut.hci_le_advertising_manager.SetParameters(set_parameters_request) assertThat(self.dut.callback_event_stream).emits( Loading Loading @@ -296,7 +297,7 @@ class LeAdvertisingManagerTest(gd_base_test.GdBaseTestClass): self.set_address_policy_with_static_address() create_response = self.create_advertiser() enable_periodic_advertising_request = le_advertising_facade.EnablePeriodicAdvertisingRequest( advertiser_id=create_response.advertiser_id, enable=True) advertiser_id=create_response.advertiser_id, enable=True, include_adi=False) self.dut.hci_le_advertising_manager.EnablePeriodicAdvertising(enable_periodic_advertising_request) assertThat(self.dut.callback_event_stream).emits( Loading
system/bta/le_audio/broadcaster/mock_ble_advertising_manager.h +2 −1 Original line number Diff line number Diff line Loading @@ -86,7 +86,8 @@ class MockBleAdvertisingManager : public BleAdvertisingManager { (uint8_t inst_id, std::vector<uint8_t> data, MultiAdvCb cb), (override)); MOCK_METHOD((void), SetPeriodicAdvertisingEnable, (uint8_t inst_id, uint8_t enable, MultiAdvCb cb), (override)); (uint8_t inst_id, bool enable, bool include_adi, MultiAdvCb cb), (override)); MOCK_METHOD((void), Unregister, (uint8_t inst_id), (override)); MOCK_METHOD((void), Suspend, (), (override)); MOCK_METHOD((void), Resume, (), (override)); Loading
system/btif/src/btif_ble_advertiser.cc +3 −1 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ void parseParams(tBTM_BLE_ADV_PARAMS* p_params, void parsePeriodicParams(tBLE_PERIODIC_ADV_PARAMS* p_periodic_params, PeriodicAdvertisingParameters periodic_params) { p_periodic_params->enable = periodic_params.enable; p_periodic_params->include_adi = periodic_params.include_adi; p_periodic_params->min_interval = periodic_params.min_interval; p_periodic_params->max_interval = periodic_params.max_interval; p_periodic_params->periodic_advertising_properties = Loading Loading @@ -245,6 +246,7 @@ class BleAdvertiserInterfaceImpl : public BleAdvertiserInterface { } void SetPeriodicAdvertisingEnable(int advertiser_id, bool enable, bool include_adi, StatusCallback cb) override { VLOG(1) << __func__ << " advertiser_id: " << +advertiser_id << " ,enable: " << enable; Loading @@ -253,7 +255,7 @@ class BleAdvertiserInterfaceImpl : public BleAdvertiserInterface { do_in_main_thread(FROM_HERE, Bind(&BleAdvertisingManager::SetPeriodicAdvertisingEnable, BleAdvertisingManager::Get(), advertiser_id, enable, jni_thread_wrapper(FROM_HERE, cb))); include_adi, jni_thread_wrapper(FROM_HERE, cb))); } void RegisterCallbacks(AdvertisingCallbacks* callbacks) { Loading