String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, List<String> recipients
) throws Error.InvalidNumber, Error.Failure;
+ long sendPaymentNotification(byte[] receipt, String note, String recipient) throws Error.Failure;
+
void sendContacts() throws Error.Failure;
void sendSyncRequest() throws Error.Failure;
DBusPath getDevice(long deviceId);
+ public DBusPath getIdentity(String number);
+
+ public List<StructIdentity> listIdentities();
+
List<StructDevice> listDevices() throws Error.Failure;
DBusPath getThisDevice();
@DBusProperty(name = "PendingMembers", type = String[].class, access = DBusProperty.Access.READ)
@DBusProperty(name = "RequestingMembers", type = String[].class, access = DBusProperty.Access.READ)
@DBusProperty(name = "Admins", type = String[].class, access = DBusProperty.Access.READ)
+ @DBusProperty(name = "Banned", type = String[].class, access = DBusProperty.Access.READ)
@DBusProperty(name = "PermissionAddMember", type = String.class)
@DBusProperty(name = "PermissionEditDetails", type = String.class)
@DBusProperty(name = "PermissionSendMessage", type = String.class)
void enableLink(boolean requiresApproval) throws Error.Failure;
}
+ class StructIdentity extends Struct {
+
+ @Position(0)
+ DBusPath objectPath;
+
+ @Position(1)
+ String uuid;
+
+ @Position(2)
+ String name;
+
+ public StructIdentity(final DBusPath objectPath, final String uuid, final String name) {
+ this.objectPath = objectPath;
+ this.uuid = uuid;
+ this.name = name;
+ }
+
+ public DBusPath getObjectPath() {
+ return objectPath;
+ }
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public String getName() {
+ return name;
+ }
+ }
+
+ @DBusProperty(name = "Number", type = String.class, access = DBusProperty.Access.READ)
+ @DBusProperty(name = "Uuid", type = String.class, access = DBusProperty.Access.READ)
+ @DBusProperty(name = "Fingerprint", type = Byte[].class, access = DBusProperty.Access.READ)
+ @DBusProperty(name = "SafetyNumber", type = String.class, access = DBusProperty.Access.READ)
+ @DBusProperty(name = "TrustLevel", type = String.class, access = DBusProperty.Access.READ)
+ @DBusProperty(name = "AddedDate", type = Integer.class, access = DBusProperty.Access.READ)
+ @DBusProperty(name = "ScannableSafetyNumber", type = Byte[].class, access = DBusProperty.Access.READ)
+ interface Identity extends DBusInterface, Properties {
+
+ void trust() throws Error.Failure;
+
+ void trustVerified(String safetyNumber) throws Error.Failure;
+ }
+
interface Error {
class AttachmentInvalid extends DBusExecutionException {
}
}
+ class NotAGroupMember extends DBusExecutionException {
+
+ public NotAGroupMember(final String message) {
+ super("Not a group member: " + message);
+ }
+ }
+
class InvalidGroupId extends DBusExecutionException {
public InvalidGroupId(final String message) {