]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/TrustLevel.java
Implement message expiration timer version
[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
5 public enum TrustLevel {
6 UNTRUSTED,
7 TRUSTED_UNVERIFIED,
8 TRUSTED_VERIFIED;
9
10 private static TrustLevel[] cachedValues = null;
11
12 public static TrustLevel fromInt(int i) {
13 if (TrustLevel.cachedValues == null) {
14 TrustLevel.cachedValues = TrustLevel.values();
15 }
16 return TrustLevel.cachedValues[i];
17 }
18
19 public static TrustLevel fromVerifiedState(VerifiedMessage.VerifiedState verifiedState) {
20 return switch (verifiedState) {
21 case DEFAULT -> TRUSTED_UNVERIFIED;
22 case UNVERIFIED -> UNTRUSTED;
23 case VERIFIED -> TRUSTED_VERIFIED;
24 };
25 }
26
27 public VerifiedMessage.VerifiedState toVerifiedState() {
28 return switch (this) {
29 case TRUSTED_UNVERIFIED -> VerifiedMessage.VerifiedState.DEFAULT;
30 case UNTRUSTED -> VerifiedMessage.VerifiedState.UNVERIFIED;
31 case TRUSTED_VERIFIED -> VerifiedMessage.VerifiedState.VERIFIED;
32 };
33 }
34
35 public boolean isTrusted() {
36 return switch (this) {
37 case TRUSTED_UNVERIFIED, TRUSTED_VERIFIED -> true;
38 case UNTRUSTED -> false;
39 };
40 }
41 }