diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt index ae75ab68d8..069f85942e 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt @@ -40,6 +40,7 @@ internal object NetworkModule { private const val PROD_V2_TANGEM_TECH_BASE_URL = "https://api.tangem-tech.com/v2/" private const val TANGEM_TECH_MARKETS_SERVICE_TIMEOUT_SECONDS = 60L + private const val STAKE_KIT_API_TIMEOUT_SECONDS = 60L @Provides @Singleton @@ -89,6 +90,12 @@ internal object NetworkModule { moshi = moshi, context = context, apiConfigsManager = apiConfigsManager, + timeouts = Timeouts( + callTimeoutSeconds = STAKE_KIT_API_TIMEOUT_SECONDS, + connectTimeoutSeconds = STAKE_KIT_API_TIMEOUT_SECONDS, + readTimeoutSeconds = STAKE_KIT_API_TIMEOUT_SECONDS, + writeTimeoutSeconds = STAKE_KIT_API_TIMEOUT_SECONDS, + ), clientBuilder = { addInterceptor( NetworkLogsSaveInterceptor(appLogsStore), @@ -262,6 +269,7 @@ internal object NetworkModule { moshi: Moshi, context: Context, apiConfigsManager: ApiConfigsManager, + timeouts: Timeouts = Timeouts(), clientBuilder: OkHttpClient.Builder.() -> OkHttpClient.Builder = { this }, ): T { val environmentConfig = apiConfigsManager.getEnvironmentConfig(id) @@ -273,6 +281,23 @@ internal object NetworkModule { .client( OkHttpClient.Builder() .applyApiConfig(id, apiConfigsManager) + .applyTimeoutAnnotations() + .let { builder -> + var b = builder + if (timeouts.callTimeoutSeconds != null) { + b = b.callTimeout(timeouts.callTimeoutSeconds, TimeUnit.SECONDS) + } + if (timeouts.connectTimeoutSeconds != null) { + b = b.connectTimeout(timeouts.connectTimeoutSeconds, TimeUnit.SECONDS) + } + if (timeouts.readTimeoutSeconds != null) { + b = b.readTimeout(timeouts.readTimeoutSeconds, TimeUnit.SECONDS) + } + if (timeouts.writeTimeoutSeconds != null) { + b = b.writeTimeout(timeouts.writeTimeoutSeconds, TimeUnit.SECONDS) + } + b + } .addLoggers(context) .clientBuilder() .build(),