Search in sources :

Example 6 with MessagePacket

use of de.pixart.messenger.xmpp.stanzas.MessagePacket in project Pix-Art-Messenger by kriztan.

the class XmppConnectionService method sendChatState.

public void sendChatState(Conversation conversation) {
    if (sendChatStates()) {
        MessagePacket packet = mMessageGenerator.generateChatState(conversation);
        sendMessagePacket(conversation.getAccount(), packet);
    }
}
Also used : MessagePacket(de.pixart.messenger.xmpp.stanzas.MessagePacket)

Example 7 with MessagePacket

use of de.pixart.messenger.xmpp.stanzas.MessagePacket in project Pix-Art-Messenger by kriztan.

the class MessageGenerator method preparePacket.

private MessagePacket preparePacket(Message message) {
    Conversation conversation = message.getConversation();
    Account account = conversation.getAccount();
    MessagePacket packet = new MessagePacket();
    final boolean isWithSelf = conversation.getContact().isSelf();
    if (conversation.getMode() == Conversation.MODE_SINGLE) {
        packet.setTo(message.getCounterpart());
        packet.setType(MessagePacket.TYPE_CHAT);
        if (this.mXmppConnectionService.indicateReceived() && !isWithSelf) {
            packet.addChild("request", "urn:xmpp:receipts");
        }
    } else if (message.getType() == Message.TYPE_PRIVATE) {
        packet.setTo(message.getCounterpart());
        packet.setType(MessagePacket.TYPE_CHAT);
        packet.addChild("x", "http://jabber.org/protocol/muc#user");
        if (this.mXmppConnectionService.indicateReceived()) {
            packet.addChild("request", "urn:xmpp:receipts");
        }
    } else {
        packet.setTo(message.getCounterpart().toBareJid());
        packet.setType(MessagePacket.TYPE_GROUPCHAT);
    }
    if (conversation.isSingleOrPrivateAndNonAnonymous() && message.getType() != Message.TYPE_PRIVATE) {
        packet.addChild("markable", "urn:xmpp:chat-markers:0");
    }
    packet.setFrom(account.getJid());
    packet.setId(message.getUuid());
    packet.addChild("origin-id", Namespace.STANZA_IDS).setAttribute("id", message.getUuid());
    if (message.edited()) {
        packet.addChild("replace", "urn:xmpp:message-correct:0").setAttribute("id", message.getEditedId());
    }
    return packet;
}
Also used : MessagePacket(de.pixart.messenger.xmpp.stanzas.MessagePacket) Account(de.pixart.messenger.entities.Account) Conversation(de.pixart.messenger.entities.Conversation)

Example 8 with MessagePacket

use of de.pixart.messenger.xmpp.stanzas.MessagePacket in project Pix-Art-Messenger by kriztan.

the class MessageGenerator method generateChatState.

public MessagePacket generateChatState(Conversation conversation) {
    final Account account = conversation.getAccount();
    MessagePacket packet = new MessagePacket();
    packet.setType(conversation.getMode() == Conversation.MODE_MULTI ? MessagePacket.TYPE_GROUPCHAT : MessagePacket.TYPE_CHAT);
    packet.setTo(conversation.getJid().toBareJid());
    packet.setFrom(account.getJid());
    packet.addChild(ChatState.toElement(conversation.getOutgoingChatState()));
    packet.addChild("no-store", "urn:xmpp:hints");
    // wrong! don't copy this. Its *store*
    packet.addChild("no-storage", "urn:xmpp:hints");
    return packet;
}
Also used : MessagePacket(de.pixart.messenger.xmpp.stanzas.MessagePacket) Account(de.pixart.messenger.entities.Account)

Example 9 with MessagePacket

use of de.pixart.messenger.xmpp.stanzas.MessagePacket in project Pix-Art-Messenger by kriztan.

the class MessageGenerator method generateKeyTransportMessage.

public MessagePacket generateKeyTransportMessage(Jid to, XmppAxolotlMessage axolotlMessage) {
    MessagePacket packet = new MessagePacket();
    packet.setType(MessagePacket.TYPE_CHAT);
    packet.setTo(to);
    packet.setAxolotlMessage(axolotlMessage.toElement());
    packet.addChild("store", "urn:xmpp:hints");
    return packet;
}
Also used : MessagePacket(de.pixart.messenger.xmpp.stanzas.MessagePacket)

Example 10 with MessagePacket

use of de.pixart.messenger.xmpp.stanzas.MessagePacket in project Pix-Art-Messenger by kriztan.

the class MessageGenerator method generateOtrChat.

public MessagePacket generateOtrChat(Message message) {
    Session otrSession = message.getConversation().getOtrSession();
    if (otrSession == null) {
        return null;
    }
    MessagePacket packet = preparePacket(message);
    addMessageHints(packet);
    try {
        String content;
        if (message.hasFileOnRemoteHost()) {
            content = message.getFileParams().url.toString();
        } else {
            content = message.getBody();
        }
        packet.setBody(otrSession.transformSending(content)[0]);
        packet.addChild("encryption", "urn:xmpp:eme:0").setAttribute("namespace", "urn:xmpp:otr:0");
        return packet;
    } catch (OtrException e) {
        return null;
    }
}
Also used : MessagePacket(de.pixart.messenger.xmpp.stanzas.MessagePacket) OtrException(net.java.otr4j.OtrException) Session(net.java.otr4j.session.Session)

Aggregations

MessagePacket (de.pixart.messenger.xmpp.stanzas.MessagePacket)32 Element (de.pixart.messenger.xml.Element)8 Account (de.pixart.messenger.entities.Account)6 Conversation (de.pixart.messenger.entities.Conversation)6 XmppAxolotlMessage (de.pixart.messenger.crypto.axolotl.XmppAxolotlMessage)5 Message (de.pixart.messenger.entities.Message)5 InvalidJidException (de.pixart.messenger.xmpp.jid.InvalidJidException)5 Jid (de.pixart.messenger.xmpp.jid.Jid)5 AbstractAcknowledgeableStanza (de.pixart.messenger.xmpp.stanzas.AbstractAcknowledgeableStanza)3 Session (net.java.otr4j.session.Session)3 MucOptions (de.pixart.messenger.entities.MucOptions)2 ReceiptRequest (de.pixart.messenger.entities.ReceiptRequest)2 Tag (de.pixart.messenger.xml.Tag)2 RequestPacket (de.pixart.messenger.xmpp.stanzas.streammgmt.RequestPacket)2 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2 OtrException (net.java.otr4j.OtrException)2 Bundle (android.os.Bundle)1 Bookmark (de.pixart.messenger.entities.Bookmark)1 Contact (de.pixart.messenger.entities.Contact)1