diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/News.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/News.kt index 23ff32ba22..fc57478ec5 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/News.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/News.kt @@ -4,12 +4,16 @@ import com.tangem.datasource.BuildConfig import com.tangem.datasource.api.common.AuthProvider import com.tangem.datasource.utils.RequestHeader import com.tangem.utils.Provider +import com.tangem.utils.info.AppInfoProvider +import com.tangem.utils.version.AppVersionProvider /** * News [ApiConfig] [REDACTED_AUTHOR] */ internal class News( + private val appVersionProvider: AppVersionProvider, + private val appInfoProvider: AppInfoProvider, private val authProvider: AuthProvider, ) : ApiConfig() { @@ -52,6 +56,7 @@ internal class News( apiEnvironment = Provider { environment }, ).values, ) + putAll(from = RequestHeader.AppVersionPlatformHeaders(appVersionProvider, appInfoProvider).values) } private companion object { diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/ApiConfigsModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/ApiConfigsModule.kt index 42d7ef09e6..2ae61bd722 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/ApiConfigsModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/ApiConfigsModule.kt @@ -60,7 +60,15 @@ internal object ApiConfigsModule { @Provides @IntoSet - fun provideNewsConfig(authProvider: AuthProvider): ApiConfig = News(authProvider = authProvider) + fun provideNewsConfig( + appVersionProvider: AppVersionProvider, + authProvider: AuthProvider, + appInfoProvider: AppInfoProvider, + ): ApiConfig = News( + appVersionProvider = appVersionProvider, + appInfoProvider = appInfoProvider, + authProvider = authProvider, + ) @Provides @IntoSet diff --git a/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/ApiConfigTest.kt b/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/ApiConfigTest.kt index 1f664d53c8..715dbf1a0f 100644 --- a/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/ApiConfigTest.kt +++ b/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/ApiConfigTest.kt @@ -73,7 +73,11 @@ class ApiConfigTest { ApiConfig.ID.BlockAid -> BlockAid(configStorage = mockk()) ApiConfig.ID.MoonPay -> MoonPay() ApiConfig.ID.P2PEthPool -> P2PEthPool(p2pAuthProvider = mockk()) - ApiConfig.ID.News -> News(authProvider = appAuthProvider) + ApiConfig.ID.News -> News( + appVersionProvider = mockk(), + authProvider = appAuthProvider, + appInfoProvider = mockk(), + ) ApiConfig.ID.TangemPayAuth -> TangemPayAuth(appVersionProvider = mockk()) ApiConfig.ID.GaslessTxService -> GaslessTxService( authProvider = appAuthProvider, diff --git a/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/managers/ProdApiConfigsManagerTest.kt b/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/managers/ProdApiConfigsManagerTest.kt index 22ff9ab8fb..4bb4cee123 100644 --- a/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/managers/ProdApiConfigsManagerTest.kt +++ b/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/managers/ProdApiConfigsManagerTest.kt @@ -119,7 +119,11 @@ internal class ProdApiConfigsManagerTest { ApiConfig.ID.BlockAid -> BlockAid(configStorage = environmentConfigStorage) ApiConfig.ID.MoonPay -> MoonPay() ApiConfig.ID.P2PEthPool -> P2PEthPool(p2pAuthProvider = p2pEthPoolAuthProvider) - ApiConfig.ID.News -> News(authProvider = appAuthProvider) + ApiConfig.ID.News -> News( + appVersionProvider = appVersionProvider, + authProvider = appAuthProvider, + appInfoProvider = appInfoProvider, + ) ApiConfig.ID.TangemPayAuth -> TangemPayAuth(appVersionProvider = appVersionProvider) ApiConfig.ID.GaslessTxService -> GaslessTxService( authProvider = appAuthProvider, @@ -379,6 +383,14 @@ internal class ProdApiConfigsManagerTest { baseUrl = baseUrl, headers = mapOf( "api-key" to ProviderSuspend { TANGEM_API_KEY }, + "version" to ProviderSuspend { VERSION_NAME }, + "platform" to ProviderSuspend { "android" }, + "system_version" to ProviderSuspend { "Android 16" }, + "language" to ProviderSuspend { Locale.getDefault().language.checkHeaderValueOrEmpty() }, + "timezone" to ProviderSuspend { + TimeZone.getDefault().getDisplayName(false, TimeZone.SHORT).checkHeaderValueOrEmpty() + }, + "device" to ProviderSuspend { "${Build.MANUFACTURER} ${Build.MODEL}".checkHeaderValueOrEmpty() }, ), ), ) diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/market/list/MarketsList.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/market/list/MarketsList.kt index f3b6f8abe0..05490b2364 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/market/list/MarketsList.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/market/list/MarketsList.kt @@ -146,7 +146,7 @@ private fun ColumnScope.Content(state: MarketsListUM, modifier: Modifier = Modif state.list !is ListUM.LoadingError && state.isInSearchMode.not() && state.selectedSortBy != SortByTypeUM.YieldSupply, ) { - val wrappedNotification = remember(this) { state.marketsNotificationUM } + val wrappedNotification = remember(state.list) { state.marketsNotificationUM } val showMore = stringResourceSafe(R.string.common_show_more) when (wrappedNotification) {