import org.asamk.signal.manager.config.ServiceConfig;
import org.asamk.signal.manager.config.ServiceEnvironmentConfig;
import org.signal.libsignal.metadata.certificate.CertificateValidator;
+import org.signal.zkgroup.profiles.ClientZkProfileOperations;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.KeyBackupService;
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
import org.whispersystems.signalservice.api.groupsv2.GroupsV2Operations;
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
import org.whispersystems.signalservice.api.services.ProfileService;
+import org.whispersystems.signalservice.api.util.CredentialsProvider;
import org.whispersystems.signalservice.api.util.UptimeSleepTimer;
import org.whispersystems.signalservice.api.websocket.WebSocketFactory;
-import org.whispersystems.signalservice.internal.util.DynamicCredentialsProvider;
import org.whispersystems.signalservice.internal.websocket.WebSocketConnection;
import java.util.concurrent.ExecutorService;
private final ServiceEnvironmentConfig serviceEnvironmentConfig;
private final String userAgent;
- private final DynamicCredentialsProvider credentialsProvider;
+ private final CredentialsProvider credentialsProvider;
private final SignalServiceDataStore dataStore;
private final ExecutorService executor;
private final SignalSessionLock sessionLock;
private ProfileService profileService;
private SignalServiceCipher cipher;
- public SignalDependencies(
+ SignalDependencies(
final ServiceEnvironmentConfig serviceEnvironmentConfig,
final String userAgent,
- final DynamicCredentialsProvider credentialsProvider,
+ final CredentialsProvider credentialsProvider,
final SignalServiceDataStore dataStore,
final ExecutorService executor,
final SignalSessionLock sessionLock
this.sessionLock = sessionLock;
}
+ public ServiceEnvironmentConfig getServiceEnvironmentConfig() {
+ return serviceEnvironmentConfig;
+ }
+
public SignalServiceAccountManager getAccountManager() {
return getOrCreate(() -> accountManager,
() -> accountManager = new SignalServiceAccountManager(serviceEnvironmentConfig.getSignalServiceConfiguration(),
: null);
}
+ private ClientZkProfileOperations getClientZkProfileOperations() {
+ final var clientZkOperations = getClientZkOperations();
+ return clientZkOperations == null ? null : clientZkOperations.getProfileOperations();
+ }
+
public SignalWebSocket getSignalWebSocket() {
return getOrCreate(() -> signalWebSocket, () -> {
final var timer = new UptimeSleepTimer();
() -> messageReceiver = new SignalServiceMessageReceiver(serviceEnvironmentConfig.getSignalServiceConfiguration(),
credentialsProvider,
userAgent,
- getClientZkOperations().getProfileOperations(),
+ getClientZkProfileOperations(),
ServiceConfig.AUTOMATIC_NETWORK_RETRY));
}
userAgent,
getSignalWebSocket(),
Optional.absent(),
- getClientZkOperations().getProfileOperations(),
+ getClientZkProfileOperations(),
executor,
ServiceConfig.MAX_ENVELOPE_SIZE,
ServiceConfig.AUTOMATIC_NETWORK_RETRY));
public ProfileService getProfileService() {
return getOrCreate(() -> profileService,
- () -> profileService = new ProfileService(getClientZkOperations().getProfileOperations(),
+ () -> profileService = new ProfileService(getClientZkProfileOperations(),
getMessageReceiver(),
getSignalWebSocket()));
}
public SignalServiceCipher getCipher() {
return getOrCreate(() -> cipher, () -> {
final var certificateValidator = new CertificateValidator(serviceEnvironmentConfig.getUnidentifiedSenderTrustRoot());
- final var address = new SignalServiceAddress(credentialsProvider.getUuid(), credentialsProvider.getE164());
- cipher = new SignalServiceCipher(address, dataStore, sessionLock, certificateValidator);
+ final var address = new SignalServiceAddress(credentialsProvider.getAci(), credentialsProvider.getE164());
+ final var deviceId = credentialsProvider.getDeviceId();
+ cipher = new SignalServiceCipher(address, deviceId, dataStore, sessionLock, certificateValidator);
});
}