Loading system/bta/dm/bta_dm_act.cc +6 −0 Original line number Original line Diff line number Diff line Loading @@ -4442,6 +4442,12 @@ void bta_dm_set_event_filter_connection_setup_all_devices() { void bta_dm_allow_wake_by_hid( void bta_dm_allow_wake_by_hid( std::vector<RawAddress> classic_hid_devices, std::vector<RawAddress> classic_hid_devices, std::vector<std::pair<RawAddress, uint8_t>> le_hid_devices) { std::vector<std::pair<RawAddress, uint8_t>> le_hid_devices) { // If there are any entries in the classic hid list, we should also make // the adapter connectable for classic. if (classic_hid_devices.size() > 0) { BTM_SetConnectability(BTA_DM_CONN); } bluetooth::shim::BTM_AllowWakeByHid(std::move(classic_hid_devices), bluetooth::shim::BTM_AllowWakeByHid(std::move(classic_hid_devices), std::move(le_hid_devices)); std::move(le_hid_devices)); } } Loading system/gd/rust/linux/stack/src/bluetooth.rs +12 −7 Original line number Original line Diff line number Diff line Loading @@ -712,6 +712,17 @@ impl Bluetooth { Ok(()) Ok(()) } } /// Sets the adapter's connectable mode for classic connections. pub(crate) fn set_connectable_internal(&mut self, mode: bool) -> bool { self.is_connectable = mode; if mode && self.get_discoverable() { return true; } self.intf.lock().unwrap().set_adapter_property(BluetoothProperty::AdapterScanMode( if mode { BtScanMode::Connectable } else { BtScanMode::None_ }, )) == 0 } /// Returns all bonded and connected devices. /// Returns all bonded and connected devices. pub(crate) fn get_bonded_and_connected_devices(&mut self) -> Vec<BluetoothDevice> { pub(crate) fn get_bonded_and_connected_devices(&mut self) -> Vec<BluetoothDevice> { self.bonded_devices self.bonded_devices Loading Loading @@ -2474,13 +2485,7 @@ impl IBluetoothQALegacy for Bluetooth { } } fn set_connectable(&mut self, mode: bool) -> bool { fn set_connectable(&mut self, mode: bool) -> bool { self.is_connectable = mode; self.set_connectable_internal(mode) if mode && self.get_discoverable() { return true; } self.intf.lock().unwrap().set_adapter_property(BluetoothProperty::AdapterScanMode( if mode { BtScanMode::Connectable } else { BtScanMode::None_ }, )) == 0 } } fn get_alias(&self) -> String { fn get_alias(&self) -> String { Loading system/gd/rust/linux/stack/src/suspend.rs +2 −0 Original line number Original line Diff line number Diff line Loading @@ -185,6 +185,7 @@ impl ISuspend for Suspend { // Set suspend event mask // Set suspend event mask self.intf.lock().unwrap().set_default_event_mask_except(MASKED_EVENTS_FOR_SUSPEND, 0u64); self.intf.lock().unwrap().set_default_event_mask_except(MASKED_EVENTS_FOR_SUSPEND, 0u64); self.bt.lock().unwrap().set_connectable_internal(false); self.intf.lock().unwrap().clear_event_filter(); self.intf.lock().unwrap().clear_event_filter(); self.intf.lock().unwrap().clear_filter_accept_list(); self.intf.lock().unwrap().clear_filter_accept_list(); Loading Loading @@ -247,6 +248,7 @@ impl ISuspend for Suspend { self.intf.lock().unwrap().clear_event_filter(); self.intf.lock().unwrap().clear_event_filter(); self.intf.lock().unwrap().clear_filter_accept_list(); self.intf.lock().unwrap().clear_filter_accept_list(); self.intf.lock().unwrap().restore_filter_accept_list(); self.intf.lock().unwrap().restore_filter_accept_list(); self.bt.lock().unwrap().set_connectable_internal(true); if !self.audio_reconnect_list.is_empty() { if !self.audio_reconnect_list.is_empty() { let reconnect_list = self.audio_reconnect_list.clone(); let reconnect_list = self.audio_reconnect_list.clone(); Loading Loading
system/bta/dm/bta_dm_act.cc +6 −0 Original line number Original line Diff line number Diff line Loading @@ -4442,6 +4442,12 @@ void bta_dm_set_event_filter_connection_setup_all_devices() { void bta_dm_allow_wake_by_hid( void bta_dm_allow_wake_by_hid( std::vector<RawAddress> classic_hid_devices, std::vector<RawAddress> classic_hid_devices, std::vector<std::pair<RawAddress, uint8_t>> le_hid_devices) { std::vector<std::pair<RawAddress, uint8_t>> le_hid_devices) { // If there are any entries in the classic hid list, we should also make // the adapter connectable for classic. if (classic_hid_devices.size() > 0) { BTM_SetConnectability(BTA_DM_CONN); } bluetooth::shim::BTM_AllowWakeByHid(std::move(classic_hid_devices), bluetooth::shim::BTM_AllowWakeByHid(std::move(classic_hid_devices), std::move(le_hid_devices)); std::move(le_hid_devices)); } } Loading
system/gd/rust/linux/stack/src/bluetooth.rs +12 −7 Original line number Original line Diff line number Diff line Loading @@ -712,6 +712,17 @@ impl Bluetooth { Ok(()) Ok(()) } } /// Sets the adapter's connectable mode for classic connections. pub(crate) fn set_connectable_internal(&mut self, mode: bool) -> bool { self.is_connectable = mode; if mode && self.get_discoverable() { return true; } self.intf.lock().unwrap().set_adapter_property(BluetoothProperty::AdapterScanMode( if mode { BtScanMode::Connectable } else { BtScanMode::None_ }, )) == 0 } /// Returns all bonded and connected devices. /// Returns all bonded and connected devices. pub(crate) fn get_bonded_and_connected_devices(&mut self) -> Vec<BluetoothDevice> { pub(crate) fn get_bonded_and_connected_devices(&mut self) -> Vec<BluetoothDevice> { self.bonded_devices self.bonded_devices Loading Loading @@ -2474,13 +2485,7 @@ impl IBluetoothQALegacy for Bluetooth { } } fn set_connectable(&mut self, mode: bool) -> bool { fn set_connectable(&mut self, mode: bool) -> bool { self.is_connectable = mode; self.set_connectable_internal(mode) if mode && self.get_discoverable() { return true; } self.intf.lock().unwrap().set_adapter_property(BluetoothProperty::AdapterScanMode( if mode { BtScanMode::Connectable } else { BtScanMode::None_ }, )) == 0 } } fn get_alias(&self) -> String { fn get_alias(&self) -> String { Loading
system/gd/rust/linux/stack/src/suspend.rs +2 −0 Original line number Original line Diff line number Diff line Loading @@ -185,6 +185,7 @@ impl ISuspend for Suspend { // Set suspend event mask // Set suspend event mask self.intf.lock().unwrap().set_default_event_mask_except(MASKED_EVENTS_FOR_SUSPEND, 0u64); self.intf.lock().unwrap().set_default_event_mask_except(MASKED_EVENTS_FOR_SUSPEND, 0u64); self.bt.lock().unwrap().set_connectable_internal(false); self.intf.lock().unwrap().clear_event_filter(); self.intf.lock().unwrap().clear_event_filter(); self.intf.lock().unwrap().clear_filter_accept_list(); self.intf.lock().unwrap().clear_filter_accept_list(); Loading Loading @@ -247,6 +248,7 @@ impl ISuspend for Suspend { self.intf.lock().unwrap().clear_event_filter(); self.intf.lock().unwrap().clear_event_filter(); self.intf.lock().unwrap().clear_filter_accept_list(); self.intf.lock().unwrap().clear_filter_accept_list(); self.intf.lock().unwrap().restore_filter_accept_list(); self.intf.lock().unwrap().restore_filter_accept_list(); self.bt.lock().unwrap().set_connectable_internal(true); if !self.audio_reconnect_list.is_empty() { if !self.audio_reconnect_list.is_empty() { let reconnect_list = self.audio_reconnect_list.clone(); let reconnect_list = self.audio_reconnect_list.clone(); Loading