]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/Signal.java
update deliveryReceipt to conform
[signal-cli] / src / main / java / org / asamk / Signal.java
1 package org.asamk;
2
3 import org.freedesktop.dbus.DBusPath;
4 import org.freedesktop.dbus.annotations.DBusProperty;
5 import org.freedesktop.dbus.exceptions.DBusException;
6 import org.freedesktop.dbus.exceptions.DBusExecutionException;
7 import org.freedesktop.dbus.interfaces.DBusInterface;
8 import org.freedesktop.dbus.interfaces.Properties;
9 import org.freedesktop.dbus.messages.DBusSignal;
10
11 import java.util.List;
12
13 /**
14 * DBus interface for the org.asamk.Signal service.
15 * Including emitted Signals and returned Errors.
16 */
17 public interface Signal extends DBusInterface {
18
19 String getSelfNumber();
20
21 long sendMessage(
22 String message, List<String> attachments, String recipient
23 ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity;
24
25 long sendMessage(
26 String message, List<String> attachments, List<String> recipients
27 ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity;
28
29 void sendTyping(
30 String recipient, boolean stop
31 ) throws Error.Failure, Error.GroupNotFound, Error.UntrustedIdentity;
32
33 void sendReadReceipt(
34 String recipient, List<Long> messageIds
35 ) throws Error.Failure, Error.UntrustedIdentity;
36
37 void sendViewedReceipt(
38 String recipient, List<Long> messageIds
39 ) throws Error.Failure, Error.UntrustedIdentity;
40
41 long sendRemoteDeleteMessage(
42 long targetSentTimestamp, String recipient
43 ) throws Error.Failure, Error.InvalidNumber;
44
45 long sendRemoteDeleteMessage(
46 long targetSentTimestamp, List<String> recipients
47 ) throws Error.Failure, Error.InvalidNumber;
48
49 long sendGroupRemoteDeleteMessage(
50 long targetSentTimestamp, byte[] groupId
51 ) throws Error.Failure, Error.GroupNotFound, Error.InvalidGroupId;
52
53 long sendMessageReaction(
54 String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, String recipient
55 ) throws Error.InvalidNumber, Error.Failure;
56
57 long sendMessageReaction(
58 String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, List<String> recipients
59 ) throws Error.InvalidNumber, Error.Failure;
60
61 void sendContacts() throws Error.Failure;
62
63 void sendSyncRequest() throws Error.Failure;
64
65 long sendNoteToSelfMessage(
66 String message, List<String> attachments
67 ) throws Error.AttachmentInvalid, Error.Failure;
68
69 void sendEndSessionMessage(List<String> recipients) throws Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity;
70
71 long sendGroupMessage(
72 String message, List<String> attachments, byte[] groupId
73 ) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid, Error.InvalidGroupId;
74
75 long sendGroupMessageReaction(
76 String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, byte[] groupId
77 ) throws Error.GroupNotFound, Error.Failure, Error.InvalidNumber, Error.InvalidGroupId;
78
79 String getContactName(String number) throws Error.InvalidNumber;
80
81 void setContactName(String number, String name) throws Error.InvalidNumber;
82
83 void setExpirationTimer(final String number, final int expiration) throws Error.Failure;
84
85 void setContactBlocked(String number, boolean blocked) throws Error.InvalidNumber;
86
87 void setGroupBlocked(byte[] groupId, boolean blocked) throws Error.GroupNotFound, Error.InvalidGroupId;
88
89 List<byte[]> getGroupIds();
90
91 String getGroupName(byte[] groupId) throws Error.InvalidGroupId;
92
93 List<String> getGroupMembers(byte[] groupId) throws Error.InvalidGroupId;
94
95 byte[] updateGroup(
96 byte[] groupId, String name, List<String> members, String avatar
97 ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.GroupNotFound, Error.InvalidGroupId;
98
99 boolean isRegistered() throws Error.Failure, Error.InvalidNumber;
100
101 boolean isRegistered(String number) throws Error.Failure, Error.InvalidNumber;
102
103 List<Boolean> isRegistered(List<String> numbers) throws Error.Failure, Error.InvalidNumber;
104
105 void addDevice(String uri) throws Error.InvalidUri;
106
107 DBusPath getDevice(long deviceId);
108
109 List<DBusPath> listDevices() throws Error.Failure;
110
111 DBusPath getThisDevice();
112
113 void updateProfile(
114 String givenName,
115 String familyName,
116 String about,
117 String aboutEmoji,
118 String avatarPath,
119 boolean removeAvatar
120 ) throws Error.Failure;
121
122 void updateProfile(
123 String name, String about, String aboutEmoji, String avatarPath, boolean removeAvatar
124 ) throws Error.Failure;
125
126 void removePin();
127
128 void setPin(String registrationLockPin);
129
130 String version();
131
132 List<String> listNumbers();
133
134 List<String> getContactNumber(final String name) throws Error.Failure;
135
136 void quitGroup(final byte[] groupId) throws Error.GroupNotFound, Error.Failure, Error.InvalidGroupId;
137
138 boolean isContactBlocked(final String number) throws Error.InvalidNumber;
139
140 boolean isGroupBlocked(final byte[] groupId) throws Error.InvalidGroupId;
141
142 boolean isMember(final byte[] groupId) throws Error.InvalidGroupId;
143
144 byte[] joinGroup(final String groupLink) throws Error.Failure;
145
146 String uploadStickerPack(String stickerPackPath) throws Error.Failure;
147
148 class MessageReceived extends DBusSignal {
149
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;
155
156 public MessageReceived(
157 String objectpath,
158 long timestamp,
159 String sender,
160 byte[] groupId,
161 String message,
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;
170 }
171
172 public long getTimestamp() {
173 return timestamp;
174 }
175
176 public String getSender() {
177 return sender;
178 }
179
180 public byte[] getGroupId() {
181 return groupId;
182 }
183
184 public String getMessage() {
185 return message;
186 }
187
188 public List<String> getAttachments() {
189 return attachments;
190 }
191 }
192
193 class ReceiptReceived extends DBusSignal {
194
195 private final long timestamp;
196 private final String sender;
197
198 public ReceiptReceived(String objectpath, long timestamp, String sender) throws DBusException {
199 super(objectpath, timestamp, sender);
200 this.timestamp = timestamp;
201 this.sender = sender;
202 }
203
204 public long getTimestamp() {
205 return timestamp;
206 }
207
208 public String getSender() {
209 return sender;
210 }
211 }
212
213 class SyncMessageReceived extends DBusSignal {
214
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;
221
222 public SyncMessageReceived(
223 String objectpath,
224 long timestamp,
225 String source,
226 String destination,
227 byte[] groupId,
228 String message,
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;
238 }
239
240 public long getTimestamp() {
241 return timestamp;
242 }
243
244 public String getSource() {
245 return source;
246 }
247
248 public String getDestination() {
249 return destination;
250 }
251
252 public byte[] getGroupId() {
253 return groupId;
254 }
255
256 public String getMessage() {
257 return message;
258 }
259
260 public List<String> getAttachments() {
261 return attachments;
262 }
263 }
264
265 @DBusProperty(name = "Id", type = Integer.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 {
270
271 void removeDevice() throws Error.Failure;
272 }
273
274 interface Error {
275
276 class AttachmentInvalid extends DBusExecutionException {
277
278 public AttachmentInvalid(final String message) {
279 super(message);
280 }
281 }
282
283 class InvalidUri extends DBusExecutionException {
284
285 public InvalidUri(final String message) {
286 super(message);
287 }
288 }
289
290 class Failure extends DBusExecutionException {
291
292 public Failure(final String message) {
293 super(message);
294 }
295 }
296
297 class GroupNotFound extends DBusExecutionException {
298
299 public GroupNotFound(final String message) {
300 super(message);
301 }
302 }
303
304 class InvalidGroupId extends DBusExecutionException {
305
306 public InvalidGroupId(final String message) {
307 super(message);
308 }
309 }
310
311 class InvalidNumber extends DBusExecutionException {
312
313 public InvalidNumber(final String message) {
314 super(message);
315 }
316 }
317
318 class UntrustedIdentity extends DBusExecutionException {
319
320 public UntrustedIdentity(final String message) {
321 super(message);
322 }
323 }
324 }
325 }