]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/TrustLevel.java
Extract lib module
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / TrustLevel.java
diff --git a/lib/src/main/java/org/asamk/signal/manager/TrustLevel.java b/lib/src/main/java/org/asamk/signal/manager/TrustLevel.java
new file mode 100644 (file)
index 0000000..c9fa7a5
--- /dev/null
@@ -0,0 +1,42 @@
+package org.asamk.signal.manager;
+
+import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage;
+
+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 fromVerifiedState(VerifiedMessage.VerifiedState verifiedState) {
+        switch (verifiedState) {
+            case DEFAULT:
+                return TRUSTED_UNVERIFIED;
+            case UNVERIFIED:
+                return UNTRUSTED;
+            case VERIFIED:
+                return TRUSTED_VERIFIED;
+        }
+        throw new RuntimeException("Unknown verified state: " + verifiedState);
+    }
+
+    public VerifiedMessage.VerifiedState toVerifiedState() {
+        switch (this) {
+            case TRUSTED_UNVERIFIED:
+                return VerifiedMessage.VerifiedState.DEFAULT;
+            case UNTRUSTED:
+                return VerifiedMessage.VerifiedState.UNVERIFIED;
+            case TRUSTED_VERIFIED:
+                return VerifiedMessage.VerifiedState.VERIFIED;
+        }
+        throw new RuntimeException("Unknown verified state: " + this);
+    }
+}