3 import org
.asamk
.signal
.commands
.exceptions
.IOErrorException
;
5 import org
.freedesktop
.dbus
.DBusPath
;
6 import org
.freedesktop
.dbus
.annotations
.DBusProperty
;
7 import org
.freedesktop
.dbus
.exceptions
.DBusException
;
8 import org
.freedesktop
.dbus
.exceptions
.DBusExecutionException
;
9 import org
.freedesktop
.dbus
.interfaces
.DBusInterface
;
10 import org
.freedesktop
.dbus
.interfaces
.Properties
;
11 import org
.freedesktop
.dbus
.messages
.DBusSignal
;
13 import java
.util
.List
;
16 * DBus interface for the org.asamk.Signal service.
17 * Including emitted Signals and returned Errors.
19 public interface Signal
extends DBusInterface
{
21 String
getSelfNumber();
24 String message
, List
<String
> attachments
, String recipient
25 ) throws Error
.AttachmentInvalid
, Error
.Failure
, Error
.InvalidNumber
, Error
.UntrustedIdentity
;
28 String message
, List
<String
> attachments
, List
<String
> recipients
29 ) throws Error
.AttachmentInvalid
, Error
.Failure
, Error
.InvalidNumber
, Error
.UntrustedIdentity
;
32 String recipient
, boolean stop
33 ) throws Error
.Failure
, Error
.GroupNotFound
, Error
.UntrustedIdentity
;
36 String recipient
, List
<Long
> messageIds
37 ) throws Error
.Failure
, Error
.UntrustedIdentity
;
39 long sendRemoteDeleteMessage(
40 long targetSentTimestamp
, String recipient
41 ) throws Error
.Failure
, Error
.InvalidNumber
;
43 long sendRemoteDeleteMessage(
44 long targetSentTimestamp
, List
<String
> recipients
45 ) throws Error
.Failure
, Error
.InvalidNumber
;
47 long sendGroupRemoteDeleteMessage(
48 long targetSentTimestamp
, byte[] groupId
49 ) throws Error
.Failure
, Error
.GroupNotFound
, Error
.InvalidGroupId
;
51 long sendMessageReaction(
52 String emoji
, boolean remove
, String targetAuthor
, long targetSentTimestamp
, String recipient
53 ) throws Error
.InvalidNumber
, Error
.Failure
;
55 long sendMessageReaction(
56 String emoji
, boolean remove
, String targetAuthor
, long targetSentTimestamp
, List
<String
> recipients
57 ) throws Error
.InvalidNumber
, Error
.Failure
;
59 void sendContacts() throws Error
.Failure
;
61 void sendSyncRequest() throws Error
.Failure
;
63 long sendNoteToSelfMessage(
64 String message
, List
<String
> attachments
65 ) throws Error
.AttachmentInvalid
, Error
.Failure
;
67 void sendEndSessionMessage(List
<String
> recipients
) throws Error
.Failure
, Error
.InvalidNumber
, Error
.UntrustedIdentity
;
69 long sendGroupMessage(
70 String message
, List
<String
> attachments
, byte[] groupId
71 ) throws Error
.GroupNotFound
, Error
.Failure
, Error
.AttachmentInvalid
, Error
.InvalidGroupId
;
73 long sendGroupMessageReaction(
74 String emoji
, boolean remove
, String targetAuthor
, long targetSentTimestamp
, byte[] groupId
75 ) throws Error
.GroupNotFound
, Error
.Failure
, Error
.InvalidNumber
, Error
.InvalidGroupId
;
77 String
getContactName(String number
) throws Error
.InvalidNumber
;
79 void setContactName(String number
, String name
) throws Error
.InvalidNumber
;
81 void setExpirationTimer(final String number
, final int expiration
) throws Error
.Failure
;
83 void setContactBlocked(String number
, boolean blocked
) throws Error
.InvalidNumber
;
85 void setGroupBlocked(byte[] groupId
, boolean blocked
) throws Error
.GroupNotFound
, Error
.InvalidGroupId
;
87 List
<byte[]> getGroupIds();
89 String
getGroupName(byte[] groupId
) throws Error
.InvalidGroupId
;
91 List
<String
> getGroupMembers(byte[] groupId
) throws Error
.InvalidGroupId
;
94 byte[] groupId
, String name
, List
<String
> members
, String avatar
95 ) throws Error
.AttachmentInvalid
, Error
.Failure
, Error
.InvalidNumber
, Error
.GroupNotFound
, Error
.InvalidGroupId
;
97 boolean isRegistered() throws Error
.Failure
, Error
.InvalidNumber
;
99 boolean isRegistered(String number
) throws Error
.Failure
, Error
.InvalidNumber
;
101 List
<Boolean
> isRegistered(List
<String
> numbers
) throws Error
.Failure
, Error
.InvalidNumber
;
103 void addDevice(String uri
) throws Error
.InvalidUri
;
105 DBusPath
getDevice(long deviceId
);
107 List
<DBusPath
> listDevices() throws Error
.Failure
;
109 DBusPath
getThisDevice();
118 ) throws Error
.Failure
;
121 String name
, String about
, String aboutEmoji
, String avatarPath
, boolean removeAvatar
122 ) throws Error
.Failure
;
126 void setPin(String registrationLockPin
);
130 List
<String
> listNumbers();
132 List
<String
> getContactNumber(final String name
) throws Error
.Failure
;
134 void quitGroup(final byte[] groupId
) throws Error
.GroupNotFound
, Error
.Failure
, Error
.InvalidGroupId
;
136 boolean isContactBlocked(final String number
) throws Error
.InvalidNumber
;
138 boolean isGroupBlocked(final byte[] groupId
) throws Error
.InvalidGroupId
;
140 boolean isMember(final byte[] groupId
) throws Error
.InvalidGroupId
;
142 byte[] joinGroup(final String groupLink
) throws Error
.Failure
;
144 String
uploadStickerPack(String stickerPackPath
) throws Error
.Failure
;
146 void submitRateLimitChallenge(String challenge
, String captchaString
) throws IOErrorException
;
148 class MessageReceived
extends DBusSignal
{
150 private final long timestamp
;
151 private final String sender
;
152 private final byte[] groupId
;
153 private final String message
;
154 private final List
<String
> attachments
;
156 public MessageReceived(
162 List
<String
> attachments
163 ) throws DBusException
{
164 super(objectpath
, timestamp
, sender
, groupId
, message
, attachments
);
165 this.timestamp
= timestamp
;
166 this.sender
= sender
;
167 this.groupId
= groupId
;
168 this.message
= message
;
169 this.attachments
= attachments
;
172 public long getTimestamp() {
176 public String
getSender() {
180 public byte[] getGroupId() {
184 public String
getMessage() {
188 public List
<String
> getAttachments() {
193 class ReceiptReceived
extends DBusSignal
{
195 private final long timestamp
;
196 private final String sender
;
198 public ReceiptReceived(String objectpath
, long timestamp
, String sender
) throws DBusException
{
199 super(objectpath
, timestamp
, sender
);
200 this.timestamp
= timestamp
;
201 this.sender
= sender
;
204 public long getTimestamp() {
208 public String
getSender() {
213 class SyncMessageReceived
extends DBusSignal
{
215 private final long timestamp
;
216 private final String source
;
217 private final String destination
;
218 private final byte[] groupId
;
219 private final String message
;
220 private final List
<String
> attachments
;
222 public SyncMessageReceived(
229 List
<String
> attachments
230 ) throws DBusException
{
231 super(objectpath
, timestamp
, source
, destination
, groupId
, message
, attachments
);
232 this.timestamp
= timestamp
;
233 this.source
= source
;
234 this.destination
= destination
;
235 this.groupId
= groupId
;
236 this.message
= message
;
237 this.attachments
= attachments
;
240 public long getTimestamp() {
244 public String
getSource() {
248 public String
getDestination() {
252 public byte[] getGroupId() {
256 public String
getMessage() {
260 public List
<String
> getAttachments() {
265 @DBusProperty(name
= "Id", type
= Long
.class, access
= DBusProperty
.Access
.READ
)
266 @DBusProperty(name
= "Name", type
= String
.class)
267 @DBusProperty(name
= "Created", type
= String
.class, access
= DBusProperty
.Access
.READ
)
268 @DBusProperty(name
= "LastSeen", type
= String
.class, access
= DBusProperty
.Access
.READ
)
269 interface Device
extends DBusInterface
, Properties
{
271 void removeDevice() throws Error
.Failure
;
276 class AttachmentInvalid
extends DBusExecutionException
{
278 public AttachmentInvalid(final String message
) {
283 class InvalidUri
extends DBusExecutionException
{
285 public InvalidUri(final String message
) {
290 class Failure
extends DBusExecutionException
{
292 public Failure(final String message
) {
297 class GroupNotFound
extends DBusExecutionException
{
299 public GroupNotFound(final String message
) {
304 class InvalidGroupId
extends DBusExecutionException
{
306 public InvalidGroupId(final String message
) {
311 class InvalidNumber
extends DBusExecutionException
{
313 public InvalidNumber(final String message
) {
318 class UntrustedIdentity
extends DBusExecutionException
{
320 public UntrustedIdentity(final String message
) {