* identities : Array of structs (objectPath, id, name)
** objectPath : DBusPath representing the identity object path
** uuid : Internal uuid of the identity
-** number : Phone number of the identity (or uuid if not known)
+** number : Phone number of the identity
Lists all know identities
getIdentity(Number<s>) -> identityPath<o>::
-* Number : Phone number
+* Number : Phone number
* identityPath : DBusPath object for the identity
Gets the identity Dbus path for a given phone number
trust() -> <>::
-Establish trust with the given identity. TrustLevel will become TRUSTED_UNVERFIED
+Establish trust with the given identity.
+TrustLevel will become TRUSTED_UNVERFIED
Exceptions: Failure
trustVerified(SafetyNumber<s>) -> <>::
-Establish trust with the given identity using their safety number. TrustLevel will become TRUSTED_VERIFIED
+Establish trust with the given identity using their safety number.
+TrustLevel will become TRUSTED_VERIFIED
Exceptions: Failure
String uuid;
@Position(2)
- String name;
+ String number;
- public StructIdentity(final DBusPath objectPath, final String uuid, final String name) {
+ public StructIdentity(final DBusPath objectPath, final String uuid, final String number) {
this.objectPath = objectPath;
this.uuid = uuid;
- this.name = name;
+ this.number = number;
}
public DBusPath getObjectPath() {
return uuid;
}
- public String getName() {
- return name;
+ public String getNumber() {
+ return number;
}
}
final var object = new DbusSignalIdentityImpl(i);
exportObject(object);
this.identities.add(new StructIdentity(new DBusPath(object.getObjectPath()),
- emptyIfNull(i.recipient().getIdentifier()),
- i.recipient().getLegacyIdentifier()));
+ i.recipient().uuid().map(UUID::toString).orElse(""),
+ i.recipient().number().orElse("")));
});
}
@Override
public DBusPath getIdentity(String number) throws Error.Failure {
-
- final var found = identities.stream().filter(identity -> identity.getName().equals(number)).findFirst();
+ final var found = identities.stream()
+ .filter(identity -> identity.getNumber().equals(number) || identity.getUuid().equals(number))
+ .findFirst();
if (found.isEmpty()) {
- throw new Error.Failure("Identity for " + number + " unkown");
+ throw new Error.Failure("Identity for " + number + " unknown");
}
return found.get().getObjectPath();
}
List.of(new DbusProperty<>("Number", () -> identity.recipient().number().orElse("")),
new DbusProperty<>("Uuid",
() -> identity.recipient().uuid().map(UUID::toString).orElse("")),
- new DbusProperty<>("Fingerprint", () -> identity.getFingerprint()),
+ new DbusProperty<>("Fingerprint", identity::getFingerprint),
new DbusProperty<>("SafetyNumber", identity::safetyNumber),
new DbusProperty<>("ScannableSafetyNumber", identity::scannableSafetyNumber),
new DbusProperty<>("TrustLevel", identity::trustLevel),
public class DbusSignalConfigurationImpl extends DbusProperties implements Signal.Configuration {
- public DbusSignalConfigurationImpl(
- ) {
+ public DbusSignalConfigurationImpl() {
super.addPropertiesHandler(new DbusInterfacePropertiesHandler("org.asamk.Signal.Configuration",
List.of(new DbusProperty<>("ReadReceipts", this::getReadReceipts, this::setReadReceipts),
new DbusProperty<>("UnidentifiedDeliveryIndicators",