switched to direct invites. fixes #284
This commit is contained in:
parent
87aff4c6d8
commit
f9ed76f5e1
|
@ -128,4 +128,14 @@ public class MessageGenerator {
|
||||||
packet.setFrom(conversation.getAccount().getJid());
|
packet.setFrom(conversation.getAccount().getJid());
|
||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MessagePacket invite(Conversation conversation, String contact) {
|
||||||
|
MessagePacket packet = new MessagePacket();
|
||||||
|
packet.setType(MessagePacket.TYPE_NORMAL);
|
||||||
|
packet.setTo(contact);
|
||||||
|
packet.setFrom(conversation.getAccount().getFullJid());
|
||||||
|
Element x = packet.addChild("x", "jabber:x:conference");
|
||||||
|
x.setAttribute("jid", conversation.getContactJid().split("/")[0]);
|
||||||
|
return packet;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,8 +221,8 @@ public class MessageParser extends AbstractParser implements
|
||||||
updateLastseen(packet, account, false);
|
updateLastseen(packet, account, false);
|
||||||
mXmppConnectionService.markMessage(account, fromParts[0], id,
|
mXmppConnectionService.markMessage(account, fromParts[0], id,
|
||||||
Message.STATUS_SEND_RECEIVED);
|
Message.STATUS_SEND_RECEIVED);
|
||||||
} else if (packet.hasChild("x")) {
|
} else if (packet.hasChild("x","http://jabber.org/protocol/muc#user")) {
|
||||||
Element x = packet.findChild("x");
|
Element x = packet.findChild("x","http://jabber.org/protocol/muc#user");
|
||||||
if (x.hasChild("invite")) {
|
if (x.hasChild("invite")) {
|
||||||
Conversation conversation = mXmppConnectionService
|
Conversation conversation = mXmppConnectionService
|
||||||
.findOrCreateConversation(account,
|
.findOrCreateConversation(account,
|
||||||
|
@ -233,6 +233,17 @@ public class MessageParser extends AbstractParser implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if (packet.hasChild("x", "jabber:x:conference")) {
|
||||||
|
Element x = packet.findChild("x", "jabber:x:conference");
|
||||||
|
String jid = x.getAttribute("jid");
|
||||||
|
if (jid!=null) {
|
||||||
|
Conversation conversation = mXmppConnectionService
|
||||||
|
.findOrCreateConversation(account,jid, true);
|
||||||
|
if (!conversation.getMucOptions().online()) {
|
||||||
|
mXmppConnectionService.joinMuc(conversation);
|
||||||
|
mXmppConnectionService.updateConversationUi();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1223,19 +1223,9 @@ public class XmppConnectionService extends Service {
|
||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void inviteToConference(Conversation conversation, String contactJid) {
|
public void invite(Conversation conversation, String contact) {
|
||||||
Account account = conversation.getAccount();
|
MessagePacket packet = mMessageGenerator.invite(conversation, contact);
|
||||||
MessagePacket packet = new MessagePacket();
|
sendMessagePacket(conversation.getAccount(),packet);
|
||||||
packet.setTo(conversation.getContactJid().split("/")[0]);
|
|
||||||
packet.setFrom(account.getFullJid());
|
|
||||||
Element x = new Element("x");
|
|
||||||
x.setAttribute("xmlns", "http://jabber.org/protocol/muc#user");
|
|
||||||
Element invite = new Element("invite");
|
|
||||||
invite.setAttribute("to", contactJid);
|
|
||||||
x.addChild(invite);
|
|
||||||
packet.addChild(x);
|
|
||||||
sendMessagePacket(account,packet);
|
|
||||||
Log.d(LOGTAG,packet.toString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean markMessage(Account account, String recipient, String uuid,
|
public boolean markMessage(Account account, String recipient, String uuid,
|
||||||
|
|
|
@ -349,7 +349,7 @@ public abstract class XmppActivity extends Activity {
|
||||||
String conversationUuid = data.getStringExtra("conversation");
|
String conversationUuid = data.getStringExtra("conversation");
|
||||||
Conversation conversation = xmppConnectionService.findConversationByUuid(conversationUuid);
|
Conversation conversation = xmppConnectionService.findConversationByUuid(conversationUuid);
|
||||||
if (conversation.getMode() == Conversation.MODE_MULTI) {
|
if (conversation.getMode() == Conversation.MODE_MULTI) {
|
||||||
xmppConnectionService.inviteToConference(conversation, contactJid);
|
xmppConnectionService.invite(conversation, contactJid);
|
||||||
}
|
}
|
||||||
Log.d("xmppService","inviting "+contactJid+" to "+conversation.getName(true));
|
Log.d("xmppService","inviting "+contactJid+" to "+conversation.getName(true));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue