summaryrefslogtreecommitdiff
path: root/system/gd/rust/linux/stack/src
diff options
context:
space:
mode:
authorJesse Melhuish <melhuishj@google.com>2022-02-25 17:30:58 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-02-25 17:30:58 +0000
commit4da5be342b703b01db3916848a095a438b05faa3 (patch)
treee4ade5eb9a5083f62ce9c1cc8940a7ba2af8c2a4 /system/gd/rust/linux/stack/src
parent610ab871a264ab994a4b2f5d3d04023a9300e2f4 (diff)
parentafc8b6471a3fa9304e27f9edb383e4290b8ac64e (diff)
Merge "floss: Refactor BluetoothDevice checks into helper"
Diffstat (limited to 'system/gd/rust/linux/stack/src')
-rw-r--r--system/gd/rust/linux/stack/src/bluetooth.rs49
1 files changed, 23 insertions, 26 deletions
diff --git a/system/gd/rust/linux/stack/src/bluetooth.rs b/system/gd/rust/linux/stack/src/bluetooth.rs
index c3b1d3218f..ef9ea31ae9 100644
--- a/system/gd/rust/linux/stack/src/bluetooth.rs
+++ b/system/gd/rust/linux/stack/src/bluetooth.rs
@@ -373,6 +373,22 @@ impl Bluetooth {
}
};
}
+
+ fn get_remote_device_if_found(
+ &self,
+ device: &BluetoothDevice,
+ ) -> Option<&BluetoothDeviceContext> {
+ self.bonded_devices.get(&device.address).or_else(|| self.found_devices.get(&device.address))
+ }
+
+ fn get_remote_device_property(
+ &self,
+ device: &BluetoothDevice,
+ property_type: &BtPropertyType,
+ ) -> Option<BluetoothProperty> {
+ self.get_remote_device_if_found(&device)
+ .and_then(|d| d.properties.get(property_type).and_then(|p| Some(p.clone())))
+ }
}
#[btif_callbacks_dispatcher(Bluetooth, dispatch_base_callbacks, BaseCallbacks)]
@@ -1055,35 +1071,16 @@ impl IBluetooth for Bluetooth {
}
fn get_remote_uuids(&self, device: BluetoothDevice) -> Vec<Uuid128Bit> {
- // Device must exist in either bonded or found list
- let found = self
- .bonded_devices
- .get(&device.address)
- .or_else(|| self.found_devices.get(&device.address));
-
- // Extract property from the device
- return found
- .and_then(|d| {
- if let Some(u) = d.properties.get(&BtPropertyType::Uuids) {
- match u {
- BluetoothProperty::Uuids(uuids) => {
- return Some(
- uuids.iter().map(|&x| x.uu.clone()).collect::<Vec<Uuid128Bit>>(),
- );
- }
- _ => (),
- }
- }
-
- None
- })
- .unwrap_or(vec![]);
+ match self.get_remote_device_property(&device, &BtPropertyType::Uuids) {
+ Some(BluetoothProperty::Uuids(uuids)) => {
+ return uuids.iter().map(|&x| x.uu.clone()).collect::<Vec<Uuid128Bit>>()
+ }
+ _ => return vec![],
+ }
}
fn fetch_remote_uuids(&self, device: BluetoothDevice) -> bool {
- if !self.bonded_devices.contains_key(&device.address)
- && !self.found_devices.contains_key(&device.address)
- {
+ if self.get_remote_device_if_found(&device).is_none() {
warn!("Won't fetch UUIDs on unknown device {}", device.address);
return false;
}