]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/TrustLevel.java
Implement retrieving data from remote storage
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / TrustLevel.java
1 package org.asamk.signal.manager;
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 switch (identityState) {
22 case DEFAULT:
23 return TRUSTED_UNVERIFIED;
24 case UNVERIFIED:
25 return UNTRUSTED;
26 case VERIFIED:
27 return TRUSTED_VERIFIED;
28 case UNRECOGNIZED:
29 return null;
30 }
31 throw new RuntimeException("Unknown identity state: " + identityState);
32 }
33
34 public static TrustLevel fromVerifiedState(VerifiedMessage.VerifiedState verifiedState) {
35 switch (verifiedState) {
36 case DEFAULT:
37 return TRUSTED_UNVERIFIED;
38 case UNVERIFIED:
39 return UNTRUSTED;
40 case VERIFIED:
41 return TRUSTED_VERIFIED;
42 }
43 throw new RuntimeException("Unknown verified state: " + verifiedState);
44 }
45
46 public VerifiedMessage.VerifiedState toVerifiedState() {
47 switch (this) {
48 case TRUSTED_UNVERIFIED:
49 return VerifiedMessage.VerifiedState.DEFAULT;
50 case UNTRUSTED:
51 return VerifiedMessage.VerifiedState.UNVERIFIED;
52 case TRUSTED_VERIFIED:
53 return VerifiedMessage.VerifiedState.VERIFIED;
54 }
55 throw new RuntimeException("Unknown verified state: " + this);
56 }
57 }