]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/Signal.java
Dbus get/setConfiguration methods
[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 long sendRemoteDeleteMessage(
38 long targetSentTimestamp, String recipient
39 ) throws Error.Failure, Error.InvalidNumber;
40
41 long sendRemoteDeleteMessage(
42 long targetSentTimestamp, List<String> recipients
43 ) throws Error.Failure, Error.InvalidNumber;
44
45 long sendGroupRemoteDeleteMessage(
46 long targetSentTimestamp, byte[] groupId
47 ) throws Error.Failure, Error.GroupNotFound, Error.InvalidGroupId;
48
49 long sendMessageReaction(
50 String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, String recipient
51 ) throws Error.InvalidNumber, Error.Failure;
52
53 long sendMessageReaction(
54 String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, List<String> recipients
55 ) throws Error.InvalidNumber, Error.Failure;
56
57 void sendContacts() throws Error.Failure;
58
59 void sendSyncRequest() throws Error.Failure;
60
61 long sendNoteToSelfMessage(
62 String message, List<String> attachments
63 ) throws Error.AttachmentInvalid, Error.Failure;
64
65 void sendEndSessionMessage(List<String> recipients) throws Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity;
66
67 long sendGroupMessage(
68 String message, List<String> attachments, byte[] groupId
69 ) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid, Error.InvalidGroupId;
70
71 long sendGroupMessageReaction(
72 String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, byte[] groupId
73 ) throws Error.GroupNotFound, Error.Failure, Error.InvalidNumber, Error.InvalidGroupId;
74
75 String getContactName(String number) throws Error.InvalidNumber;
76
77 void setContactName(String number, String name) throws Error.InvalidNumber;
78
79 void setExpirationTimer(final String number, final int expiration) throws Error.Failure;
80
81 void setContactBlocked(String number, boolean blocked) throws Error.InvalidNumber;
82
83 void setGroupBlocked(byte[] groupId, boolean blocked) throws Error.GroupNotFound, Error.InvalidGroupId;
84
85 List<byte[]> getGroupIds();
86
87 String getGroupName(byte[] groupId) throws Error.InvalidGroupId;
88
89 List<String> getGroupMembers(byte[] groupId) throws Error.InvalidGroupId;
90
91 byte[] updateGroup(
92 byte[] groupId, String name, List<String> members, String avatar
93 ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.GroupNotFound, Error.InvalidGroupId;
94
95 boolean isRegistered() throws Error.Failure, Error.InvalidNumber;
96
97 boolean isRegistered(String number) throws Error.Failure, Error.InvalidNumber;
98
99 List<Boolean> isRegistered(List<String> numbers) throws Error.Failure, Error.InvalidNumber;
100
101 void addDevice(String uri) throws Error.InvalidUri;
102
103 DBusPath getDevice(long deviceId);
104
105 List<DBusPath> listDevices() throws Error.Failure;
106
107 DBusPath getThisDevice();
108
109 void updateProfile(
110 String givenName,
111 String familyName,
112 String about,
113 String aboutEmoji,
114 String avatarPath,
115 boolean removeAvatar
116 ) throws Error.Failure;
117
118 void updateProfile(
119 String name, String about, String aboutEmoji, String avatarPath, boolean removeAvatar
120 ) throws Error.Failure;
121
122 void removePin();
123
124 void setPin(String registrationLockPin);
125
126 String version();
127
128 List<String> listNumbers();
129
130 List<String> getContactNumber(final String name) throws Error.Failure;
131
132 void quitGroup(final byte[] groupId) throws Error.GroupNotFound, Error.Failure, Error.InvalidGroupId;
133
134 boolean isContactBlocked(final String number) throws Error.InvalidNumber;
135
136 boolean isGroupBlocked(final byte[] groupId) throws Error.InvalidGroupId;
137
138 boolean isMember(final byte[] groupId) throws Error.InvalidGroupId;
139
140 byte[] joinGroup(final String groupLink) throws Error.Failure;
141
142 String uploadStickerPack(String stickerPackPath) throws Error.Failure;
143
144 void setConfiguration(boolean readReceipts, boolean unidentifiedDeliveryIndicators, boolean typingIndicators, boolean linkPreviews) throws Error.IOError, Error.UserError;
145
146 List<Boolean> getConfiguration();
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 class IOError extends DBusExecutionException {
326
327 public IOError(final String message) {
328 super(message);
329 }
330 }
331
332 class UserError extends DBusExecutionException {
333
334 public UserError(final String message) {
335 super(message);
336 }
337 }
338 }
339 }