X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/8f4d89e2f7e2658e4b6d28970fa447dff32a0a26..d4838bd646c736a5fe1d40b45aa12be239b01ed3:/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 6e76f4a7..a7832714 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -1,8 +1,13 @@ package org.asamk; +import org.asamk.signal.commands.exceptions.IOErrorException; + +import org.freedesktop.dbus.DBusPath; +import org.freedesktop.dbus.annotations.DBusProperty; import org.freedesktop.dbus.exceptions.DBusException; 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 java.util.List; @@ -13,6 +18,8 @@ import java.util.List; */ public interface Signal extends DBusInterface { + String getSelfNumber(); + long sendMessage( String message, List attachments, String recipient ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity; @@ -21,6 +28,26 @@ public interface Signal extends DBusInterface { String message, List attachments, List recipients ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity; + void sendTyping( + String recipient, boolean stop + ) throws Error.Failure, Error.GroupNotFound, Error.UntrustedIdentity; + + void sendReadReceipt( + String recipient, List messageIds + ) throws Error.Failure, Error.UntrustedIdentity; + + long sendRemoteDeleteMessage( + long targetSentTimestamp, String recipient + ) throws Error.Failure, Error.InvalidNumber; + + long sendRemoteDeleteMessage( + 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; @@ -29,6 +56,10 @@ public interface Signal extends DBusInterface { String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, List recipients ) throws Error.InvalidNumber, Error.Failure; + void sendContacts() throws Error.Failure; + + void sendSyncRequest() throws Error.Failure; + long sendNoteToSelfMessage( String message, List attachments ) throws Error.AttachmentInvalid, Error.Failure; @@ -37,51 +68,82 @@ public interface Signal extends DBusInterface { long sendGroupMessage( String message, List attachments, byte[] groupId - ) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid; + ) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid, Error.InvalidGroupId; long sendGroupMessageReaction( String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, byte[] groupId - ) throws Error.GroupNotFound, Error.Failure, Error.InvalidNumber; + ) throws Error.GroupNotFound, Error.Failure, Error.InvalidNumber, Error.InvalidGroupId; String getContactName(String number) throws Error.InvalidNumber; void setContactName(String number, String name) throws Error.InvalidNumber; + void setExpirationTimer(final String number, final int expiration) throws Error.Failure; + void setContactBlocked(String number, boolean blocked) throws Error.InvalidNumber; - void setGroupBlocked(byte[] groupId, boolean blocked) throws Error.GroupNotFound; + void setGroupBlocked(byte[] groupId, boolean blocked) throws Error.GroupNotFound, Error.InvalidGroupId; List getGroupIds(); - String getGroupName(byte[] groupId); + String getGroupName(byte[] groupId) throws Error.InvalidGroupId; - List getGroupMembers(byte[] groupId); + List getGroupMembers(byte[] groupId) throws Error.InvalidGroupId; byte[] updateGroup( byte[] groupId, String name, List members, String avatar - ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.GroupNotFound; + ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.GroupNotFound, Error.InvalidGroupId; + + boolean isRegistered() throws Error.Failure, Error.InvalidNumber; + + boolean isRegistered(String number) throws Error.Failure, Error.InvalidNumber; + + List isRegistered(List numbers) throws Error.Failure, Error.InvalidNumber; + + void addDevice(String uri) throws Error.InvalidUri; - boolean isRegistered(); + DBusPath getDevice(long deviceId); + + List listDevices() throws Error.Failure; + + DBusPath getThisDevice(); + + void updateProfile( + String givenName, + String familyName, + String about, + String aboutEmoji, + String avatarPath, + boolean removeAvatar + ) throws Error.Failure; void updateProfile( String name, String about, String aboutEmoji, String avatarPath, boolean removeAvatar ) throws Error.Failure; - public String version(); + void removePin(); + + void setPin(String registrationLockPin); + + String version(); + + List listNumbers(); + + List getContactNumber(final String name) throws Error.Failure; - public List listNumbers(); + void quitGroup(final byte[] groupId) throws Error.GroupNotFound, Error.Failure, Error.InvalidGroupId; - public List getContactNumber(final String name) throws Error.Failure; + boolean isContactBlocked(final String number) throws Error.InvalidNumber; - public void quitGroup(final byte[] groupId) throws Error.GroupNotFound, Error.Failure; + boolean isGroupBlocked(final byte[] groupId) throws Error.InvalidGroupId; - public boolean isContactBlocked(final String number); + boolean isMember(final byte[] groupId) throws Error.InvalidGroupId; - public boolean isGroupBlocked(final byte[] groupId); + byte[] joinGroup(final String groupLink) throws Error.Failure; - public boolean isMember(final byte[] groupId); + String uploadStickerPack(String stickerPackPath) throws Error.Failure; - public void joinGroup(final String groupLink) throws Error.Failure; + void submitRateLimitChallenge(String challenge, String captchaString) throws IOErrorException; class MessageReceived extends DBusSignal { @@ -200,6 +262,15 @@ public interface Signal extends DBusInterface { } } + @DBusProperty(name = "Id", type = Integer.class, access = DBusProperty.Access.READ) + @DBusProperty(name = "Name", type = String.class) + @DBusProperty(name = "Created", type = String.class, access = DBusProperty.Access.READ) + @DBusProperty(name = "LastSeen", type = String.class, access = DBusProperty.Access.READ) + interface Device extends DBusInterface, Properties { + + void removeDevice() throws Error.Failure; + } + interface Error { class AttachmentInvalid extends DBusExecutionException { @@ -209,6 +280,13 @@ public interface Signal extends DBusInterface { } } + class InvalidUri extends DBusExecutionException { + + public InvalidUri(final String message) { + super(message); + } + } + class Failure extends DBusExecutionException { public Failure(final String message) { @@ -223,6 +301,13 @@ public interface Signal extends DBusInterface { } } + class InvalidGroupId extends DBusExecutionException { + + public InvalidGroupId(final String message) { + super(message); + } + } + class InvalidNumber extends DBusExecutionException { public InvalidNumber(final String message) {