don't put conference joins into pending on initial bind
This commit is contained in:
parent
6a0b9971aa
commit
2b9b700c96
|
@ -154,14 +154,6 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
|
||||||
fetchBookmarks(account);
|
fetchBookmarks(account);
|
||||||
sendPresence(account);
|
sendPresence(account);
|
||||||
connectMultiModeConversations(account);
|
connectMultiModeConversations(account);
|
||||||
for (Conversation conversation : account.pendingConferenceLeaves) {
|
|
||||||
leaveMuc(conversation);
|
|
||||||
}
|
|
||||||
account.pendingConferenceLeaves.clear();
|
|
||||||
for (Conversation conversation : account.pendingConferenceJoins) {
|
|
||||||
joinMuc(conversation);
|
|
||||||
}
|
|
||||||
account.pendingConferenceJoins.clear();
|
|
||||||
mMessageArchiveService.executePendingQueries(account);
|
mMessageArchiveService.executePendingQueries(account);
|
||||||
mJingleConnectionManager.cancelInTransmission();
|
mJingleConnectionManager.cancelInTransmission();
|
||||||
syncDirtyContacts(account);
|
syncDirtyContacts(account);
|
||||||
|
@ -273,6 +265,14 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
|
||||||
sendUnsentMessages(conversation);
|
sendUnsentMessages(conversation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (Conversation conversation : account.pendingConferenceLeaves) {
|
||||||
|
leaveMuc(conversation);
|
||||||
|
}
|
||||||
|
account.pendingConferenceLeaves.clear();
|
||||||
|
for (Conversation conversation : account.pendingConferenceJoins) {
|
||||||
|
joinMuc(conversation);
|
||||||
|
}
|
||||||
|
account.pendingConferenceJoins.clear();
|
||||||
scheduleWakeUpCall(Config.PING_MAX_INTERVAL, account.getUuid().hashCode());
|
scheduleWakeUpCall(Config.PING_MAX_INTERVAL, account.getUuid().hashCode());
|
||||||
} else if (account.getStatus() == Account.State.OFFLINE) {
|
} else if (account.getStatus() == Account.State.OFFLINE) {
|
||||||
resetSendingToWaiting(account);
|
resetSendingToWaiting(account);
|
||||||
|
@ -1472,17 +1472,20 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
|
||||||
List<Conversation> conversations = getConversations();
|
List<Conversation> conversations = getConversations();
|
||||||
for (Conversation conversation : conversations) {
|
for (Conversation conversation : conversations) {
|
||||||
if (conversation.getMode() == Conversation.MODE_MULTI && conversation.getAccount() == account) {
|
if (conversation.getMode() == Conversation.MODE_MULTI && conversation.getAccount() == account) {
|
||||||
joinMuc(conversation);
|
joinMuc(conversation,true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void joinMuc(Conversation conversation) {
|
public void joinMuc(Conversation conversation) {
|
||||||
|
joinMuc(conversation,false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void joinMuc(Conversation conversation, boolean now) {
|
||||||
Account account = conversation.getAccount();
|
Account account = conversation.getAccount();
|
||||||
account.pendingConferenceJoins.remove(conversation);
|
account.pendingConferenceJoins.remove(conversation);
|
||||||
account.pendingConferenceLeaves.remove(conversation);
|
account.pendingConferenceLeaves.remove(conversation);
|
||||||
if (account.getStatus() == Account.State.ONLINE) {
|
if (account.getStatus() == Account.State.ONLINE || now) {
|
||||||
conversation.resetMucOptions();
|
conversation.resetMucOptions();
|
||||||
final String nick = conversation.getMucOptions().getProposedNick();
|
final String nick = conversation.getMucOptions().getProposedNick();
|
||||||
final Jid joinJid = conversation.getMucOptions().createJoinJid(nick);
|
final Jid joinJid = conversation.getMucOptions().createJoinJid(nick);
|
||||||
|
|
Loading…
Reference in a new issue