Allow null body for message

Stephen Paul Weber created

Be careful with this, but can at least be used for sending

Change summary

src/main/java/eu/siacs/conversations/entities/Message.java               | 3 
src/main/java/eu/siacs/conversations/generator/MessageGenerator.java     | 2 
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 2 
3 files changed, 2 insertions(+), 5 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Message.java 🔗

@@ -531,9 +531,6 @@ public class Message extends AbstractEntity implements AvatarService.Avatarable
     }
 
     public synchronized void setBody(String body) {
-        if (body == null) {
-            throw new Error("You should not set the message body to null");
-        }
         this.body = body;
         this.isGeoUri = null;
         this.isEmojisOnly = null;

src/main/java/eu/siacs/conversations/generator/MessageGenerator.java 🔗

@@ -120,7 +120,7 @@ public class MessageGenerator extends AbstractGenerator {
 
             packet.addChild("x", Namespace.OOB).addChild("url").setContent(fileParams.url);
         }
-        packet.setBody(message.getQuoteableBody());
+        if (message.getQuoteableBody() != null) packet.setBody(message.getQuoteableBody());
         return packet;
     }
 

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -1636,7 +1636,7 @@ public class XmppConnectionService extends Service {
         }
 
         MessagePacket packet = null;
-        final boolean addToConversation = !message.edited();
+        final boolean addToConversation = !message.edited() && message.getQuoteableBody() != null;
         boolean saveInDb = addToConversation;
         message.setStatus(Message.STATUS_WAITING);