resend session proposal on rebind
This commit is contained in:
parent
6cab0ad496
commit
db447f845e
|
@ -344,7 +344,7 @@ public class XmppConnectionService extends Service {
|
||||||
synchronized (account.inProgressConferencePings) {
|
synchronized (account.inProgressConferencePings) {
|
||||||
account.inProgressConferencePings.clear();
|
account.inProgressConferencePings.clear();
|
||||||
}
|
}
|
||||||
mJingleConnectionManager.notifyRebound();
|
mJingleConnectionManager.notifyRebound(account);
|
||||||
mQuickConversationsService.considerSyncBackground(false);
|
mQuickConversationsService.considerSyncBackground(false);
|
||||||
fetchRosterFromServer(account);
|
fetchRosterFromServer(account);
|
||||||
|
|
||||||
|
@ -370,6 +370,7 @@ public class XmppConnectionService extends Service {
|
||||||
}
|
}
|
||||||
connectMultiModeConversations(account);
|
connectMultiModeConversations(account);
|
||||||
syncDirtyContacts(account);
|
syncDirtyContacts(account);
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
private final AtomicLong mLastExpiryRun = new AtomicLong(0);
|
private final AtomicLong mLastExpiryRun = new AtomicLong(0);
|
||||||
|
|
|
@ -364,7 +364,7 @@ public class JingleConnectionManager extends AbstractConnectionManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": retrieved out of order jingle message"+message);
|
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": retrieved out of order jingle message" + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -605,7 +605,6 @@ public class JingleConnectionManager extends AbstractConnectionManager {
|
||||||
RtpEndUserState.FINDING_DEVICE
|
RtpEndUserState.FINDING_DEVICE
|
||||||
);
|
);
|
||||||
final MessagePacket messagePacket = mXmppConnectionService.getMessageGenerator().sessionProposal(proposal);
|
final MessagePacket messagePacket = mXmppConnectionService.getMessageGenerator().sessionProposal(proposal);
|
||||||
Log.d(Config.LOGTAG, messagePacket.toString());
|
|
||||||
mXmppConnectionService.sendMessagePacket(account, messagePacket);
|
mXmppConnectionService.sendMessagePacket(account, messagePacket);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -657,10 +656,11 @@ public class JingleConnectionManager extends AbstractConnectionManager {
|
||||||
account.getXmppConnection().sendIqPacket(packet.generateResponse(IqPacket.TYPE.ERROR), null);
|
account.getXmppConnection().sendIqPacket(packet.generateResponse(IqPacket.TYPE.ERROR), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notifyRebound() {
|
public void notifyRebound(final Account account) {
|
||||||
for (final AbstractJingleConnection connection : this.connections.values()) {
|
for (final AbstractJingleConnection connection : this.connections.values()) {
|
||||||
connection.notifyRebound();
|
connection.notifyRebound();
|
||||||
}
|
}
|
||||||
|
resendSessionProposals(account);
|
||||||
}
|
}
|
||||||
|
|
||||||
public WeakReference<JingleRtpConnection> findJingleRtpConnection(Account account, Jid with, String sessionId) {
|
public WeakReference<JingleRtpConnection> findJingleRtpConnection(Account account, Jid with, String sessionId) {
|
||||||
|
@ -672,6 +672,19 @@ public class JingleConnectionManager extends AbstractConnectionManager {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void resendSessionProposals(final Account account) {
|
||||||
|
synchronized (this.rtpSessionProposals) {
|
||||||
|
for (final Map.Entry<RtpSessionProposal, DeviceDiscoveryState> entry : this.rtpSessionProposals.entrySet()) {
|
||||||
|
final RtpSessionProposal proposal = entry.getKey();
|
||||||
|
if (entry.getValue() == DeviceDiscoveryState.SEARCHING && proposal.account == account) {
|
||||||
|
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": resending session proposal to " + proposal.with);
|
||||||
|
final MessagePacket messagePacket = mXmppConnectionService.getMessageGenerator().sessionProposal(proposal);
|
||||||
|
mXmppConnectionService.sendMessagePacket(account, messagePacket);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void updateProposedSessionDiscovered(Account account, Jid from, String sessionId, final DeviceDiscoveryState target) {
|
public void updateProposedSessionDiscovered(Account account, Jid from, String sessionId, final DeviceDiscoveryState target) {
|
||||||
synchronized (this.rtpSessionProposals) {
|
synchronized (this.rtpSessionProposals) {
|
||||||
final RtpSessionProposal sessionProposal = getRtpSessionProposal(account, from.asBareJid(), sessionId);
|
final RtpSessionProposal sessionProposal = getRtpSessionProposal(account, from.asBareJid(), sessionId);
|
||||||
|
|
Loading…
Reference in a new issue