sent read marker to full jid

This commit is contained in:
iNPUTmice 2014-11-19 17:40:42 +01:00
parent cbf42ee12c
commit e9948f6b84
2 changed files with 10 additions and 9 deletions

View file

@ -119,7 +119,7 @@ public class Conversation extends AbstractEntity {
}
}
public String getLatestMarkableMessageId() {
public Message getLatestMarkableMessage() {
if (this.messages == null) {
return null;
}
@ -129,7 +129,7 @@ public class Conversation extends AbstractEntity {
if (this.messages.get(i).isRead()) {
return null;
} else {
return this.messages.get(i).getRemoteMsgId();
return this.messages.get(i);
}
}
}

View file

@ -85,6 +85,8 @@ import eu.siacs.conversations.xmpp.OnIqPacketReceived;
import eu.siacs.conversations.xmpp.OnMessageAcknowledged;
import eu.siacs.conversations.xmpp.OnStatusChanged;
import eu.siacs.conversations.xmpp.XmppConnection;
import eu.siacs.conversations.xmpp.forms.Data;
import eu.siacs.conversations.xmpp.forms.Field;
import eu.siacs.conversations.xmpp.jid.InvalidJidException;
import eu.siacs.conversations.xmpp.jid.Jid;
import eu.siacs.conversations.xmpp.jingle.JingleConnectionManager;
@ -1844,15 +1846,14 @@ public class XmppConnectionService extends Service {
public void markRead(Conversation conversation, boolean calledByUi) {
mNotificationService.clear(conversation);
String id = conversation.getLatestMarkableMessageId();
final Message markable = conversation.getLatestMarkableMessage();
conversation.markRead();
if (confirmMessages() && id != null && calledByUi) {
Log.d(Config.LOGTAG, conversation.getAccount().getJid().toBareJid()
+ ": sending read marker for " + conversation.getName());
if (confirmMessages() && markable != null && markable.getRemoteMsgId() != null && calledByUi) {
Log.d(Config.LOGTAG, conversation.getAccount().getJid().toBareJid()+ ": sending read marker to " + markable.getCounterpart().toString());
Account account = conversation.getAccount();
final Jid to = conversation.getContactJid();
this.sendMessagePacket(conversation.getAccount(),
mMessageGenerator.confirm(account, to, id));
final Jid to = markable.getCounterpart();
MessagePacket packet = mMessageGenerator.confirm(account, to, markable.getRemoteMsgId());
this.sendMessagePacket(conversation.getAccount(),packet);
}
if (!calledByUi) {
updateConversationUi();