]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/config/ServiceConfig.java
Reorder static final modifier
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / config / ServiceConfig.java
1 package org.asamk.signal.manager.config;
2
3 import org.asamk.signal.manager.api.ServiceEnvironment;
4 import org.signal.libsignal.protocol.util.Medium;
5 import org.whispersystems.signalservice.api.account.AccountAttributes;
6
7 import java.util.List;
8 import java.util.concurrent.TimeUnit;
9
10 import okhttp3.Interceptor;
11
12 public class ServiceConfig {
13
14 public static final int PREKEY_MINIMUM_COUNT = 10;
15 public static final int PREKEY_BATCH_SIZE = 100;
16 public static final int PREKEY_MAXIMUM_ID = Medium.MAX_VALUE;
17 public static final long PREKEY_ARCHIVE_AGE = TimeUnit.DAYS.toMillis(30);
18 public static final long PREKEY_STALE_AGE = TimeUnit.DAYS.toMillis(90);
19 public static final long SIGNED_PREKEY_ROTATE_AGE = TimeUnit.DAYS.toMillis(2);
20
21 public static final int MAX_ATTACHMENT_SIZE = 150 * 1024 * 1024;
22 public static final long MAX_ENVELOPE_SIZE = 0;
23 public static final long AVATAR_DOWNLOAD_FAILSAFE_MAX_SIZE = 10 * 1024 * 1024;
24 public static final boolean AUTOMATIC_NETWORK_RETRY = true;
25 public static final int GROUP_MAX_SIZE = 1001;
26 public static final int MAXIMUM_ONE_OFF_REQUEST_SIZE = 3;
27
28 public static AccountAttributes.Capabilities getCapabilities(boolean isPrimaryDevice) {
29 final var giftBadges = !isPrimaryDevice;
30 return new AccountAttributes.Capabilities(false, true, true, true, true, giftBadges, false, false);
31 }
32
33 public static ServiceEnvironmentConfig getServiceEnvironmentConfig(
34 ServiceEnvironment serviceEnvironment, String userAgent
35 ) {
36 final Interceptor userAgentInterceptor = chain -> chain.proceed(chain.request()
37 .newBuilder()
38 .header("User-Agent", userAgent)
39 .build());
40
41 final var interceptors = List.of(userAgentInterceptor);
42
43 return switch (serviceEnvironment) {
44 case LIVE -> new ServiceEnvironmentConfig(serviceEnvironment,
45 LiveConfig.createDefaultServiceConfiguration(interceptors),
46 LiveConfig.getUnidentifiedSenderTrustRoot(),
47 LiveConfig.getCdsiMrenclave(),
48 LiveConfig.getSvr2Mrenclave());
49 case STAGING -> new ServiceEnvironmentConfig(serviceEnvironment,
50 StagingConfig.createDefaultServiceConfiguration(interceptors),
51 StagingConfig.getUnidentifiedSenderTrustRoot(),
52 StagingConfig.getCdsiMrenclave(),
53 StagingConfig.getSvr2Mrenclave());
54 };
55 }
56 }