parent
							
								
									e4c5144fbf
								
							
						
					
					
						commit
						c1775913b9
					
				| @ -14,6 +14,9 @@ | ||||
|   { | ||||
|     "interfaces":["org.asamk.Signal$Group"] | ||||
|   }, | ||||
|   { | ||||
|     "interfaces":["org.asamk.Signal$Identity"] | ||||
|   }, | ||||
|   { | ||||
|     "interfaces":["org.asamk.SignalControl"] | ||||
|   }, | ||||
|  | ||||
| @ -572,7 +572,7 @@ | ||||
|   "name":"org.asamk.Signal", | ||||
|   "allDeclaredMethods":true, | ||||
|   "allDeclaredClasses":true, | ||||
|   "methods":[{"name":"getContactName","parameterTypes":["java.lang.String"] }, {"name":"getDevice","parameterTypes":["long"] }, {"name":"getGroup","parameterTypes":["byte[]"] }, {"name":"getSelfNumber","parameterTypes":[] }, {"name":"getThisDevice","parameterTypes":[] }, {"name":"listDevices","parameterTypes":[] }, {"name":"sendGroupMessageReaction","parameterTypes":["java.lang.String","boolean","java.lang.String","long","byte[]"] }, {"name":"sendMessage","parameterTypes":["java.lang.String","java.util.List","java.lang.String"] }, {"name":"sendMessage","parameterTypes":["java.lang.String","java.util.List","java.util.List"] }, {"name":"sendMessageReaction","parameterTypes":["java.lang.String","boolean","java.lang.String","long","java.util.List"] }, {"name":"subscribeReceive","parameterTypes":[] }, {"name":"unsubscribeReceive","parameterTypes":[] }, {"name":"version","parameterTypes":[] }] | ||||
|   "methods":[{"name":"getContactName","parameterTypes":["java.lang.String"] }, {"name":"getDevice","parameterTypes":["long"] }, {"name":"getGroup","parameterTypes":["byte[]"] }, {"name":"getSelfNumber","parameterTypes":[] }, {"name":"getThisDevice","parameterTypes":[] }, {"name":"listDevices","parameterTypes":[] }, {"name":"listIdentities","parameterTypes":[] }, {"name":"sendGroupMessageReaction","parameterTypes":["java.lang.String","boolean","java.lang.String","long","byte[]"] }, {"name":"sendMessage","parameterTypes":["java.lang.String","java.util.List","java.lang.String"] }, {"name":"sendMessage","parameterTypes":["java.lang.String","java.util.List","java.util.List"] }, {"name":"sendMessageReaction","parameterTypes":["java.lang.String","boolean","java.lang.String","long","java.util.List"] }, {"name":"subscribeReceive","parameterTypes":[] }, {"name":"unsubscribeReceive","parameterTypes":[] }, {"name":"version","parameterTypes":[] }] | ||||
| }, | ||||
| { | ||||
|   "name":"org.asamk.Signal$Configuration", | ||||
| @ -651,7 +651,9 @@ | ||||
| }, | ||||
| { | ||||
|   "name":"org.asamk.Signal$StructIdentity", | ||||
|   "allDeclaredFields":true | ||||
|   "allDeclaredFields":true, | ||||
|   "queryAllDeclaredConstructors":true, | ||||
|   "methods":[{"name":"<init>","parameterTypes":["org.freedesktop.dbus.DBusPath","java.lang.String","java.lang.String"] }] | ||||
| }, | ||||
| { | ||||
|   "name":"org.asamk.Signal$SyncMessageReceived", | ||||
|  | ||||
| @ -1,17 +1,10 @@ | ||||
| package org.asamk.signal.manager.api; | ||||
| 
 | ||||
| import org.signal.libsignal.protocol.IdentityKey; | ||||
| 
 | ||||
| public record Identity( | ||||
|         RecipientAddress recipient, | ||||
|         IdentityKey identityKey, | ||||
|         byte[] fingerprint, | ||||
|         String safetyNumber, | ||||
|         byte[] scannableSafetyNumber, | ||||
|         TrustLevel trustLevel, | ||||
|         long dateAddedTimestamp | ||||
| ) { | ||||
| 
 | ||||
|     public byte[] getFingerprint() { | ||||
|         return identityKey.getPublicKey().serialize(); | ||||
|     } | ||||
| } | ||||
| ) {} | ||||
|  | ||||
| @ -1366,7 +1366,7 @@ public class ManagerImpl implements Manager { | ||||
|         final var scannableFingerprint = context.getIdentityHelper() | ||||
|                 .computeSafetyNumberForScanning(identityInfo.getServiceId(), identityInfo.getIdentityKey()); | ||||
|         return new Identity(address.toApiRecipientAddress(), | ||||
|                 identityInfo.getIdentityKey(), | ||||
|                 identityInfo.getIdentityKey().getPublicKey().serialize(), | ||||
|                 context.getIdentityHelper() | ||||
|                         .computeSafetyNumber(identityInfo.getServiceId(), identityInfo.getIdentityKey()), | ||||
|                 scannableFingerprint == null ? null : scannableFingerprint.getSerialized(), | ||||
|  | ||||
| @ -642,7 +642,7 @@ public interface Signal extends DBusInterface { | ||||
|     @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 = "AddedDate", type = Long.class, access = DBusProperty.Access.READ) | ||||
|     @DBusProperty(name = "ScannableSafetyNumber", type = Byte[].class, access = DBusProperty.Access.READ) | ||||
|     interface Identity extends DBusInterface, Properties { | ||||
| 
 | ||||
|  | ||||
| @ -34,7 +34,7 @@ public class ListIdentitiesCommand implements JsonRpcLocalCommand { | ||||
|                 theirId.recipient().getLegacyIdentifier(), | ||||
|                 theirId.trustLevel(), | ||||
|                 DateUtils.formatTimestamp(theirId.dateAddedTimestamp()), | ||||
|                 Hex.toString(theirId.getFingerprint()), | ||||
|                 Hex.toString(theirId.fingerprint()), | ||||
|                 Util.formatSafetyNumber(theirId.safetyNumber())); | ||||
|     } | ||||
| 
 | ||||
| @ -70,7 +70,7 @@ public class ListIdentitiesCommand implements JsonRpcLocalCommand { | ||||
|                     var scannableSafetyNumber = id.scannableSafetyNumber(); | ||||
|                     return new JsonIdentity(address.number().orElse(null), | ||||
|                             address.uuid().map(UUID::toString).orElse(null), | ||||
|                             Hex.toString(id.getFingerprint()), | ||||
|                             Hex.toString(id.fingerprint()), | ||||
|                             safetyNumber, | ||||
|                             scannableSafetyNumber == null | ||||
|                                     ? null | ||||
|  | ||||
| @ -41,6 +41,7 @@ import org.asamk.signal.manager.api.StickerPack; | ||||
| import org.asamk.signal.manager.api.StickerPackId; | ||||
| import org.asamk.signal.manager.api.StickerPackInvalidException; | ||||
| import org.asamk.signal.manager.api.StickerPackUrl; | ||||
| import org.asamk.signal.manager.api.TrustLevel; | ||||
| import org.asamk.signal.manager.api.TypingAction; | ||||
| import org.asamk.signal.manager.api.UnregisteredRecipientException; | ||||
| import org.asamk.signal.manager.api.UpdateGroup; | ||||
| @ -759,12 +760,26 @@ public class DbusManagerImpl implements Manager { | ||||
| 
 | ||||
|     @Override | ||||
|     public List<Identity> getIdentities() { | ||||
|         throw new UnsupportedOperationException(); | ||||
|         final var identities = signal.listIdentities(); | ||||
|         return identities.stream().map(Signal.StructIdentity::getObjectPath).map(this::getIdentity).toList(); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public List<Identity> getIdentities(final RecipientIdentifier.Single recipient) { | ||||
|         throw new UnsupportedOperationException(); | ||||
|         final var path = signal.getIdentity(recipient.getIdentifier()); | ||||
|         return List.of(getIdentity(path)); | ||||
|     } | ||||
| 
 | ||||
|     private Identity getIdentity(final DBusPath identityPath) { | ||||
|         final var group = getRemoteObject(identityPath, Signal.Identity.class).GetAll("org.asamk.Signal.Identity"); | ||||
|         final var aci = (String) group.get("Uuid").getValue(); | ||||
|         final var number = (String) group.get("Number").getValue(); | ||||
|         return new Identity(new RecipientAddress(aci, null, number, null), | ||||
|                 (byte[]) group.get("Fingerprint").getValue(), | ||||
|                 (String) group.get("SafetyNumber").getValue(), | ||||
|                 (byte[]) group.get("ScannableSafetyNumber").getValue(), | ||||
|                 TrustLevel.valueOf((String) group.get("TrustLevel").getValue()), | ||||
|                 (Long) group.get("AddedDate").getValue()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  | ||||
| @ -1105,7 +1105,7 @@ public class DbusSignalImpl implements Signal, AutoCloseable { | ||||
|                     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::fingerprint), | ||||
|                             new DbusProperty<>("SafetyNumber", identity::safetyNumber), | ||||
|                             new DbusProperty<>("ScannableSafetyNumber", identity::scannableSafetyNumber), | ||||
|                             new DbusProperty<>("TrustLevel", identity::trustLevel), | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 AsamK
						AsamK