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
;
11 import java
.util
.List
;
14 * DBus interface for the org.asamk.Signal service.
15 * Including emitted Signals and returned Errors.
17 public interface Signal
extends DBusInterface
{
19 String
getSelfNumber();
22 String message
, List
<String
> attachments
, String recipient
23 ) throws Error
.AttachmentInvalid
, Error
.Failure
, Error
.InvalidNumber
, Error
.UntrustedIdentity
;
26 String message
, List
<String
> attachments
, List
<String
> recipients
27 ) throws Error
.AttachmentInvalid
, Error
.Failure
, Error
.InvalidNumber
, Error
.UntrustedIdentity
;
30 String recipient
, boolean stop
31 ) throws Error
.Failure
, Error
.GroupNotFound
, Error
.UntrustedIdentity
;
34 String recipient
, List
<Long
> messageIds
35 ) throws Error
.Failure
, Error
.UntrustedIdentity
;
37 long sendRemoteDeleteMessage(
38 long targetSentTimestamp
, String recipient
39 ) throws Error
.Failure
, Error
.InvalidNumber
;
41 long sendRemoteDeleteMessage(
42 long targetSentTimestamp
, List
<String
> recipients
43 ) throws Error
.Failure
, Error
.InvalidNumber
;
45 long sendGroupRemoteDeleteMessage(
46 long targetSentTimestamp
, byte[] groupId
47 ) throws Error
.Failure
, Error
.GroupNotFound
, Error
.InvalidGroupId
;
49 long sendMessageReaction(
50 String emoji
, boolean remove
, String targetAuthor
, long targetSentTimestamp
, String recipient
51 ) throws Error
.InvalidNumber
, Error
.Failure
;
53 long sendMessageReaction(
54 String emoji
, boolean remove
, String targetAuthor
, long targetSentTimestamp
, List
<String
> recipients
55 ) throws Error
.InvalidNumber
, Error
.Failure
;
57 void sendContacts() throws Error
.Failure
;
59 void sendSyncRequest() throws Error
.Failure
;
61 long sendNoteToSelfMessage(
62 String message
, List
<String
> attachments
63 ) throws Error
.AttachmentInvalid
, Error
.Failure
;
65 void sendEndSessionMessage(List
<String
> recipients
) throws Error
.Failure
, Error
.InvalidNumber
, Error
.UntrustedIdentity
;
67 long sendGroupMessage(
68 String message
, List
<String
> attachments
, byte[] groupId
69 ) throws Error
.GroupNotFound
, Error
.Failure
, Error
.AttachmentInvalid
, Error
.InvalidGroupId
;
71 long sendGroupMessageReaction(
72 String emoji
, boolean remove
, String targetAuthor
, long targetSentTimestamp
, byte[] groupId
73 ) throws Error
.GroupNotFound
, Error
.Failure
, Error
.InvalidNumber
, Error
.InvalidGroupId
;
75 String
getContactName(String number
) throws Error
.InvalidNumber
;
77 void setContactName(String number
, String name
) throws Error
.InvalidNumber
;
79 void setExpirationTimer(final String number
, final int expiration
) throws Error
.Failure
;
81 void setContactBlocked(String number
, boolean blocked
) throws Error
.InvalidNumber
;
83 void setGroupBlocked(byte[] groupId
, boolean blocked
) throws Error
.GroupNotFound
, Error
.InvalidGroupId
;
85 List
<byte[]> getGroupIds();
87 String
getGroupName(byte[] groupId
) throws Error
.InvalidGroupId
;
89 List
<String
> getGroupMembers(byte[] groupId
) throws Error
.InvalidGroupId
;
92 byte[] groupId
, String name
, List
<String
> members
, String avatar
93 ) throws Error
.AttachmentInvalid
, Error
.Failure
, Error
.InvalidNumber
, Error
.GroupNotFound
, Error
.InvalidGroupId
;
95 boolean isRegistered() throws Error
.Failure
, Error
.InvalidNumber
;
97 boolean isRegistered(String number
) throws Error
.Failure
, Error
.InvalidNumber
;
99 List
<Boolean
> isRegistered(List
<String
> numbers
) throws Error
.Failure
, Error
.InvalidNumber
;
101 void addDevice(String uri
) throws Error
.InvalidUri
;
103 DBusPath
getDevice(long deviceId
);
105 List
<DBusPath
> listDevices() throws Error
.Failure
;
107 DBusPath
getThisDevice();
116 ) throws Error
.Failure
;
119 String name
, String about
, String aboutEmoji
, String avatarPath
, boolean removeAvatar
120 ) throws Error
.Failure
;
124 void setPin(String registrationLockPin
);
128 List
<String
> listNumbers();
130 List
<String
> getContactNumber(final String name
) throws Error
.Failure
;
132 void quitGroup(final byte[] groupId
) throws Error
.GroupNotFound
, Error
.Failure
, Error
.InvalidGroupId
;
134 boolean isContactBlocked(final String number
) throws Error
.InvalidNumber
;
136 boolean isGroupBlocked(final byte[] groupId
) throws Error
.InvalidGroupId
;
138 boolean isMember(final byte[] groupId
) throws Error
.InvalidGroupId
;
140 byte[] joinGroup(final String groupLink
) throws Error
.Failure
;
142 String
uploadStickerPack(String stickerPackPath
) throws Error
.Failure
;
144 class MessageReceived
extends DBusSignal
{
146 private final long timestamp
;
147 private final String sender
;
148 private final byte[] groupId
;
149 private final String message
;
150 private final List
<String
> attachments
;
152 public MessageReceived(
158 List
<String
> attachments
159 ) throws DBusException
{
160 super(objectpath
, timestamp
, sender
, groupId
, message
, attachments
);
161 this.timestamp
= timestamp
;
162 this.sender
= sender
;
163 this.groupId
= groupId
;
164 this.message
= message
;
165 this.attachments
= attachments
;
168 public long getTimestamp() {
172 public String
getSender() {
176 public byte[] getGroupId() {
180 public String
getMessage() {
184 public List
<String
> getAttachments() {
189 class ReceiptReceived
extends DBusSignal
{
191 private final long timestamp
;
192 private final String sender
;
194 public ReceiptReceived(String objectpath
, long timestamp
, String sender
) throws DBusException
{
195 super(objectpath
, timestamp
, sender
);
196 this.timestamp
= timestamp
;
197 this.sender
= sender
;
200 public long getTimestamp() {
204 public String
getSender() {
209 class SyncMessageReceived
extends DBusSignal
{
211 private final long timestamp
;
212 private final String source
;
213 private final String destination
;
214 private final byte[] groupId
;
215 private final String message
;
216 private final List
<String
> attachments
;
218 public SyncMessageReceived(
225 List
<String
> attachments
226 ) throws DBusException
{
227 super(objectpath
, timestamp
, source
, destination
, groupId
, message
, attachments
);
228 this.timestamp
= timestamp
;
229 this.source
= source
;
230 this.destination
= destination
;
231 this.groupId
= groupId
;
232 this.message
= message
;
233 this.attachments
= attachments
;
236 public long getTimestamp() {
240 public String
getSource() {
244 public String
getDestination() {
248 public byte[] getGroupId() {
252 public String
getMessage() {
256 public List
<String
> getAttachments() {
261 @DBusProperty(name
= "Id", type
= Integer
.class, access
= DBusProperty
.Access
.READ
)
262 @DBusProperty(name
= "Name", type
= String
.class)
263 @DBusProperty(name
= "Created", type
= String
.class, access
= DBusProperty
.Access
.READ
)
264 @DBusProperty(name
= "LastSeen", type
= String
.class, access
= DBusProperty
.Access
.READ
)
265 interface Device
extends DBusInterface
, Properties
{
267 void removeDevice() throws Error
.Failure
;
272 class AttachmentInvalid
extends DBusExecutionException
{
274 public AttachmentInvalid(final String message
) {
279 class InvalidUri
extends DBusExecutionException
{
281 public InvalidUri(final String message
) {
286 class Failure
extends DBusExecutionException
{
288 public Failure(final String message
) {
293 class GroupNotFound
extends DBusExecutionException
{
295 public GroupNotFound(final String message
) {
300 class InvalidGroupId
extends DBusExecutionException
{
302 public InvalidGroupId(final String message
) {
307 class InvalidNumber
extends DBusExecutionException
{
309 public InvalidNumber(final String message
) {
314 class UntrustedIdentity
extends DBusExecutionException
{
316 public UntrustedIdentity(final String message
) {