]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/TrustLevel.java
Add verbose logging for decryption errors of incoming messages
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / TrustLevel.java
index c9fa7a5eb007db81cf6266987e8df19145d2fdc7..9d58754cb46355d089497290a69344ac854f7e75 100644 (file)
@@ -1,6 +1,7 @@
 package org.asamk.signal.manager;
 
 import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage;
+import org.whispersystems.signalservice.internal.storage.protos.ContactRecord;
 
 public enum TrustLevel {
     UNTRUSTED,
@@ -16,27 +17,35 @@ public enum TrustLevel {
         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) {
-        switch (verifiedState) {
-            case DEFAULT:
-                return TRUSTED_UNVERIFIED;
-            case UNVERIFIED:
-                return UNTRUSTED;
-            case VERIFIED:
-                return TRUSTED_VERIFIED;
-        }
-        throw new RuntimeException("Unknown verified state: " + verifiedState);
+        return switch (verifiedState) {
+            case DEFAULT -> TRUSTED_UNVERIFIED;
+            case UNVERIFIED -> UNTRUSTED;
+            case VERIFIED -> TRUSTED_VERIFIED;
+        };
     }
 
     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);
+        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;
+        };
     }
 }