Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc22a91f authored by Jesse Melhuish's avatar Jesse Melhuish Committed by Automerger Merge Worker
Browse files

Floss: Populate UUID field of all SDP records am: 54d43ce1 am: acb6184a...

Floss: Populate UUID field of all SDP records am: 54d43ce1 am: acb6184a am: cb32ab1a am: 3426ebdc

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/2532399



Change-Id: I0d6c11958dff9738f47ea9867b2545a7958c5199
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 66cf4eb3 3426ebdc
Loading
Loading
Loading
Loading
+19 −2
Original line number Original line Diff line number Diff line
@@ -2370,7 +2370,7 @@ impl BtifSdpCallbacks for Bluetooth {
        _count: i32,
        _count: i32,
        records: Vec<BtSdpRecord>,
        records: Vec<BtSdpRecord>,
    ) {
    ) {
        let uuid = match UuidHelper::from_string(uuid.to_string()) {
        let uuid_to_send = match UuidHelper::from_string(uuid.to_string()) {
            Some(uu) => uu,
            Some(uu) => uu,
            None => return,
            None => return,
        };
        };
@@ -2378,8 +2378,25 @@ impl BtifSdpCallbacks for Bluetooth {
            Some(info) => info,
            Some(info) => info,
            None => BluetoothDevice::new(address.to_string(), "".to_string()),
            None => BluetoothDevice::new(address.to_string(), "".to_string()),
        };
        };

        // The SDP records we get back do not populate the UUID so we populate it ourselves before
        // sending them on.
        let mut records = records;
        records.iter_mut().for_each(|record| {
            match record {
                BtSdpRecord::HeaderOverlay(header) => header.uuid = uuid.clone(),
                BtSdpRecord::MapMas(record) => record.hdr.uuid = uuid.clone(),
                BtSdpRecord::MapMns(record) => record.hdr.uuid = uuid.clone(),
                BtSdpRecord::PbapPse(record) => record.hdr.uuid = uuid.clone(),
                BtSdpRecord::PbapPce(record) => record.hdr.uuid = uuid.clone(),
                BtSdpRecord::OppServer(record) => record.hdr.uuid = uuid.clone(),
                BtSdpRecord::SapServer(record) => record.hdr.uuid = uuid.clone(),
                BtSdpRecord::Dip(record) => record.hdr.uuid = uuid.clone(),
                BtSdpRecord::Mps(record) => record.hdr.uuid = uuid.clone(),
            };
        });
        self.callbacks.for_all_callbacks(|callback| {
        self.callbacks.for_all_callbacks(|callback| {
            callback.on_sdp_search_complete(device_info.clone(), uuid, records.clone());
            callback.on_sdp_search_complete(device_info.clone(), uuid_to_send, records.clone());
        });
        });
        debug!(
        debug!(
            "Sdp search result found: Status({:?}) Address({:?}) Uuid({:?})",
            "Sdp search result found: Status({:?}) Address({:?}) Uuid({:?})",