diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/ApiConfig.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/ApiConfig.kt
index 7c5b88f27a..ba2cc575a9 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/ApiConfig.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/ApiConfig.kt
@@ -3,13 +3,14 @@ package com.tangem.datasource.api.common.config
/**
* Api config
*
- * @property currentEnvironment current api environment
- *
* @see API configuration
*
[REDACTED_AUTHOR]
*/
-sealed class ApiConfig(open val currentEnvironment: ApiEnvironment) {
+sealed class ApiConfig {
+
+ /** Default environment */
+ abstract val defaultEnvironment: ApiEnvironment
/** Available environments with base url */
abstract val environments: Map
@@ -22,14 +23,6 @@ sealed class ApiConfig(open val currentEnvironment: ApiEnvironment) {
TangemTech,
}
- /** Copy method for sealed class [ApiConfig] */
- fun copySealed(currentEnvironment: ApiEnvironment): ApiConfig {
- return when (this) {
- is Express -> copy(currentEnvironment = currentEnvironment)
- is TangemTech -> copy(currentEnvironment = currentEnvironment)
- }
- }
-
private fun initializeId(): ID {
return when (this) {
is Express -> ID.Express
diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/Express.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/Express.kt
index 5ebf06c017..be5bba3816 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/Express.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/Express.kt
@@ -2,14 +2,10 @@ package com.tangem.datasource.api.common.config
import com.tangem.datasource.BuildConfig
-/**
- * Express [ApiConfig]
- *
- * @property currentEnvironment current api environment
- */
-internal data class Express(
- override val currentEnvironment: ApiEnvironment = initializeCurrentEnvironment(),
-) : ApiConfig(currentEnvironment) {
+/** Express [ApiConfig] */
+internal class Express : ApiConfig() {
+
+ override val defaultEnvironment: ApiEnvironment = getInitialEnvironment()
override val environments: Map = mapOf(
ApiEnvironment.DEV to "[REDACTED_ENV_URL]",
@@ -19,7 +15,7 @@ internal data class Express(
private companion object {
- fun initializeCurrentEnvironment(): ApiEnvironment {
+ fun getInitialEnvironment(): ApiEnvironment {
return when (BuildConfig.BUILD_TYPE) {
DEBUG_BUILD_TYPE -> ApiEnvironment.DEV
INTERNAL_BUILD_TYPE,
diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemTech.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemTech.kt
index b986870d0c..b1491bb852 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemTech.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemTech.kt
@@ -1,13 +1,9 @@
package com.tangem.datasource.api.common.config
-/**
- * TangemTech [ApiConfig]
- *
- * @property currentEnvironment current api environment
- */
-internal data class TangemTech(
- override val currentEnvironment: ApiEnvironment = ApiEnvironment.PROD,
-) : ApiConfig(currentEnvironment) {
+/** TangemTech [ApiConfig] */
+internal class TangemTech : ApiConfig() {
+
+ override val defaultEnvironment: ApiEnvironment = ApiEnvironment.PROD
override val environments: Map = mapOf(
ApiEnvironment.DEV to "https://devapi.tangem-tech.com/v1/",
diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/managers/DevApiConfigsManager.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/managers/DevApiConfigsManager.kt
index 0af38d7ba9..5a1c92008d 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/managers/DevApiConfigsManager.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/managers/DevApiConfigsManager.kt
@@ -7,10 +7,7 @@ import com.tangem.datasource.local.preferences.PreferencesKeys
import com.tangem.datasource.local.preferences.utils.getObjectMap
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.launchIn
-import kotlinx.coroutines.flow.onEach
+import kotlinx.coroutines.flow.*
/**
* Implementation of [ApiConfigsManager] in DEV environment
@@ -23,9 +20,9 @@ internal class DevApiConfigsManager(
private val dispatchers: CoroutineDispatcherProvider,
) : MutableApiConfigsManager {
- override val configs: Flow> get() = _apiConfigs
+ override val configs: Flow