]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/api/TrustLevel.java
Cleanup manager package
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / TrustLevel.java
diff --git a/lib/src/main/java/org/asamk/signal/manager/api/TrustLevel.java b/lib/src/main/java/org/asamk/signal/manager/api/TrustLevel.java
new file mode 100644 (file)
index 0000000..4016f48
--- /dev/null
@@ -0,0 +1,51 @@
+package org.asamk.signal.manager.api;
+
+import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage;
+import org.whispersystems.signalservice.internal.storage.protos.ContactRecord;
+
+public enum TrustLevel {
+    UNTRUSTED,
+    TRUSTED_UNVERIFIED,
+    TRUSTED_VERIFIED;
+
+    private static TrustLevel[] cachedValues = null;
+
+    public static TrustLevel fromInt(int i) {
+        if (TrustLevel.cachedValues == null) {
+            TrustLevel.cachedValues = TrustLevel.values();
+        }
+        return TrustLevel.cachedValues[i];
+    }
+
+    public static TrustLevel fromIdentityState(ContactRecord.IdentityState identityState) {
+        return switch (identityState) {
+            case DEFAULT -> TRUSTED_UNVERIFIED;
+            case UNVERIFIED -> UNTRUSTED;
+            case VERIFIED -> TRUSTED_VERIFIED;
+            case UNRECOGNIZED -> null;
+        };
+    }
+
+    public static TrustLevel fromVerifiedState(VerifiedMessage.VerifiedState verifiedState) {
+        return switch (verifiedState) {
+            case DEFAULT -> TRUSTED_UNVERIFIED;
+            case UNVERIFIED -> UNTRUSTED;
+            case VERIFIED -> TRUSTED_VERIFIED;
+        };
+    }
+
+    public VerifiedMessage.VerifiedState toVerifiedState() {
+        return switch (this) {
+            case TRUSTED_UNVERIFIED -> VerifiedMessage.VerifiedState.DEFAULT;
+            case UNTRUSTED -> VerifiedMessage.VerifiedState.UNVERIFIED;
+            case TRUSTED_VERIFIED -> VerifiedMessage.VerifiedState.VERIFIED;
+        };
+    }
+
+    public boolean isTrusted() {
+        return switch (this) {
+            case TRUSTED_UNVERIFIED, TRUSTED_VERIFIED -> true;
+            case UNTRUSTED -> false;
+        };
+    }
+}