minor safeguard to ensure call integration ends

This commit is contained in:
Daniel Gultsch 2024-03-25 10:58:20 +01:00
parent 6b5fb6fee6
commit f18ec53233
No known key found for this signature in database
GPG key ID: F43D18AD2A0982C2

View file

@ -498,8 +498,8 @@ public class JingleConnectionManager extends AbstractConnectionManager {
final RtpSessionProposal proposal = final RtpSessionProposal proposal =
getRtpSessionProposal(account, from.asBareJid(), sessionId); getRtpSessionProposal(account, from.asBareJid(), sessionId);
synchronized (rtpSessionProposals) { synchronized (rtpSessionProposals) {
// TODO remove the remove()!= null check to ensure we always call busy() if (proposal != null) {
if (proposal != null && rtpSessionProposals.remove(proposal) != null) { rtpSessionProposals.remove(proposal);
proposal.callIntegration.busy(); proposal.callIntegration.busy();
writeLogMissedOutgoing( writeLogMissedOutgoing(
account, proposal.with, proposal.sessionId, serverMsgId, timestamp); account, proposal.with, proposal.sessionId, serverMsgId, timestamp);
@ -758,7 +758,6 @@ public class JingleConnectionManager extends AbstractConnectionManager {
final RtpSessionProposal proposal = final RtpSessionProposal proposal =
RtpSessionProposal.of(account, with.asBareJid(), media, callIntegration); RtpSessionProposal.of(account, with.asBareJid(), media, callIntegration);
callIntegration.setCallback(new ProposalStateCallback(proposal)); callIntegration.setCallback(new ProposalStateCallback(proposal));
// TODO ensure that there is no previous proposal?!
this.rtpSessionProposals.put(proposal, DeviceDiscoveryState.SEARCHING); this.rtpSessionProposals.put(proposal, DeviceDiscoveryState.SEARCHING);
mXmppConnectionService.notifyJingleRtpConnectionUpdate( mXmppConnectionService.notifyJingleRtpConnectionUpdate(
account, proposal.with, proposal.sessionId, RtpEndUserState.FINDING_DEVICE); account, proposal.with, proposal.sessionId, RtpEndUserState.FINDING_DEVICE);