From 7d0b4ef4e006d8a7d57a65358aa734b859d13885 Mon Sep 17 00:00:00 2001 From: Charlie Boutier Date: Mon, 4 Mar 2024 22:09:41 +0000 Subject: [PATCH] pandora_server: Parse FLAGS into advertising data Bug: 328089785 --- bumble/pandora/host.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bumble/pandora/host.py b/bumble/pandora/host.py index 3f48f46e..f44e7364 100644 --- a/bumble/pandora/host.py +++ b/bumble/pandora/host.py @@ -54,6 +54,8 @@ from pandora import host_pb2 from pandora.host_pb2 import ( NOT_CONNECTABLE, NOT_DISCOVERABLE, + DISCOVERABLE_LIMITED, + DISCOVERABLE_GENERAL, PRIMARY_1M, PRIMARY_CODED, SECONDARY_1M, @@ -69,6 +71,7 @@ from pandora.host_pb2 import ( ConnectResponse, DataTypes, DisconnectRequest, + DiscoverabilityMode, InquiryResponse, PrimaryPhy, ReadLocalAddressResponse, @@ -867,6 +870,16 @@ class HostService(HostServicer): ) ) + flag_map = { + NOT_DISCOVERABLE: 0x00, + DISCOVERABLE_LIMITED: AdvertisingData.LE_LIMITED_DISCOVERABLE_MODE_FLAG, + DISCOVERABLE_GENERAL: AdvertisingData.LE_GENERAL_DISCOVERABLE_MODE_FLAG, + } + + if dt.le_discoverability_mode: + flags = flag_map[dt.le_discoverability_mode] + ad_structures.append((AdvertisingData.FLAGS, flags.to_bytes(1, 'big'))) + return AdvertisingData(ad_structures) def pack_data_types(self, ad: AdvertisingData) -> DataTypes: