diff --git a/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java b/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java index d5a72a88..72f16a95 100644 --- a/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java +++ b/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java @@ -835,6 +835,12 @@ public class ManagerImpl implements Manager { String attachment, boolean allowsReplies ) throws IOException, AttachmentInvalidException { + final var file = new File(attachment); + final var mimeType = MimeUtils.getFileMimeType(file); + if (mimeType.isEmpty() || (!mimeType.get().startsWith("image/") && !mimeType.get().startsWith("video/"))) { + throw new AttachmentInvalidException(attachment, + new IOException("Stories only support image and video attachments")); + } final var uploadedAttachment = context.getAttachmentHelper().uploadAttachment(attachment); final var storyMessage = SignalServiceStoryMessage.forFileAttachment(account.getProfileKey().serialize(), null, diff --git a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java index de8df1f8..3de99600 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java @@ -544,7 +544,7 @@ public class DbusManagerImpl implements Manager { @Override public SendMessageResults sendStory(String attachment, boolean allowsReplies) { - return new SendMessageResults(0, Map.of()); + throw new UnsupportedOperationException(); } @Override