X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/cb70209c603e9e1b1c88ee6eefcd64ea6aff9f9d..d9c8711eb0f5391a8f9efaecdef97dc7a7af23e6:/src/main/java/org/asamk/Signal.java diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index 18bdbdb5..35411bd0 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -1,6 +1,5 @@ package org.asamk; -import org.asamk.signal.commands.exceptions.IOErrorException; import org.freedesktop.dbus.DBusPath; import org.freedesktop.dbus.Struct; import org.freedesktop.dbus.annotations.DBusProperty; @@ -10,8 +9,10 @@ import org.freedesktop.dbus.exceptions.DBusExecutionException; import org.freedesktop.dbus.interfaces.DBusInterface; import org.freedesktop.dbus.interfaces.Properties; import org.freedesktop.dbus.messages.DBusSignal; +import org.freedesktop.dbus.types.Variant; import java.util.List; +import java.util.Map; /** * DBus interface for the org.asamk.Signal service. @@ -21,6 +22,10 @@ public interface Signal extends DBusInterface { String getSelfNumber(); + void subscribeReceive(); + + void unsubscribeReceive(); + long sendMessage( String message, List attachments, String recipient ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity; @@ -31,7 +36,7 @@ public interface Signal extends DBusInterface { void sendTyping( String recipient, boolean stop - ) throws Error.Failure, Error.GroupNotFound, Error.UntrustedIdentity; + ) throws Error.Failure, Error.UntrustedIdentity; void sendReadReceipt( String recipient, List messageIds @@ -49,10 +54,6 @@ public interface Signal extends DBusInterface { long targetSentTimestamp, List recipients ) throws Error.Failure, Error.InvalidNumber; - long sendGroupRemoteDeleteMessage( - long targetSentTimestamp, byte[] groupId - ) throws Error.Failure, Error.GroupNotFound, Error.InvalidGroupId; - long sendMessageReaction( String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, String recipient ) throws Error.InvalidNumber, Error.Failure; @@ -71,10 +72,22 @@ public interface Signal extends DBusInterface { void sendEndSessionMessage(List recipients) throws Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity; + void deleteRecipient(final String recipient) throws Error.Failure; + + void deleteContact(final String recipient) throws Error.Failure; + long sendGroupMessage( String message, List attachments, byte[] groupId ) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid, Error.InvalidGroupId; + void sendGroupTyping( + final byte[] groupId, final boolean stop + ) throws Error.Failure, Error.GroupNotFound, Error.UntrustedIdentity; + + long sendGroupRemoteDeleteMessage( + long targetSentTimestamp, byte[] groupId + ) throws Error.Failure, Error.GroupNotFound, Error.InvalidGroupId; + long sendGroupMessageReaction( String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, byte[] groupId ) throws Error.GroupNotFound, Error.Failure, Error.InvalidNumber, Error.InvalidGroupId; @@ -164,7 +177,56 @@ public interface Signal extends DBusInterface { String uploadStickerPack(String stickerPackPath) throws Error.Failure; - void submitRateLimitChallenge(String challenge, String captchaString) throws IOErrorException; + void submitRateLimitChallenge(String challenge, String captchaString) throws Error.Failure; + + void unregister() throws Error.Failure; + + void deleteAccount() throws Error.Failure; + + class MessageReceivedV2 extends DBusSignal { + + private final long timestamp; + private final String sender; + private final byte[] groupId; + private final String message; + private final Map> extras; + + public MessageReceivedV2( + String objectpath, + long timestamp, + String sender, + byte[] groupId, + String message, + final Map> extras + ) throws DBusException { + super(objectpath, timestamp, sender, groupId, message, extras); + this.timestamp = timestamp; + this.sender = sender; + this.groupId = groupId; + this.message = message; + this.extras = extras; + } + + public long getTimestamp() { + return timestamp; + } + + public String getSender() { + return sender; + } + + public byte[] getGroupId() { + return groupId; + } + + public String getMessage() { + return message; + } + + public Map> getExtras() { + return extras; + } + } class MessageReceived extends DBusSignal { @@ -231,6 +293,44 @@ public interface Signal extends DBusInterface { } } + class ReceiptReceivedV2 extends DBusSignal { + + private final long timestamp; + private final String sender; + private final String type; + private final Map> extras; + + public ReceiptReceivedV2( + String objectpath, + long timestamp, + String sender, + final String type, + final Map> extras + ) throws DBusException { + super(objectpath, timestamp, sender, type, extras); + this.timestamp = timestamp; + this.sender = sender; + this.type = type; + this.extras = extras; + } + + public long getTimestamp() { + return timestamp; + } + + public String getSender() { + return sender; + } + + public String getReceiptType() { + return type; + } + + public Map> getExtras() { + return extras; + } + } + class SyncMessageReceived extends DBusSignal { private final long timestamp; @@ -283,6 +383,58 @@ public interface Signal extends DBusInterface { } } + class SyncMessageReceivedV2 extends DBusSignal { + + private final long timestamp; + private final String source; + private final String destination; + private final byte[] groupId; + private final String message; + private final Map> extras; + + public SyncMessageReceivedV2( + String objectpath, + long timestamp, + String source, + String destination, + byte[] groupId, + String message, + final Map> extras + ) throws DBusException { + super(objectpath, timestamp, source, destination, groupId, message, extras); + this.timestamp = timestamp; + this.source = source; + this.destination = destination; + this.groupId = groupId; + this.message = message; + this.extras = extras; + } + + public long getTimestamp() { + return timestamp; + } + + public String getSource() { + return source; + } + + public String getDestination() { + return destination; + } + + public byte[] getGroupId() { + return groupId; + } + + public String getMessage() { + return message; + } + + public Map> getExtras() { + return extras; + } + } + class StructDevice extends Struct { @Position(0) @@ -322,6 +474,12 @@ public interface Signal extends DBusInterface { void removeDevice() throws Error.Failure; } + @DBusProperty(name = "ReadReceipts", type = Boolean.class) + @DBusProperty(name = "UnidentifiedDeliveryIndicators", type = Boolean.class) + @DBusProperty(name = "TypingIndicators", type = Boolean.class) + @DBusProperty(name = "LinkPreviews", type = Boolean.class) + interface Configuration extends DBusInterface, Properties {} + class StructGroup extends Struct { @Position(0)