]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/config/ServiceConfig.java
Implement remote storage sync
[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 final var pni = !isPrimaryDevice;
31 final var paymentActivation = !isPrimaryDevice;
32 return new AccountAttributes.Capabilities(true, true, true, true, true, giftBadges, pni, paymentActivation);
33 }
34
35 public static ServiceEnvironmentConfig getServiceEnvironmentConfig(
36 ServiceEnvironment serviceEnvironment, String userAgent
37 ) {
38 final Interceptor userAgentInterceptor = chain -> chain.proceed(chain.request()
39 .newBuilder()
40 .header("User-Agent", userAgent)
41 .build());
42
43 final var interceptors = List.of(userAgentInterceptor);
44
45 return switch (serviceEnvironment) {
46 case LIVE -> LiveConfig.getServiceEnvironmentConfig(interceptors);
47 case STAGING -> StagingConfig.getServiceEnvironmentConfig(interceptors);
48 };
49 }
50 }