]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/TrustLevel.java
cbfa0bd52447b7e9fb3cf249797a84156c3d0581
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / TrustLevel.java
1 package org.asamk.signal.manager.api;
2
3 import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage;
4 import org.whispersystems.signalservice.internal.storage.protos.ContactRecord;
5
6 public enum TrustLevel {
7 UNTRUSTED,
8 TRUSTED_UNVERIFIED,
9 TRUSTED_VERIFIED;
10
11 private static TrustLevel[] cachedValues = null;
12
13 public static TrustLevel fromInt(int i) {
14 if (TrustLevel.cachedValues == null) {
15 TrustLevel.cachedValues = TrustLevel.values();
16 }
17 return TrustLevel.cachedValues[i];
18 }
19
20 public static TrustLevel fromIdentityState(ContactRecord.IdentityState identityState) {
21 return switch (identityState) {
22 case DEFAULT -> TRUSTED_UNVERIFIED;
23 case UNVERIFIED -> UNTRUSTED;
24 case VERIFIED -> TRUSTED_VERIFIED;
25 };
26 }
27
28 public static TrustLevel fromVerifiedState(VerifiedMessage.VerifiedState verifiedState) {
29 return switch (verifiedState) {
30 case DEFAULT -> TRUSTED_UNVERIFIED;
31 case UNVERIFIED -> UNTRUSTED;
32 case VERIFIED -> TRUSTED_VERIFIED;
33 };
34 }
35
36 public VerifiedMessage.VerifiedState toVerifiedState() {
37 return switch (this) {
38 case TRUSTED_UNVERIFIED -> VerifiedMessage.VerifiedState.DEFAULT;
39 case UNTRUSTED -> VerifiedMessage.VerifiedState.UNVERIFIED;
40 case TRUSTED_VERIFIED -> VerifiedMessage.VerifiedState.VERIFIED;
41 };
42 }
43
44 public boolean isTrusted() {
45 return switch (this) {
46 case TRUSTED_UNVERIFIED, TRUSTED_VERIFIED -> true;
47 case UNTRUSTED -> false;
48 };
49 }
50 }