1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-26 08:12:05 +01:00

Merge pull request #234 from vanitasvitae/fixDeliveryReceipts

Make receipts id optional (SMACK-815)
This commit is contained in:
Florian Schmaus 2018-05-06 22:00:47 +02:00 committed by GitHub
commit 779ebd5d69
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 5 deletions

View file

@ -1,6 +1,6 @@
/** /**
* *
* Copyright 2013-2015 the original author or authors * Copyright 2013-2018 the original author or authors
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -22,7 +22,6 @@ import java.util.Map;
import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.ExtensionElement;
import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.provider.EmbeddedExtensionProvider; import org.jivesoftware.smack.provider.EmbeddedExtensionProvider;
import org.jivesoftware.smack.util.StringUtils;
import org.jivesoftware.smack.util.XmlStringBuilder; import org.jivesoftware.smack.util.XmlStringBuilder;
/** /**
@ -41,9 +40,14 @@ public class DeliveryReceipt implements ExtensionElement {
private final String id; private final String id;
public DeliveryReceipt(String id) { public DeliveryReceipt(String id) {
this.id = StringUtils.requireNotNullOrEmpty(id, "id must not be null"); this.id = id;
} }
/**
* Get the id of the message that has been delivered.
*
* @return id of the delivered message or {@code null}.
*/
public String getId() { public String getId() {
return id; return id;
} }
@ -61,7 +65,7 @@ public class DeliveryReceipt implements ExtensionElement {
@Override @Override
public XmlStringBuilder toXML(String enclosingNamespace) { public XmlStringBuilder toXML(String enclosingNamespace) {
XmlStringBuilder xml = new XmlStringBuilder(this); XmlStringBuilder xml = new XmlStringBuilder(this);
xml.attribute("id", id); xml.optAttribute("id", id);
xml.closeEmptyElement(); xml.closeEmptyElement();
return xml; return xml;
} }

View file

@ -35,7 +35,8 @@ public interface ReceiptReceivedListener {
* *
* @param fromJid the jid that send this receipt * @param fromJid the jid that send this receipt
* @param toJid the jid which received this receipt * @param toJid the jid which received this receipt
* @param receiptId the message ID of the stanza which has been received and this receipt is for * @param receiptId the message ID of the stanza which has been received and this receipt is for.
* This might be {@code null}.
* @param receipt the receipt * @param receipt the receipt
*/ */
void onReceiptReceived(Jid fromJid, Jid toJid, String receiptId, Stanza receipt); void onReceiptReceived(Jid fromJid, Jid toJid, String receiptId, Stanza receipt);