mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-16 00:24:51 +02:00
51 lines
1.6 KiB
Java
51 lines
1.6 KiB
Java
package org.mercury_im.xmpp.connection.message;
|
|
|
|
import org.jivesoftware.smack.chat2.Chat;
|
|
import org.jivesoftware.smack.chat2.ChatManager;
|
|
import org.jivesoftware.smack.packet.Message;
|
|
import org.jivesoftware.smackx.sid.element.OriginIdElement;
|
|
import org.mercury_im.core.message.MessageCenter;
|
|
import org.mercury_im.messenger.xmpp.entity.XmppAccount;
|
|
import org.mercury_im.messenger.xmpp.entity.XmppAddress;
|
|
import org.mercury_im.messenger.xmpp.entity.chat.XmppDirectChat;
|
|
import org.mercury_im.messenger.xmpp.entity.message.XmppMessage;
|
|
import org.mercury_im.messenger.xmpp.entity.message.XmppMessageMetadata;
|
|
|
|
import io.reactivex.Completable;
|
|
|
|
public class XmppDirectMessageCenter
|
|
implements MessageCenter<
|
|
XmppMessage.DirectMessage,
|
|
XmppDirectChat,
|
|
XmppAddress.XmppUserAddress,
|
|
XmppMessageMetadata,
|
|
XmppAccount> {
|
|
|
|
|
|
@Override
|
|
public Completable sendMessage(XmppMessage.DirectMessage message, XmppDirectChat chat) {
|
|
ChatManager chatManager = getChatManager(chat);
|
|
|
|
Message smackMessage = new Message();
|
|
smackMessage.setFrom(chat.getAccount().getAddress().getJid());
|
|
smackMessage.setTo(chat.getInterlocutor().getAddress().getJid());
|
|
smackMessage.setType(Message.Type.chat);
|
|
|
|
OriginIdElement.addOriginId(smackMessage);
|
|
|
|
|
|
Chat smackChat = chatManager.chatWith(chat.getInterlocutor().getAddress().getJid());
|
|
return Completable.fromAction(
|
|
() -> smackChat.send(smackMessage));
|
|
}
|
|
|
|
@Override
|
|
public void addIncomingMessageListener() {
|
|
|
|
}
|
|
|
|
protected ChatManager getChatManager(XmppDirectChat chat) {
|
|
return null;
|
|
}
|
|
}
|