JMI: send 'ringing' and receipts only for contacts

Daniel Gultsch created

fixes #110

Change summary

src/main/java/eu/siacs/conversations/parser/MessageParser.java            | 19 
src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java |  4 
2 files changed, 19 insertions(+), 4 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/parser/MessageParser.java 🔗

@@ -849,9 +849,22 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
                             if (serverMsgId == null) {
                                 serverMsgId = extractStanzaId(account, packet);
                             }
-                            mXmppConnectionService.getJingleConnectionManager().deliverMessage(account, packet.getTo(), packet.getFrom(), child, remoteMsgId, serverMsgId, timestamp);
-                            if (!account.getJid().asBareJid().equals(from.asBareJid()) && remoteMsgId != null) {
-                                processMessageReceipts(account, packet, remoteMsgId, query);
+                            mXmppConnectionService
+                                    .getJingleConnectionManager()
+                                    .deliverMessage(
+                                            account,
+                                            packet.getTo(),
+                                            packet.getFrom(),
+                                            child,
+                                            remoteMsgId,
+                                            serverMsgId,
+                                            timestamp);
+                            final Contact contact = account.getRoster().getContact(from);
+                            if (mXmppConnectionService.confirmMessages()
+                                    && !contact.isSelf()
+                                    && remoteMsgId != null
+                                    && contact.showInContactList()) {
+                                processMessageReceipts(account, packet, remoteMsgId, null);
                             }
                         } else if (query.isCatchup()) {
                             if ("propose".equals(action)) {

src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java 🔗

@@ -1505,7 +1505,9 @@ public class JingleRtpConnection extends AbstractJingleConnection
             }
             this.message.setTime(timestamp);
             startRinging();
-            sendJingleMessage("ringing");
+            if (xmppConnectionService.confirmMessages() && id.getContact().showInContactList()) {
+                sendJingleMessage("ringing");
+            }
         } else {
             Log.d(
                     Config.LOGTAG,