Use extension functions instead of LibSignalNetwork class.

This commit is contained in:
Greyson Parrelli
2024-05-22 18:57:31 -04:00
committed by Cody Henthorne
parent 6069dfc6f8
commit 3d382ee15e
9 changed files with 59 additions and 82 deletions

View File

@@ -105,7 +105,7 @@ class InternalSvrPlaygroundViewModel : ViewModel() {
private fun SvrImplementation.toImplementation(): SecureValueRecovery {
return when (this) {
SvrImplementation.SVR2 -> AppDependencies.signalServiceAccountManager.getSecureValueRecoveryV2(BuildConfig.SVR2_MRENCLAVE)
SvrImplementation.SVR3 -> AppDependencies.signalServiceAccountManager.getSecureValueRecoveryV3(AppDependencies.libsignalNetwork.network, TestShareSetStorage())
SvrImplementation.SVR3 -> AppDependencies.signalServiceAccountManager.getSecureValueRecoveryV3(AppDependencies.libsignalNetwork, TestShareSetStorage())
}
}

View File

@@ -9,6 +9,7 @@ import io.reactivex.rxjava3.subjects.Subject
import okhttp3.OkHttpClient
import org.signal.core.util.concurrent.DeadlockDetector
import org.signal.core.util.resettableLazy
import org.signal.libsignal.net.Network
import org.signal.libsignal.zkgroup.profiles.ClientZkProfileOperations
import org.signal.libsignal.zkgroup.receipts.ClientZkReceiptOperations
import org.thoughtcrime.securesms.components.TypingStatusRepository
@@ -50,7 +51,6 @@ import org.whispersystems.signalservice.api.services.DonationsService
import org.whispersystems.signalservice.api.services.ProfileService
import org.whispersystems.signalservice.api.websocket.WebSocketConnectionState
import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration
import org.whispersystems.signalservice.internal.websocket.LibSignalNetwork
import java.util.function.Supplier
/**
@@ -249,7 +249,7 @@ object AppDependencies {
get() = networkModule.incomingMessageObserver
@JvmStatic
val libsignalNetwork: LibSignalNetwork
val libsignalNetwork: Network
get() = networkModule.libsignalNetwork
@JvmStatic
@@ -330,7 +330,7 @@ object AppDependencies {
fun provideSignalCallManager(): SignalCallManager
fun providePendingRetryReceiptManager(): PendingRetryReceiptManager
fun providePendingRetryReceiptCache(): PendingRetryReceiptCache
fun provideSignalWebSocket(signalServiceConfigurationSupplier: Supplier<SignalServiceConfiguration>, libSignalNetworkSupplier: Supplier<LibSignalNetwork?>): SignalWebSocket
fun provideSignalWebSocket(signalServiceConfigurationSupplier: Supplier<SignalServiceConfiguration>, libSignalNetworkSupplier: Supplier<Network>): SignalWebSocket
fun provideProtocolStore(): SignalServiceDataStoreImpl
fun provideGiphyMp4Cache(): GiphyMp4Cache
fun provideExoPlayerPool(): SimpleExoPlayerPool
@@ -341,6 +341,6 @@ object AppDependencies {
fun provideDeadlockDetector(): DeadlockDetector
fun provideClientZkReceiptOperations(signalServiceConfiguration: SignalServiceConfiguration): ClientZkReceiptOperations
fun provideScheduledMessageManager(): ScheduledMessageManager
fun provideLibsignalNetwork(config: SignalServiceConfiguration): LibSignalNetwork
fun provideLibsignalNetwork(config: SignalServiceConfiguration): Network
}
}

View File

@@ -92,7 +92,7 @@ import org.whispersystems.signalservice.api.util.SleepTimer;
import org.whispersystems.signalservice.api.util.UptimeSleepTimer;
import org.whispersystems.signalservice.api.websocket.WebSocketFactory;
import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration;
import org.whispersystems.signalservice.internal.websocket.LibSignalNetwork;
import org.whispersystems.signalservice.internal.websocket.LibSignalNetworkExtensions;
import org.whispersystems.signalservice.internal.websocket.ShadowingWebSocketConnection;
import org.whispersystems.signalservice.internal.websocket.WebSocketConnection;
import org.whispersystems.signalservice.internal.websocket.LibSignalChatConnection;
@@ -237,8 +237,10 @@ public class ApplicationDependencyProvider implements AppDependencies.Provider {
}
@Override
public @NonNull LibSignalNetwork provideLibsignalNetwork(@NonNull SignalServiceConfiguration config) {
return new LibSignalNetwork(new Network(BuildConfig.LIBSIGNAL_NET_ENV, StandardUserAgentInterceptor.USER_AGENT), config);
public @NonNull Network provideLibsignalNetwork(@NonNull SignalServiceConfiguration config) {
Network network = new Network(BuildConfig.LIBSIGNAL_NET_ENV, StandardUserAgentInterceptor.USER_AGENT);
LibSignalNetworkExtensions.applyConfiguration(network, config);
return network;
}
@Override
@@ -294,7 +296,7 @@ public class ApplicationDependencyProvider implements AppDependencies.Provider {
}
@Override
public @NonNull SignalWebSocket provideSignalWebSocket(@NonNull Supplier<SignalServiceConfiguration> signalServiceConfigurationSupplier, @NonNull Supplier<LibSignalNetwork> libSignalNetworkSupplier) {
public @NonNull SignalWebSocket provideSignalWebSocket(@NonNull Supplier<SignalServiceConfiguration> signalServiceConfigurationSupplier, @NonNull Supplier<Network> libSignalNetworkSupplier) {
SleepTimer sleepTimer = !SignalStore.account().isFcmEnabled() || SignalStore.internalValues().isWebsocketModeForced() ? new AlarmSleepTimer(context) : new UptimeSleepTimer() ;
SignalWebSocketHealthMonitor healthMonitor = new SignalWebSocketHealthMonitor(context, sleepTimer);
WebSocketShadowingBridge bridge = new DefaultWebSocketShadowingBridge(context);
@@ -407,7 +409,7 @@ public class ApplicationDependencyProvider implements AppDependencies.Provider {
@NonNull WebSocketFactory provideWebSocketFactory(@NonNull Supplier<SignalServiceConfiguration> signalServiceConfigurationSupplier,
@NonNull SignalWebSocketHealthMonitor healthMonitor,
@NonNull Supplier<LibSignalNetwork> libSignalNetworkSupplier,
@NonNull Supplier<Network> libSignalNetworkSupplier,
@NonNull WebSocketShadowingBridge bridge)
{
return new WebSocketFactory() {
@@ -432,16 +434,16 @@ public class ApplicationDependencyProvider implements AppDependencies.Provider {
BuildConfig.SIGNAL_AGENT,
healthMonitor,
Stories.isFeatureEnabled(),
libSignalNetworkSupplier.get().createChatService(null),
LibSignalNetworkExtensions.createChatService(libSignalNetworkSupplier.get(), null),
shadowPercentage,
bridge
);
}
if (FeatureFlags.libSignalWebSocketEnabled()) {
LibSignalNetwork network = libSignalNetworkSupplier.get();
Network network = libSignalNetworkSupplier.get();
return new LibSignalChatConnection(
"libsignal-unauth",
network.createChatService(null),
LibSignalNetworkExtensions.createChatService(network, null),
healthMonitor,
false);
} else {

View File

@@ -12,6 +12,7 @@ import io.reactivex.rxjava3.subjects.Subject
import okhttp3.ConnectionSpec
import okhttp3.OkHttpClient
import org.signal.core.util.resettableLazy
import org.signal.libsignal.net.Network
import org.signal.libsignal.zkgroup.receipts.ClientZkReceiptOperations
import org.thoughtcrime.securesms.crypto.storage.SignalServiceDataStoreImpl
import org.thoughtcrime.securesms.groups.GroupsV2Authorization
@@ -35,7 +36,6 @@ import org.whispersystems.signalservice.api.util.Tls12SocketFactory
import org.whispersystems.signalservice.api.websocket.WebSocketConnectionState
import org.whispersystems.signalservice.internal.util.BlacklistingTrustManager
import org.whispersystems.signalservice.internal.util.Util
import org.whispersystems.signalservice.internal.websocket.LibSignalNetwork
import java.security.KeyManagementException
import java.security.NoSuchAlgorithmException
import javax.net.ssl.SSLContext
@@ -75,7 +75,7 @@ class NetworkDependenciesModule(
provider.provideSignalServiceAccountManager(signalServiceNetworkAccess.getConfiguration(), groupsV2Operations)
}
val libsignalNetwork: LibSignalNetwork by lazy {
val libsignalNetwork: Network by lazy {
provider.provideLibsignalNetwork(signalServiceNetworkAccess.getConfiguration())
}