X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/c72aeed8bba4d5ca873b36b4edb2b8eda9c24ec7..5d83e149b3ed61683da20bba6703a37db66f93cf:/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 index c9fa7a5e..9d58754c 100644 --- a/lib/src/main/java/org/asamk/signal/manager/TrustLevel.java +++ b/lib/src/main/java/org/asamk/signal/manager/TrustLevel.java @@ -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; + }; } }