Loading system/gd/rust/linux/stack/src/bluetooth_media.rs +36 −59 Original line number Diff line number Diff line Loading @@ -1062,6 +1062,10 @@ impl BluetoothMedia { self.phone_state_change("".into()); } HfpCallbacks::CallHold(command, addr) => { if !self.mps_qualification_enabled { self.simple_at_response(false, addr); return; } let success = match command { CallHoldCommand::ReleaseHeld => self.release_held_impl(), CallHoldCommand::ReleaseActiveAcceptHeld => { Loading @@ -1076,7 +1080,6 @@ impl BluetoothMedia { if success { // Success means the call state has changed. Inform libbluetooth. self.phone_state_change("".into()); self.uhid_send_input_report(&addr); } else { warn!( "[{}]: Unexpected or unsupported CHLD command {:?} from HF", Loading Loading @@ -2019,35 +2022,24 @@ impl BluetoothMedia { } fn release_held_impl(&mut self) -> bool { if !(self.phone_ops_enabled || self.mps_qualification_enabled) { if !self.mps_qualification_enabled { return false; } if self.mps_qualification_enabled { if self.phone_state.state != CallState::Idle { return false; } self.call_list.retain(|x| x.state != CallState::Held); self.phone_state.num_held = 0; } else if self.phone_ops_enabled { if self.phone_state.state == CallState::Incoming { self.call_list.retain(|x| x.state != CallState::Incoming); self.phone_state.state = CallState::Idle; } else { return false; } } true } fn release_active_accept_held_impl(&mut self) -> bool { if !(self.phone_ops_enabled || self.mps_qualification_enabled) { if !self.mps_qualification_enabled { return false; } self.call_list.retain(|x| x.state != CallState::Active); self.phone_state.num_active = 0; // Activate the first held call if self.mps_qualification_enabled { if self.phone_state.state != CallState::Idle { return false; } Loading @@ -2059,25 +2051,13 @@ impl BluetoothMedia { break; } } } else if self.phone_ops_enabled { for c in self.call_list.iter_mut() { if c.state == CallState::Incoming && self.phone_state.state == CallState::Incoming { c.state = CallState::Active; self.phone_state.num_active += 1; self.phone_state.state = CallState::Idle; break; } } } true } fn hold_active_accept_held_impl(&mut self) -> bool { if !(self.phone_ops_enabled || self.mps_qualification_enabled) { if !self.mps_qualification_enabled { return false; } if self.mps_qualification_enabled { if self.phone_state.state != CallState::Idle { return false; } Loading @@ -2098,9 +2078,6 @@ impl BluetoothMedia { _ => {} } } } else if self.phone_ops_enabled { return false; } true } Loading Loading
system/gd/rust/linux/stack/src/bluetooth_media.rs +36 −59 Original line number Diff line number Diff line Loading @@ -1062,6 +1062,10 @@ impl BluetoothMedia { self.phone_state_change("".into()); } HfpCallbacks::CallHold(command, addr) => { if !self.mps_qualification_enabled { self.simple_at_response(false, addr); return; } let success = match command { CallHoldCommand::ReleaseHeld => self.release_held_impl(), CallHoldCommand::ReleaseActiveAcceptHeld => { Loading @@ -1076,7 +1080,6 @@ impl BluetoothMedia { if success { // Success means the call state has changed. Inform libbluetooth. self.phone_state_change("".into()); self.uhid_send_input_report(&addr); } else { warn!( "[{}]: Unexpected or unsupported CHLD command {:?} from HF", Loading Loading @@ -2019,35 +2022,24 @@ impl BluetoothMedia { } fn release_held_impl(&mut self) -> bool { if !(self.phone_ops_enabled || self.mps_qualification_enabled) { if !self.mps_qualification_enabled { return false; } if self.mps_qualification_enabled { if self.phone_state.state != CallState::Idle { return false; } self.call_list.retain(|x| x.state != CallState::Held); self.phone_state.num_held = 0; } else if self.phone_ops_enabled { if self.phone_state.state == CallState::Incoming { self.call_list.retain(|x| x.state != CallState::Incoming); self.phone_state.state = CallState::Idle; } else { return false; } } true } fn release_active_accept_held_impl(&mut self) -> bool { if !(self.phone_ops_enabled || self.mps_qualification_enabled) { if !self.mps_qualification_enabled { return false; } self.call_list.retain(|x| x.state != CallState::Active); self.phone_state.num_active = 0; // Activate the first held call if self.mps_qualification_enabled { if self.phone_state.state != CallState::Idle { return false; } Loading @@ -2059,25 +2051,13 @@ impl BluetoothMedia { break; } } } else if self.phone_ops_enabled { for c in self.call_list.iter_mut() { if c.state == CallState::Incoming && self.phone_state.state == CallState::Incoming { c.state = CallState::Active; self.phone_state.num_active += 1; self.phone_state.state = CallState::Idle; break; } } } true } fn hold_active_accept_held_impl(&mut self) -> bool { if !(self.phone_ops_enabled || self.mps_qualification_enabled) { if !self.mps_qualification_enabled { return false; } if self.mps_qualification_enabled { if self.phone_state.state != CallState::Idle { return false; } Loading @@ -2098,9 +2078,6 @@ impl BluetoothMedia { _ => {} } } } else if self.phone_ops_enabled { return false; } true } Loading