Merge branch 'development' of https://github.com/siacs/Conversations into development

This commit is contained in:
kruks23 2014-05-16 22:49:52 +02:00
commit 9b95b07b97
3 changed files with 27 additions and 20 deletions

View File

@ -269,11 +269,15 @@ public class Conversation extends AbstractEntity {
return false; return false;
} else { } else {
String foreignPresence = this.otrSession.getSessionID().getUserID(); String foreignPresence = this.otrSession.getSessionID().getUserID();
if (!getContact().getPresences().containsKey(foreignPresence)) { if (getContact()==null) {
this.resetOtrSession(); return true;
return false; } else {
if (!getContact().getPresences().containsKey(foreignPresence)) {
this.resetOtrSession();
return false;
}
return true;
} }
return true;
} }
} }

View File

@ -112,7 +112,11 @@ public class MessageParser {
} }
String counterPart = fromParts[1]; String counterPart = fromParts[1];
if (counterPart.equals(conversation.getMucOptions().getNick())) { if (counterPart.equals(conversation.getMucOptions().getNick())) {
status = Message.STATUS_SEND; if (mXmppConnectionService.markMessage(conversation, packet.getId(), Message.STATUS_SEND)) {
return null;
} else {
status = Message.STATUS_SEND;
}
} else { } else {
status = Message.STATUS_RECIEVED; status = Message.STATUS_RECIEVED;
} }

View File

@ -10,14 +10,12 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Random; import java.util.Random;
import org.openintents.openpgp.OpenPgpError;
import org.openintents.openpgp.util.OpenPgpApi; import org.openintents.openpgp.util.OpenPgpApi;
import org.openintents.openpgp.util.OpenPgpServiceConnection; import org.openintents.openpgp.util.OpenPgpServiceConnection;
import net.java.otr4j.OtrException; import net.java.otr4j.OtrException;
import net.java.otr4j.session.Session; import net.java.otr4j.session.Session;
import net.java.otr4j.session.SessionStatus; import net.java.otr4j.session.SessionStatus;
import eu.siacs.conversations.R;
import eu.siacs.conversations.crypto.PgpEngine; import eu.siacs.conversations.crypto.PgpEngine;
import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.Contact;
@ -47,7 +45,6 @@ import eu.siacs.conversations.xmpp.OnStatusChanged;
import eu.siacs.conversations.xmpp.OnTLSExceptionReceived; import eu.siacs.conversations.xmpp.OnTLSExceptionReceived;
import eu.siacs.conversations.xmpp.XmppConnection; import eu.siacs.conversations.xmpp.XmppConnection;
import eu.siacs.conversations.xmpp.jingle.JingleConnectionManager; import eu.siacs.conversations.xmpp.jingle.JingleConnectionManager;
import eu.siacs.conversations.xmpp.jingle.JingleFile;
import eu.siacs.conversations.xmpp.jingle.OnJinglePacketReceived; import eu.siacs.conversations.xmpp.jingle.OnJinglePacketReceived;
import eu.siacs.conversations.xmpp.jingle.stanzas.JinglePacket; import eu.siacs.conversations.xmpp.jingle.stanzas.JinglePacket;
import eu.siacs.conversations.xmpp.stanzas.IqPacket; import eu.siacs.conversations.xmpp.stanzas.IqPacket;
@ -788,11 +785,11 @@ public class XmppConnectionService extends Service {
// don't encrypt // don't encrypt
if (message.getConversation().getMode() == Conversation.MODE_SINGLE) { if (message.getConversation().getMode() == Conversation.MODE_SINGLE) {
message.setStatus(Message.STATUS_SEND); message.setStatus(Message.STATUS_SEND);
saveInDb = true;
addToConversation = true;
} }
packet = prepareMessagePacket(account, message, null); packet = prepareMessagePacket(account, message, null);
send = true; send = true;
saveInDb = true;
addToConversation = true;
} }
} }
} else { } else {
@ -1481,21 +1478,23 @@ public class XmppConnectionService extends Service {
public boolean markMessage(Account account, String recipient, String uuid, public boolean markMessage(Account account, String recipient, String uuid,
int status) { int status) {
boolean marked = false;
for (Conversation conversation : getConversations()) { for (Conversation conversation : getConversations()) {
if (conversation.getContactJid().equals(recipient) if (conversation.getContactJid().equals(recipient)
&& conversation.getAccount().equals(account)) { && conversation.getAccount().equals(account)) {
for (Message message : conversation.getMessages()) { return markMessage(conversation, uuid, status);
if (message.getUuid().equals(uuid)) {
markMessage(message, status);
marked = true;
break;
}
}
break;
} }
} }
return marked; return false;
}
public boolean markMessage(Conversation conversation, String uuid, int status) {
for (Message message : conversation.getMessages()) {
if (message.getUuid().equals(uuid)) {
markMessage(message, status);
return true;
}
}
return false;
} }
public void markMessage(Message message, int status) { public void markMessage(Message message, int status) {