1 package org
.asamk
.signal
.manager
.config
;
3 import org
.asamk
.signal
.manager
.api
.ServiceEnvironment
;
4 import org
.signal
.libsignal
.protocol
.util
.Medium
;
5 import org
.whispersystems
.signalservice
.api
.account
.AccountAttributes
;
8 import java
.util
.concurrent
.TimeUnit
;
10 import okhttp3
.Interceptor
;
12 public class ServiceConfig
{
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);
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;
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
);
35 public static ServiceEnvironmentConfig
getServiceEnvironmentConfig(
36 ServiceEnvironment serviceEnvironment
, String userAgent
38 final Interceptor userAgentInterceptor
= chain
-> chain
.proceed(chain
.request()
40 .header("User-Agent", userAgent
)
43 final var interceptors
= List
.of(userAgentInterceptor
);
45 return switch (serviceEnvironment
) {
46 case LIVE
-> LiveConfig
.getServiceEnvironmentConfig(interceptors
);
47 case STAGING
-> StagingConfig
.getServiceEnvironmentConfig(interceptors
);