]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/api/Identity.java
Refactor Manager interface
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / Identity.java
diff --git a/lib/src/main/java/org/asamk/signal/manager/api/Identity.java b/lib/src/main/java/org/asamk/signal/manager/api/Identity.java
new file mode 100644 (file)
index 0000000..4f6f21f
--- /dev/null
@@ -0,0 +1,65 @@
+package org.asamk.signal.manager.api;
+
+import org.asamk.signal.manager.TrustLevel;
+import org.asamk.signal.manager.storage.recipients.RecipientAddress;
+import org.whispersystems.libsignal.IdentityKey;
+
+import java.util.Date;
+
+public class Identity {
+
+    private final RecipientAddress recipient;
+    private final IdentityKey identityKey;
+    private final String safetyNumber;
+    private final byte[] scannableSafetyNumber;
+    private final TrustLevel trustLevel;
+    private final Date dateAdded;
+
+    public Identity(
+            final RecipientAddress recipient,
+            final IdentityKey identityKey,
+            final String safetyNumber,
+            final byte[] scannableSafetyNumber,
+            final TrustLevel trustLevel,
+            final Date dateAdded
+    ) {
+        this.recipient = recipient;
+        this.identityKey = identityKey;
+        this.safetyNumber = safetyNumber;
+        this.scannableSafetyNumber = scannableSafetyNumber;
+        this.trustLevel = trustLevel;
+        this.dateAdded = dateAdded;
+    }
+
+    public RecipientAddress getRecipient() {
+        return recipient;
+    }
+
+    public IdentityKey getIdentityKey() {
+        return this.identityKey;
+    }
+
+    public TrustLevel getTrustLevel() {
+        return this.trustLevel;
+    }
+
+    boolean isTrusted() {
+        return trustLevel == TrustLevel.TRUSTED_UNVERIFIED || trustLevel == TrustLevel.TRUSTED_VERIFIED;
+    }
+
+    public Date getDateAdded() {
+        return this.dateAdded;
+    }
+
+    public byte[] getFingerprint() {
+        return identityKey.getPublicKey().serialize();
+    }
+
+    public String getSafetyNumber() {
+        return safetyNumber;
+    }
+
+    public byte[] getScannableSafetyNumber() {
+        return scannableSafetyNumber;
+    }
+}